Changed the `Component` class to an interface `IComponentData` to support a data-oriented design. Changed the `Transform` class from a class to a struct, implementing `IComponentData` and updating properties. Changed the `GameObject` class to use a dictionary for components and added properties for state management. Changed the `PlayerLoopService` class to `GameLoopService` and updated methods to integrate with the new `SceneManager`. Changed the `World` class to manage multiple worlds and enhance entity management with new querying methods. Added the `Scene` class to manage root game objects and their lifecycle. Added new utility classes like `ComponentMask`, `Box<T>`, and `TypeHandle<T>` for better component management. Added the `ScriptComponent` class to allow for modular scriptable components attached to entities. Added the `QueryEnumerable` class to facilitate flexible querying of entities with specific components. Updated the `Test` class in `Program.cs` to demonstrate the new entity and component management system. Updated project files to include new references and settings supporting the changes made in the codebase.
94 lines
3.0 KiB
XML
94 lines
3.0 KiB
XML
<Project Sdk="Microsoft.NET.Sdk">
|
|
|
|
<PropertyGroup>
|
|
<TargetFramework>net9.0</TargetFramework>
|
|
<ImplicitUsings>enable</ImplicitUsings>
|
|
<Nullable>enable</Nullable>
|
|
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
<None Include="Template\QueryItem.cs">
|
|
<DesignTime>True</DesignTime>
|
|
<AutoGen>True</AutoGen>
|
|
<DependentUpon>QueryItem.tt</DependentUpon>
|
|
</None>
|
|
<None Include="Template\QueryRefComponent.cs">
|
|
<DesignTime>True</DesignTime>
|
|
<AutoGen>True</AutoGen>
|
|
<DependentUpon>QueryRefComponent.tt</DependentUpon>
|
|
</None>
|
|
<None Include="Template\World.Query.cs">
|
|
<DesignTime>True</DesignTime>
|
|
<AutoGen>True</AutoGen>
|
|
<DependentUpon>World.Query.tt</DependentUpon>
|
|
</None>
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<Reference Include="Misaki.HighPerformance.Unsafe">
|
|
<HintPath>..\..\Class\Misaki.HighPerformance\Misaki.HighPerformance.Unsafe\bin\Release\net9.0\Misaki.HighPerformance.Unsafe.dll</HintPath>
|
|
</Reference>
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<None Update="Template\QueryEnumerable.tt">
|
|
<Generator>TextTemplatingFileGenerator</Generator>
|
|
<LastGenOutput>QueryEnumerable.cs</LastGenOutput>
|
|
</None>
|
|
<None Update="Template\Helpers.tt">
|
|
<Generator>TextTemplatingFilePreprocessor</Generator>
|
|
<LastGenOutput>Helpers.cs</LastGenOutput>
|
|
</None>
|
|
<None Update="Template\QueryItem.tt">
|
|
<Generator>TextTemplatingFileGenerator</Generator>
|
|
<LastGenOutput>QueryItem.cs</LastGenOutput>
|
|
</None>
|
|
<None Update="Template\QueryRefComponent.tt">
|
|
<Generator>TextTemplatingFileGenerator</Generator>
|
|
<LastGenOutput>QueryRefComponent.cs</LastGenOutput>
|
|
</None>
|
|
<None Update="Template\World.Query.tt">
|
|
<Generator>TextTemplatingFileGenerator</Generator>
|
|
<LastGenOutput>World.Query.cs</LastGenOutput>
|
|
</None>
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<Service Include="{508349b6-6b84-4df5-91f0-309beebad82d}" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<Compile Update="Template\Helpers.cs">
|
|
<DesignTime>True</DesignTime>
|
|
<AutoGen>True</AutoGen>
|
|
<DependentUpon>Helpers.tt</DependentUpon>
|
|
</Compile>
|
|
<Compile Update="Template\QueryEnumerable.cs">
|
|
<DesignTime>True</DesignTime>
|
|
<AutoGen>True</AutoGen>
|
|
<DependentUpon>QueryEnumerable.tt</DependentUpon>
|
|
</Compile>
|
|
<Compile Update="Template\QueryItem.cs">
|
|
<DesignTime>True</DesignTime>
|
|
<AutoGen>True</AutoGen>
|
|
<DependentUpon>QueryItem.tt</DependentUpon>
|
|
</Compile>
|
|
<Compile Update="Template\QueryRefComponent.cs">
|
|
<DesignTime>True</DesignTime>
|
|
<AutoGen>True</AutoGen>
|
|
<DependentUpon>QueryRefComponent.tt</DependentUpon>
|
|
</Compile>
|
|
<Compile Update="Template\World.Query.cs">
|
|
<DesignTime>True</DesignTime>
|
|
<AutoGen>True</AutoGen>
|
|
<DependentUpon>World.Query.tt</DependentUpon>
|
|
</Compile>
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<Folder Include="Helpers\" />
|
|
</ItemGroup>
|
|
|
|
</Project>
|