From 78ecd5e17a2ea5181a1810b387c0681e6b2b93b4 Mon Sep 17 00:00:00 2001 From: Chris3606 Date: Thu, 5 Jun 2025 19:11:01 -0500 Subject: [PATCH 1/3] Edit CI to use .NET 8 --- .github/workflows/dotnet.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index 2ea1c05b..e7168072 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -12,11 +12,11 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup .NET - uses: actions/setup-dotnet@v3 + uses: actions/setup-dotnet@v4 with: - dotnet-version: 7.0.x + dotnet-version: 8.x - name: Restore dependencies run: dotnet restore - name: Build From 53a5547d194af3aa41b88a6f7d65bdbeba87cd71 Mon Sep 17 00:00:00 2001 From: Chris3606 Date: Thu, 5 Jun 2025 19:29:11 -0500 Subject: [PATCH 2/3] Bumped dev dependency versions. Added .NET 9 target and CI/CD support for that version. --- .github/workflows/dotnet.yml | 2 +- GoRogue.Debugger/GoRogue.Debugger.csproj | 4 ++-- .../GoRogue.PerformanceTests.csproj | 6 +++--- GoRogue.Profiler/GoRogue.Profiler.csproj | 2 +- GoRogue.Snippets/GoRogue.Snippets.csproj | 2 +- .../Effects/AdvancedEffectTests.cs | 8 ++++---- GoRogue.UnitTests/Effects/EffectTests.cs | 8 ++++---- GoRogue.UnitTests/GoRogue.UnitTests.csproj | 19 +++++++++++-------- .../MapGeneration/GeneratorTests.cs | 4 ++-- GoRogue/GoRogue.csproj | 8 ++++---- changelog.md | 7 ++++++- 11 files changed, 39 insertions(+), 31 deletions(-) diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index e7168072..fcde7742 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -16,7 +16,7 @@ jobs: - name: Setup .NET uses: actions/setup-dotnet@v4 with: - dotnet-version: 8.x + dotnet-version: 9.x - name: Restore dependencies run: dotnet restore - name: Build diff --git a/GoRogue.Debugger/GoRogue.Debugger.csproj b/GoRogue.Debugger/GoRogue.Debugger.csproj index 2d6fcfa2..8262a8f1 100644 --- a/GoRogue.Debugger/GoRogue.Debugger.csproj +++ b/GoRogue.Debugger/GoRogue.Debugger.csproj @@ -2,7 +2,7 @@ Exe - net6.0 + net8.0 8.0 enable @@ -62,7 +62,7 @@ - + all diff --git a/GoRogue.PerformanceTests/GoRogue.PerformanceTests.csproj b/GoRogue.PerformanceTests/GoRogue.PerformanceTests.csproj index 30d6cbaf..926f6f33 100644 --- a/GoRogue.PerformanceTests/GoRogue.PerformanceTests.csproj +++ b/GoRogue.PerformanceTests/GoRogue.PerformanceTests.csproj @@ -2,14 +2,14 @@ Exe - net6.0 + net8.0 default enable - - + + diff --git a/GoRogue.Profiler/GoRogue.Profiler.csproj b/GoRogue.Profiler/GoRogue.Profiler.csproj index 999be2cf..5f727831 100644 --- a/GoRogue.Profiler/GoRogue.Profiler.csproj +++ b/GoRogue.Profiler/GoRogue.Profiler.csproj @@ -2,7 +2,7 @@ Exe - net6.0 + net8.0 enable enable diff --git a/GoRogue.Snippets/GoRogue.Snippets.csproj b/GoRogue.Snippets/GoRogue.Snippets.csproj index 5d73ec5f..5f727831 100644 --- a/GoRogue.Snippets/GoRogue.Snippets.csproj +++ b/GoRogue.Snippets/GoRogue.Snippets.csproj @@ -2,7 +2,7 @@ Exe - net7.0 + net8.0 enable enable diff --git a/GoRogue.UnitTests/Effects/AdvancedEffectTests.cs b/GoRogue.UnitTests/Effects/AdvancedEffectTests.cs index 7c8d857c..6832a779 100644 --- a/GoRogue.UnitTests/Effects/AdvancedEffectTests.cs +++ b/GoRogue.UnitTests/Effects/AdvancedEffectTests.cs @@ -53,10 +53,10 @@ public void EffectToString() public void EffectTriggerAdd() { var effectTrigger = new AdvancedEffectTrigger(); - Assert.Equal(0, effectTrigger.Effects.Count); + Assert.Empty(effectTrigger.Effects); effectTrigger.Add(new AdvancedIntEffect("Test Effect 1", 1, Args)); - Assert.Equal(1, effectTrigger.Effects.Count); + Assert.Single(effectTrigger.Effects); effectTrigger.Add(new AdvancedIntEffect("Test Effect 2", 2, Args)); Assert.Equal(2, effectTrigger.Effects.Count); @@ -80,7 +80,7 @@ public void EffectTriggerEffects() effectTrigger.Add(effect2); effectTrigger.TriggerEffects(5); - Assert.Equal(1, effectTrigger.Effects.Count); + Assert.Single(effectTrigger.Effects); Assert.Equal(multiDuration - 1, effectTrigger.Effects[0].Duration); Assert.Equal(1, effect1.Duration); @@ -101,7 +101,7 @@ public void EffectTriggerEffects() Assert.Equal(2, secEffectTrigger.Effects.Count); secEffectTrigger.TriggerEffects(5); - Assert.Equal(1, secEffectTrigger.Effects.Count); + Assert.Single(secEffectTrigger.Effects); Assert.Equal(1, secEffectTrigger.Effects[0].Duration); // Must have cancelled } } diff --git a/GoRogue.UnitTests/Effects/EffectTests.cs b/GoRogue.UnitTests/Effects/EffectTests.cs index 5bfffd69..0705ef43 100644 --- a/GoRogue.UnitTests/Effects/EffectTests.cs +++ b/GoRogue.UnitTests/Effects/EffectTests.cs @@ -51,10 +51,10 @@ public void EffectToString() public void EffectTriggerAdd() { var effectTrigger = new EffectTrigger(); - Assert.Equal(0, effectTrigger.Effects.Count); + Assert.Empty(effectTrigger.Effects); effectTrigger.Add(new IntEffect("Test Effect 1", 1)); - Assert.Equal(1, effectTrigger.Effects.Count); + Assert.Single(effectTrigger.Effects); effectTrigger.Add(new IntEffect("Test Effect 2", 2)); Assert.Equal(2, effectTrigger.Effects.Count); @@ -78,7 +78,7 @@ public void EffectTriggerEffects() effectTrigger.Add(effect2); effectTrigger.TriggerEffects(); - Assert.Equal(1, effectTrigger.Effects.Count); + Assert.Single(effectTrigger.Effects); Assert.Equal(multiDuration - 1, effectTrigger.Effects[0].Duration); Assert.Equal(1, effect1.Duration); @@ -99,7 +99,7 @@ public void EffectTriggerEffects() Assert.Equal(2, secEffectTrigger.Effects.Count); secEffectTrigger.TriggerEffects(); - Assert.Equal(1, secEffectTrigger.Effects.Count); + Assert.Single(secEffectTrigger.Effects); Assert.Equal(1, secEffectTrigger.Effects[0].Duration); // Must have cancelled } } diff --git a/GoRogue.UnitTests/GoRogue.UnitTests.csproj b/GoRogue.UnitTests/GoRogue.UnitTests.csproj index e7075374..7c00e917 100644 --- a/GoRogue.UnitTests/GoRogue.UnitTests.csproj +++ b/GoRogue.UnitTests/GoRogue.UnitTests.csproj @@ -1,7 +1,7 @@ - net6.0 + net8.0 false @@ -18,22 +18,25 @@ - + all - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - + + - - + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + all runtime; build; native; contentfiles; analyzers; buildtransitive - diff --git a/GoRogue.UnitTests/MapGeneration/GeneratorTests.cs b/GoRogue.UnitTests/MapGeneration/GeneratorTests.cs index 7f91bc28..df65debb 100644 --- a/GoRogue.UnitTests/MapGeneration/GeneratorTests.cs +++ b/GoRogue.UnitTests/MapGeneration/GeneratorTests.cs @@ -51,7 +51,7 @@ public void ConstructionValidSizes(int width, int height) Assert.Equal(height, generator.Context.Height); Assert.NotNull(generator.GenerationSteps); - Assert.Equal(0, generator.GenerationSteps.Count); + Assert.Empty(generator.GenerationSteps); } [Theory] @@ -125,7 +125,7 @@ public void AddStepAddsToList() var step = new MockGenerationStep(null); _generator.AddStep(step); - Assert.Equal(1, _generator.GenerationSteps.Count); + Assert.Single(_generator.GenerationSteps); Assert.Same(step, _generator.GenerationSteps[0]); var step2 = new MockGenerationStep(null); diff --git a/GoRogue/GoRogue.csproj b/GoRogue/GoRogue.csproj index adacd06f..dd100d22 100644 --- a/GoRogue/GoRogue.csproj +++ b/GoRogue/GoRogue.csproj @@ -1,7 +1,7 @@  - netstandard2.1;netcoreapp3.1;net5.0;net6.0;net7.0;net8.0 + net5.0;net6.0;net7.0;net8.0;netcoreapp3.1;netstandard2.1;net9.0 GoRogue Chris3606 Copyright © 2023 Christopher Ridley (Chris3606) @@ -79,14 +79,14 @@ - + all - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/changelog.md b/changelog.md index 514cb037..efe7cdbd 100644 --- a/changelog.md +++ b/changelog.md @@ -5,7 +5,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ## [Unreleased] -- None +### Added +- Added .NET 8 and 9 explicit multi-targets + +### Fixed +- `GameFramework.Map` now handles transparency changes properly (thanks Sofistico!) +- `DiceNotation.Parser` now handles negative numbers correctly ## [3.0.0-beta09] - 2023-12-05 ### Removed From 213e390e6e05f9969ebfc5fe82195509758935ec Mon Sep 17 00:00:00 2001 From: Chris3606 Date: Thu, 5 Jun 2025 19:54:12 -0500 Subject: [PATCH 3/3] Fixed transarency view tracking for cached grid views, and added unit tests. --- .../GameFramework/GameFrameworkTests.cs | 22 +++++++++++++++++++ GoRogue/GameFramework/Map.cs | 2 +- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/GoRogue.UnitTests/GameFramework/GameFrameworkTests.cs b/GoRogue.UnitTests/GameFramework/GameFrameworkTests.cs index af4ebdfe..0c4d84da 100644 --- a/GoRogue.UnitTests/GameFramework/GameFrameworkTests.cs +++ b/GoRogue.UnitTests/GameFramework/GameFrameworkTests.cs @@ -515,6 +515,28 @@ public void TransparencyViewUpdatesOnRemove() Assert.True(map.TransparencyView[1, 1]); } + [Theory] + [InlineData(true)] + [InlineData(false)] + public void TransparencyViewUpdatesOnChange(bool useCachedGridViews) + { + var map = new Map(10, 10, 1, Distance.Chebyshev, useCachedGridViews: useCachedGridViews); + + var obj = new GameObject((1, 1), 0, false, isTransparent: true); + map.SetTerrain(obj); + + var obj2 = new GameObject((1, 1), 1, true, false); + map.AddEntity(obj2); + + Assert.False(map.TransparencyView[obj2.Position]); + + obj2.IsTransparent = true; + Assert.True(map.TransparencyView[obj2.Position]); + + obj2.IsTransparent = false; + Assert.False(map.TransparencyView[obj2.Position]); + } + [Fact] public void GetObjectsAt() { diff --git a/GoRogue/GameFramework/Map.cs b/GoRogue/GameFramework/Map.cs index 2170c346..814ce8b0 100644 --- a/GoRogue/GameFramework/Map.cs +++ b/GoRogue/GameFramework/Map.cs @@ -354,7 +354,7 @@ private void Map_ObjectRemovedSyncViews(object? sender, ItemEventArgs e) => _cachedWalkabilityView![((IGameObject)sender!).Position] = e.NewValue;