### Summary Adds spawn position caching and optimization for constrained spawners (e.g., those near houses, water, or blocked terrain). ### Key features: - Sector-based bitmap cache (32 bytes per 16x16 sector) stores valid spawn positions - Spiral scan progressively discovers positions from spawner center outward - Automatic mode detects constrained spawners after 5+ non-transient failures - Prevents mob spawning inside private houses (allows public AoS buildings) - Deduplicates sector lookups for multi-bounds spawners (RegionSpawner) - Cache invalidation on house placement/demolition - Moves SpawnBounds to Spawner ### New spawner properties: - SpawnPositionMode: Automatic (default), Enabled, Disabled, Abandoned - MaxSpawnAttempts: Configurable attempts before optimization engages (default: 5)
22 lines
1.1 KiB
XML
22 lines
1.1 KiB
XML
<Project Sdk="Microsoft.NET.Sdk">
|
|
<PropertyGroup>
|
|
<IsPackable>false</IsPackable>
|
|
<Configurations>Debug;Release;Analyze</Configurations>
|
|
<RootNamespace>Server.Tests</RootNamespace>
|
|
</PropertyGroup>
|
|
<ItemGroup>
|
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
|
|
<PackageReference Include="xunit" Version="2.9.3" />
|
|
<PackageReference Include="xunit.SkippableFact" Version="1.5.61" />
|
|
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.5">
|
|
<PrivateAssets>all</PrivateAssets>
|
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
|
</PackageReference>
|
|
<ProjectReference Include="..\Application\Application.csproj" />
|
|
<DataFiles Include="$(SolutionDir)\Distribution\Data\**" />
|
|
<ProjectReference Include="..\UOContent\UOContent.csproj" />
|
|
</ItemGroup>
|
|
<Target Name="CopyData" AfterTargets="AfterBuild">
|
|
<Copy SourceFiles="@(DataFiles)" DestinationFolder="$(OutDir)\Data\%(RecursiveDir)" />
|
|
</Target>
|
|
</Project>
|