abcdefg30
ce7f9e71c1
DefaultSpriteSequence: Avoid an extra allocation and LINQ when adding shadow frames
2023-05-16 22:57:33 +03:00
abcdefg30
05f21fcbe2
DefaultSpriteSequence: Merge if statements for readability
2023-05-16 22:57:33 +03:00
abcdefg30
00f2ba1a53
DefaultSpriteSequence: Remove redundant modulo operations
...
frame is already bounded by length.Value
2023-05-16 22:57:33 +03:00
abcdefg30
991e0a4c9a
DefaultSpriteSequence: Use .Count == 0 over !.Any()
2023-05-16 22:57:33 +03:00
abcdefg30
aa28881726
DefaultSpriteSequence: Use List.Find instead of LINQ's FirstOrDefault
2023-05-16 22:57:33 +03:00
Gustas
44f1af7059
Move TileScale to MapGrid
2023-05-02 16:37:30 +03:00
Gustas
7ef1dccdcf
Add ContrailEndWidth
2023-04-21 17:58:42 +02:00
RoosterDragon
14c0d011ea
Fix SA1414
2023-04-08 16:51:51 +03:00
RoosterDragon
8a285f9b19
Fix IDE0090
2023-04-08 16:51:51 +03:00
RoosterDragon
83561d639d
Update LangVersion to C# 9.
...
mono was the bottleneck restricting our ability to use a newer C# version. mono 6.12 is currently available. Although poorly documented on their website, this supports C# 9. https://www.mono-project.com/docs/about-mono/versioning/#mono-source-versioning indicates mono 6.12 uses Roslyn 3.9.0. https://github.com/dotnet/roslyn/blob/main/docs/wiki/NuGet-packages.md#versioning indicates Roslyn 3.9.0 supports C# 9.
This unlocks C# 8 and C# 9 features previously unavailable to us.
- https://learn.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-version-history#c-version-80
- https://learn.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-version-history#c-version-9
A newer version of StyleCop is required to avoid rules tripping up on the new syntax. Currently only prerelease versions are available but their use is encouraged https://github.com/DotNetAnalyzers/StyleCopAnalyzers/issues/3420#issuecomment-994899135
Fix style rule violations on existing rules where the newer language version makes some existing casts redundant or allows use of the null coalescing assignment operator.
2023-04-05 15:27:41 +03:00
RoosterDragon
98c4eaca83
Fix IDE0032
2023-03-14 13:41:25 +02:00
Paul Chote
3b0b15abb9
Reduce duplication and allocations around CalculateFrameIndices.
2023-03-10 20:11:33 +02:00
Paul Chote
c35ab081ff
Rewrite sequence loading logic.
...
Multiple layers of Lazy<T>ness are replaced with
an explicit two-part loading scheme.
Sequences are parsed immediately, without the need
for the sprite assets, and tell the SpriteCache
which frames they need. Use-cases that want the
actual sprites can then tell the SpriteCache to
load the frames and the sequences to resolve the
sprites.
2023-03-10 20:11:33 +02:00
Paul Chote
a6f3db0a45
Allow all sprites to use interpolated facings.
2023-03-10 20:11:33 +02:00
Paul Chote
b051211842
Remove internal state from ISpriteSequence API.
2023-03-10 20:11:33 +02:00
Paul Chote
992ba1a9a2
Remove HasEmbeddedPalette from sequences.
2023-03-10 20:11:33 +02:00
RoosterDragon
52fd564eac
Fix some whitespace formatting issues: stray tabs or spaces.
...
Wrap some long lines on affected code.
2023-03-02 20:02:45 +02:00
RoosterDragon
8ee6957e6a
Fix IDE0048
2023-03-01 21:56:28 +02:00
RoosterDragon
0b01b73111
Fix IDE0060
2023-02-28 21:21:40 +02:00
RoosterDragon
d4135d608e
Fix IDE0039
2023-02-27 10:09:11 +01:00
Gustas
8d0fe52dd8
Remove unnecessary parentheses
2023-02-27 08:36:47 +02:00
Paul Chote
5b8f148c50
Simplify tileset-specific sequence definitions.
...
All magic behaviour for constructing sprite filenames
has been removed in favour of an explicit Filename
(and TilesetFilenames for tileset-specific sequences)
property.
2023-01-22 22:10:48 +02:00
Paul Chote
04c3cd6ec5
Reimplement sequence Defaults parsing:
...
The previous MiniYaml.Merge implementation interacted
poorly with yaml inheritance, making it complicated
(or impossible) to override certain keys from Defaults.
The new implementation is simpler: If a key is defined
it will be used. If it isn't, the default (if defined)
will be used. Defaults can be masked by making sure
the same key is defined (even with an empty value)
in the sequence.
This also fixes naming within the sequence code to
distinguish between images (a group of sequences),
sequences (defining a specific sprite/animation),
and filenames for a specific sprite/animation.
2023-01-22 22:10:48 +02:00
abcdefg30
5bf7fe852c
Remove the copyright year numbers
2023-01-11 11:58:54 +02:00
Gustas
f3e44094a1
Fix contrail using the wrong colors
2022-12-21 19:35:52 +02:00
Gustas
1809817b3f
Add ContrailEndColor and Contrail transparency control
2022-09-24 13:19:22 +02:00
AspectInteractive2
a1a50d6c98
Added rotation logic to the renderer to enable the use of Interpolated Facings.
2022-07-17 17:03:53 +02:00
Paul Chote
c8df1e864c
Rework sequence docs plumbing.
2022-07-02 14:10:52 +03:00
Paul Chote
2037e37d4e
Replace Sequence EmbeddedPalette with HasEmbeddedPalette.
2022-07-02 14:10:52 +03:00
penev92
c3c5dbfa35
Unhardcoded SpriteSequence properties
...
To prepare them for documentation generation.
Also added descriptions to SpriteSequence implementations and their properties.
Also made a few code style fixes.
2022-06-26 15:41:19 +01:00
abcdefg30
6a31b1f9f3
Update the copyright header year
2022-05-28 00:35:10 -05:00
Eduardo Cáceres
7eb64ea6fc
Use read-only autoimplemented property when possible
2022-05-18 11:42:36 -05:00
Matthias Mailänder
0e7ad43425
Remove unused parameters.
2022-04-01 23:30:26 +02:00
Mustafa Alperen Seki
7e4c3acda3
Fix ZRamp only allowing integer values.
2022-03-02 19:41:49 +01:00
penev92
bf332b6619
Fixed fields missing the readonly modifier
2022-01-22 18:47:06 +00:00
dnqbob
c968a2a902
Contrail smooth&color fix
2021-12-16 23:48:03 +01:00
Paul Chote
2a2785d8c9
Fix model debug sprite rectangle rendering.
2021-08-21 13:45:41 +02:00
Paul Chote
7a3dae428a
Work around clipping on ramp type 7.
2021-08-21 13:45:41 +02:00
Paul Chote
dcd3e8d444
Ignore terrain slopes when calculating model shadows.
...
This is less realistic, but better matches the original
game and is the only practical way to reduce visual issues
caused by long shadows being cast over multiple cells.
2021-08-21 13:45:41 +02:00
Paul Chote
68710e48a6
Add terrain orientation support for Mobile.
2021-08-21 13:45:41 +02:00
Paul Chote
be3412ee74
Fix depth offsets for sprite with non-zero ZRamp.
...
Bibs and other effects that should be drawn at ground level
can now simply define ZRamp: 1, Offset: <X>,<Y>,1, avoiding the
need to account for the Y offset or internal sprite offsets.
2021-08-20 20:17:55 +02:00
Paul Chote
70892a6661
Change DrawSprite calls to provide scales instead of sizes.
...
This allows us to remove a hacky workaround for calculating
depth offsets when sprites have size.Z == 0.
2021-07-25 00:32:17 +02:00
Andre Mohren
6810469634
Updated copyright years.
2021-06-29 18:33:21 -05:00
teinarss
10676be377
Replace F extension with string interpolation
2021-05-08 22:20:59 +02:00
teinarss
e12ff2c59d
Remove our own ReadOnlyDictionary and update usages
2021-04-03 11:33:31 +02:00
teinarss
6b74093c04
Add readonly to structs
2021-03-14 15:17:57 +01:00
teinarss
4a1e4f3e16
Use expression body syntax
2021-03-07 13:00:52 +00:00
Paul Chote
0975102e92
Add Alpha support to sequences.
...
Alpha can specify a single value for the sequence
or values for each frame in the sequence.
AlphaFade: True can be specified to linearly fade
to transparent over the length of the animation.
2021-02-24 19:20:48 +01:00
Paul Chote
fb0031d34a
Rename remaining Stance references to PlayerRelationship.
2021-02-04 23:14:09 +01:00
teinarss
58313520f0
Change renderables to class to avoid boxing
2021-01-29 00:24:27 +01:00