Commit Graph

30610 Commits

Author SHA1 Message Date
Gustas
bd53aa734e Handle comments when merging yaml 2025-11-24 11:52:56 +02:00
Ashley Newson
cde5208c54 Add basic Path Tiling for TS
This introduces basic Path Tiler map editor tool functionality to TS
with some segmented MultiBrush definitions. The included MultiBrush
definitions cover both the Temperate and Snow tilesets's Beach, Cliff,
and WaterCliff tiles.

MultiBrush now incorporates Height and Ramp information. Some
associated Terraformer utilities are updated with the API surface
change.

There are some known limitations that are not addressed in this PR:
- The path laying UI doesn't account for the map's current heights.
- The preview does not use a correct height or Z-ordering.
2025-11-23 14:31:31 +02:00
RoosterDragon
e652f95be9 Remove Exts.Enum<T>
This functionality is now built in. We can rely on the built in functions rather than a custom class.
2025-11-23 13:34:31 +02:00
Ashley Newson
00cd438190 Create coordinate system conversion wrapper around Mirror
The Symmetry.Mirror enum was previously documented as defined in terms
of the WPos system, which happens to align with CPos for Rectangular
grid types. However, the existing code gets confused when attempting
to support RectangularIsometric, due to a lack of appropriate
conversion logic.

This change makes Mirror agnostic to specific coordinate systems and
introduces a WMirror wrapper that provides getters for the correct
Mirror configuration given the coordinate system being used.
2025-11-23 13:25:49 +02:00
Ashley Newson
91ddfd6fc1 Fix various map generator bounds and size related issues
- If generating a RectangularIsometric map via lobby, make the height
  twice the width so that the map is approximately world-square.
- Use equal top and bottom cordons for RectangularIsometric maps.
- Change some map bounds checking.
- Check that actors are at least partially inside map.Contains before
  placing. (To avoid frozen actor crashes.)
- Fix editor generated map blitting for RectangularIsometric.
2025-11-23 13:16:29 +02:00
dependabot[bot]
915ad36ddc Bump actions/checkout from 5 to 6
Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-21 15:03:29 +01:00
Ashley Newson
56e6a9e6dc Improve MultiBrush collection shorthands
This expands upon the limited FromTemplates MultiBrush collection
shorthand:

- Adds a corresponding FromActors shorthand.
- Allows FromTemplates and FromActors to mix in additional properties,
  such as weights and backing tiles.
- Updates the MultiBrush collections used across the official mods to
  make use of these shorthands.

Note that this reorders some MultiBrush definitions for
conciseness. This partially (cosmetically) re-randomizes map generator
output.
2025-11-16 21:01:29 +02:00
RoosterDragon
bc1a901f54 Add tests for FieldLoader and FieldSaver
Test coverage for these classes will help prevent regressions. Major breaking changes are avoided since config files may already rely on various aspects of the behaviour, but some small breaking changes are made:

- Use `value.Split(Comma, StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries)` consistently for all comma-separated parsing.
- Rename LoadField to LoadFieldOrProperty for clarity - since this is the one method that cares about properties in a class otherwise focused only on fields.
- Use TryParse instead of Parse and ensure to call InvalidValueAction from all parsers so we throw the intended exception when badly formatted data is encountered.
- BooleanExpression/IntegerExpression exception message updated to align with the generic one.
- Remove FromYamlKey, and update the only user SkirmishLogic to perform this logic manually instead.
- Remove unused includePrivateByDefault parameter on GetTypeLoadInfo.
- Remove unused AllowEmptyEntriesAttribute.
2025-11-16 20:52:54 +02:00
RoosterDragon
7d0340ad41 Add new .NET 10 rules to editorconfig. 2025-11-16 20:29:21 +02:00
RoosterDragon
42ac32dace Fix CA1515 2025-11-16 20:29:21 +02:00
RoosterDragon
24c19f64c9 Fix IDE0350 2025-11-16 20:29:21 +02:00
RoosterDragon
af326bfeb8 Fix IDE0031 2025-11-16 20:29:21 +02:00
RoosterDragon
3745377387 Fix IDE00007 2025-11-16 20:29:21 +02:00
dnqbob
0ed00a5766 increase McvExpansionManagerBotModule enemy base avoidance weight 2025-11-10 19:27:53 +02:00
Ashley Newson
6f6d039650 Fix Path Tiler UI positioning for RectangularIsometric
The on-map path editor for the Path Tiler had incorrect offsets and
direction markers when used with a RectangularIsometric grid. This
fixes the grid alignment.

Note that map height information is currently ignored by the tool.
2025-11-10 17:29:11 +02:00
Ashley Newson
2359dce21b Relax TilingPath constraints on segments that don't make immediate progress
The TilingPath algorithm previously rejected placing segments that do
not make immediate progress, unless they faced towards positive
progress.

However, there are cases in some mods where zero-progress segments
that end facing towards neutral progress are needed to arrive at a
tiling solution. This change allows these neutral progressions, so
long as they aren't for single-point segments.
2025-11-10 15:46:52 +02:00
Ashley Newson
fd5e05ca6b Fix rare PointsChirality infinite loop
Under some inputs, MatrixUtils.PointsChirality could enter into an
infinite loop consuming memory until an OOM occurs. This was due to
the FloodFill-based operation endlessly propagate zero values.

This adds a defensive check to prevent propagating zero values.
2025-11-10 15:40:44 +02:00
Paul Chote
3177de7b2c Add OnBuildingPlaced lua trigger. 2025-11-10 15:24:12 +02:00
Gustas
eb550bbbbb Allow to extract translations from a single map 2025-11-09 19:52:25 +02:00
Gustas
7004b552c9 Add ActorMapOverlay 2025-11-07 13:04:12 +02:00
dnqbob
3f19c81392 Fix suqadmanager crashing on ProtectOwn 2025-11-06 17:05:58 +02:00
Gustas
a62b085f1d Add a name to the server thread 2025-11-04 21:43:18 +02:00
Gustas
a514f3a388 Make map grid immutable 2025-11-04 21:41:31 +02:00
RoosterDragon
ebae15a9fe Fix sprite sequence docs failing to lookup property names.
When SpriteSequenceField was changed to a record struct, the field lookups needed to be changed to property lookups.

Fixes regression from 36660b89e9.
2025-11-04 14:39:06 +02:00
Paul Chote
10db26fa0b Disable lobby options tab if options aren't yet known. 2025-11-03 14:03:35 +02:00
Paul Chote
47105e42cd Populate lobby options when map status changes. 2025-11-03 14:03:35 +02:00
Matthias Mailänder
2cb1e5f8c5 Allow unsigned builds in private forks. 2025-10-31 19:09:21 +01:00
Matthias Mailänder
79288c6ee3 Move code signing into production. 2025-10-31 19:09:21 +01:00
Gustas
93dc94c1a0 Add RemoveAlwaysVisible to update path 2025-10-31 19:43:05 +02:00
dependabot[bot]
79765004fc Bump signpath/github-action-submit-signing-request from 1 to 2
Bumps [signpath/github-action-submit-signing-request](https://github.com/signpath/github-action-submit-signing-request) from 1 to 2.
- [Release notes](https://github.com/signpath/github-action-submit-signing-request/releases)
- [Commits](https://github.com/signpath/github-action-submit-signing-request/compare/v1...v2)

---
updated-dependencies:
- dependency-name: signpath/github-action-submit-signing-request
  dependency-version: '2'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-31 16:25:48 +01:00
Gustas
08d07eeb06 Fix bot traits crashing on missing ResourceMapBotModule 2025-10-31 14:01:18 +02:00
dependabot[bot]
4cd1b4e208 Bump actions/upload-artifact from 4 to 5
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 5.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-31 13:37:18 +02:00
dnqbob
bb2a44705f Fix McvExpansionManagerBotModule on CheckCurrentLocation mode. 2025-10-31 13:19:05 +02:00
Robert Nordan
70243850b1 Make WavReader handle buggy Wav Files more robustly
This change makes WavReader correctly read the chunk size of a
chunk as an unsigned int, and cleans up the inconsistent logic around
checking chunk sizes. It also attempts to handle buggy/chopped off
Wav files where the reported data chunk size is larger than the actual file.

Also adds Robert Nordan to AUTHORS file.
2025-10-21 20:15:20 +03:00
Gustas
dff7cd3bbf Fix aircraft failing to reload 2025-10-21 10:05:02 +01:00
dnqbob
24a09a94fe Airstate danger avoidance: check the aircraft nearest target actor, instead of target actor 2025-10-20 16:22:31 +03:00
N.N
8144c5684e fix HasAdequateRefineryCount blocking unit building 2025-10-20 15:47:52 +03:00
N.N
315b26e85c fix harkonnen logo 2025-10-18 18:40:12 +03:00
dnqbob
ea775ab824 Correct and add comments for expansion related 2025-10-16 22:24:18 +03:00
dnqbob
1c693a2c4b Fix bot MCV not persisting when failed to deploy. 2025-10-16 22:24:18 +03:00
N.N
41123d0520 Add damaged VFX for D2k buildings 2025-10-16 21:50:44 +03:00
Gustas
d26b9a10ed Add WithDamageOverlayPropertyRename update rule
Also make trees, ships and vehicles burn a random duration
2025-10-16 21:50:44 +03:00
Gustas
58088ecabe Add a HasChild helper command 2025-10-16 21:50:44 +03:00
Gustas
a2a7b30727 WithDamageOverlay refactor
Rename IdleSequence to StartSequence
Allow WithDamageOverlay to loop multiple times.

- unhardcode StartSequence and EndSequence
- add inital delay to WithDamageOverlay
- make WithDamageOverlay conditional

.
2025-10-16 21:50:44 +03:00
JovialFeline
3dcbdaa56e Add grace period & polish to Situation Critical 2025-10-16 11:45:39 +03:00
dnqbob
0fb42b39d9 Fix Airstate indice check:
1. the indice square should be the inscribed square of DangerScanRadius circle.

2. Use Map Bounds instead of Map Size
2025-10-15 20:58:57 +03:00
N.N
dc2fa932ea fix typo in encyclopedia 2025-10-15 20:14:52 +03:00
Vapre
d08d03274b Avoid occasional 'busy wait' for next render time in main loop. #18491 2025-10-15 16:49:00 +03:00
JovialFeline
b6495113c4 Fix extra prereq for D2k pad/MCV in missions 2025-10-15 10:50:38 +03:00
JovialFeline
de78f4130b Add Proving Grounds (RA) 2025-10-15 10:27:08 +03:00