<Project Sdk="Microsoft.NET.Sdk">

	<Import Project="../CodeGen.Targets" />
	
	<PropertyGroup>
		<VersionPrefix>1.0.1</VersionPrefix>
		<TargetFramework>net10.0</TargetFramework>
		<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
		<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
		<GenerateDocumentationFile>true</GenerateDocumentationFile>
		<AssemblyName>Sandbox.Engine</AssemblyName>
		<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
		<SatelliteResourceLanguages>en</SatelliteResourceLanguages>
		<NoWarn>1701;1702;1591;CA1416</NoWarn>
		<OutputPath>../../game/bin/managed</OutputPath>
		<LangVersion>14</LangVersion>
		<AllowedReferenceRelatedFileExtensions>.pdb</AllowedReferenceRelatedFileExtensions>
	</PropertyGroup>

	<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
	  <TreatWarningsAsErrors>True</TreatWarningsAsErrors>
	</PropertyGroup>

	<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
	  <TreatWarningsAsErrors>True</TreatWarningsAsErrors>
	</PropertyGroup>

	<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
		<DefineConstants>WIN;$(DefineConstants)</DefineConstants>
	</PropertyGroup>

	<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
		<DefineConstants>WIN;$(DefineConstants)</DefineConstants>
	</PropertyGroup>

	<ItemGroup>
		<PackageReference Include="Facepunch.ActionGraphs" Version="1.9.22" />
		<PackageReference Include="Fleck" Version="1.2.0" />
		<PackageReference Include="K4os.Compression.LZ4" Version="1.3.8" />
		<PackageReference Include="K4os.Compression.LZ4.Streams" Version="1.3.8" />
		<PackageReference Include="LiteDB" Version="5.0.21" />
		<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="5.0.0-2.final" />
		<PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="3.12.0-beta1.25218.8" />
		<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="10.0.0" />
		<PackageReference Include="Svg.Skia" Version="2.0.0.4" />
		<PackageReference Include="Azure.Messaging.WebPubSub.Client" Version="1.0.0" />
		<PackageReference Include="System.Numerics.Tensors" Version="10.0.0" />
	</ItemGroup>

	<ItemGroup>
		<ProjectReference Include="../Mounting/Sandbox.Mounting/Sandbox.Mounting.csproj" />
		<ProjectReference Include="../Sandbox.Access/Sandbox.Access.csproj" />
		<ProjectReference Include="../Sandbox.CodeUpgrader/Sandbox.CodeUpgrader.csproj" />
		<ProjectReference Include="../Sandbox.Compiling/Sandbox.Compiling.csproj" />
		<ProjectReference Include="../Sandbox.Event/Sandbox.Event.csproj" />
		<ProjectReference Include="../Sandbox.Filesystem/Sandbox.Filesystem.csproj" />
		<ProjectReference Include="../Sandbox.Hotload/Sandbox.Hotload.csproj" />
		<ProjectReference Include="../Sandbox.Reflection/Sandbox.Reflection.csproj" />
		<ProjectReference Include="../Sandbox.Services/Sandbox.Services.csproj" />
		<ProjectReference Include="../Sandbox.SolutionGenerator/Sandbox.SolutionGenerator.csproj" />
		<ProjectReference Include="../Sandbox.System/Sandbox.System.csproj" />
		<ProjectReference Include="../Sandbox.Generator/Sandbox.Generator.csproj" />
		<ProjectReference Include="../ThirdParty/Topten.RichTextKit/Topten.RichTextKit.csproj" />
		<ProjectReference Include="..\Microsoft.AspNetCore.Components\Microsoft.AspNetCore.Components.csproj" />
	</ItemGroup>

	<ItemGroup>
		<PackageReference Include="SkiaSharp" Version="3.116.0" />
		<PackageReference Include="SkiaSharp.HarfBuzz" Version="3.116.0" />
		<Reference Include="System.Speech">
			<HintPath>../ThirdParty/System.Speech.dll</HintPath>
		</Reference>
	</ItemGroup>

	<Target Name="_ResolveCopyLocalNuGetPkgXmls" AfterTargets="ResolveReferences">
		<ItemGroup>
			<!-- Copy XML / PDB files from all Facepunch.* PackageReferences to output dir -->
			<ReferenceCopyLocalPaths Include="@(ReferenceCopyLocalPaths->'%(RootDir)%(Directory)%(Filename).xml')" Condition="'%(ReferenceCopyLocalPaths.NuGetPackageId)'!='' And $([System.Text.RegularExpressions.Regex]::IsMatch(%(ReferenceCopyLocalPaths.Filename), '^Facepunch\.')) And Exists('%(RootDir)%(Directory)%(Filename).xml')" />
			<ReferenceCopyLocalPaths Include="@(ReferenceCopyLocalPaths->'%(RootDir)%(Directory)%(Filename).pdb')" Condition="'%(ReferenceCopyLocalPaths.NuGetPackageId)'!='' And $([System.Text.RegularExpressions.Regex]::IsMatch(%(ReferenceCopyLocalPaths.Filename), '^Facepunch\.')) And Exists('%(RootDir)%(Directory)%(Filename).pdb')" />
		</ItemGroup>
	</Target>

	<ItemGroup>
		<Compile Update="Systems\UI\Styles\BaseStyles.Generated.cs">
			<DependentUpon>BaseStyles.Generated.tt</DependentUpon>
			<DesignTime>True</DesignTime>
			<AutoGen>True</AutoGen>
		</Compile>
        <Compile Update="Platform\VR\VRSystem.Generated.cs">
            <DesignTime>True</DesignTime>
            <AutoGen>True</AutoGen>
            <DependentUpon>VRSystem.Generated.tt</DependentUpon>
        </Compile>
	</ItemGroup>

	<ItemGroup>
		<None Update="Systems\UI\Styles\BaseStyles.Generated.tt">
			<LastGenOutput>BaseStyles.Generated.cs</LastGenOutput>
			<Generator>TextTemplatingFileGenerator</Generator>
		</None>
        <None Update="Platform\VR\VRSystem.Generated.tt">
            <Generator>TextTemplatingFileGenerator</Generator>
            <LastGenOutput>VRSystem.Generated.cs</LastGenOutput>
        </None>
	</ItemGroup>

	<ItemGroup>
		<Service Include="{508349b6-6b84-4df5-91f0-309beebad82d}" />
	</ItemGroup>

</Project>
