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

    <Import Project="Directory.Build.props.user" Condition="Exists('Directory.Build.props.user')" />
    
    <PropertyGroup>
        <TargetFramework>netstandard2.1</TargetFramework>
        <LangVersion>9.0</LangVersion>
        <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
        <NoStdLib>true</NoStdLib>
        <DisableImplicitFrameworkReferences>true</DisableImplicitFrameworkReferences>

        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
        <AssemblyTitle>IngameReveries</AssemblyTitle>
        <AssemblyProduct>IngameReveries</AssemblyProduct>
        <AssemblyCompany>ModAuthor</AssemblyCompany>
        <AssemblyVersion>1.0.0.0</AssemblyVersion>
        <AssemblyFileVersion>1.0.0.0</AssemblyFileVersion>
        <AssemblyConfiguration>Debug</AssemblyConfiguration>

        <GameDir Condition="'$(GameDir)' == ''">..\..\</GameDir>
        <GameManagedDir>$(GameDir)Shape of Dreams_Data\Managed</GameManagedDir>
        <GameModsDir>$(GameDir)Mods\$(AssemblyTitle)</GameModsDir>
    </PropertyGroup>

    <PropertyGroup Condition="'$(Configuration)'=='Debug'">
        <OutputPath>bin\Debug\</OutputPath>
        <DefineConstants>DEBUG;TRACE</DefineConstants>
        <DebugSymbols>true</DebugSymbols>
        <DebugType>full</DebugType>
        <Optimize>false</Optimize>
    </PropertyGroup>

    <PropertyGroup Condition="'$(Configuration)'=='Release'">
        <OutputPath>bin\Release\</OutputPath>
        <DefineConstants>TRACE</DefineConstants>
        <DebugType>pdbonly</DebugType>
        <Optimize>true</Optimize>
    </PropertyGroup>

    <ItemGroup>
        <Reference Include="mscorlib">
            <HintPath>$(GameManagedDir)\mscorlib.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="netstandard">
            <HintPath>$(GameManagedDir)\netstandard.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="System">
            <HintPath>$(GameManagedDir)\System.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="System.Core">
            <HintPath>$(GameManagedDir)\System.Core.dll</HintPath>
            <Private>False</Private>
        </Reference>

        <Reference Include="0Harmony">
            <HintPath>$(GameManagedDir)\0Harmony.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Assembly-CSharp">
            <HintPath>$(GameManagedDir)\Assembly-CSharp.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Dew.Contents">
            <HintPath>$(GameManagedDir)\Dew.Contents.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Dew.Core">
            <HintPath>$(GameManagedDir)\Dew.Core.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Dew.External">
            <HintPath>$(GameManagedDir)\Dew.External.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Dew.UI">
            <HintPath>$(GameManagedDir)\Dew.UI.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Unity.Addressables">
            <HintPath>$(GameManagedDir)\Unity.Addressables.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Unity.Collections">
            <HintPath>$(GameManagedDir)\Unity.Collections.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Unity.Formats.Fbx.Runtime">
            <HintPath>$(GameManagedDir)\Unity.Formats.Fbx.Runtime.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Unity.InputSystem">
            <HintPath>$(GameManagedDir)\Unity.InputSystem.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Unity.InputSystem.ForUI">
            <HintPath>$(GameManagedDir)\Unity.InputSystem.ForUI.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Unity.Mathematics">
            <HintPath>$(GameManagedDir)\Unity.Mathematics.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Unity.Mirror.CodeGen">
            <HintPath>$(GameManagedDir)\Unity.Mirror.CodeGen.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Unity.Profiling.Core">
            <HintPath>$(GameManagedDir)\Unity.Profiling.Core.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Unity.RenderPipeline.Universal.ShaderLibrary">
            <HintPath>$(GameManagedDir)\Unity.RenderPipeline.Universal.ShaderLibrary.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Unity.RenderPipelines.Core.Runtime">
            <HintPath>$(GameManagedDir)\Unity.RenderPipelines.Core.Runtime.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Unity.RenderPipelines.Core.ShaderLibrary">
            <HintPath>$(GameManagedDir)\Unity.RenderPipelines.Core.ShaderLibrary.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Unity.RenderPipelines.Universal.Runtime">
            <HintPath>$(GameManagedDir)\Unity.RenderPipelines.Universal.Runtime.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Unity.RenderPipelines.Universal.Runtime.Tests">
            <HintPath>$(GameManagedDir)\Unity.RenderPipelines.Universal.Runtime.Tests.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Unity.RenderPipelines.Universal.Shaders">
            <HintPath>$(GameManagedDir)\Unity.RenderPipelines.Universal.Shaders.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Unity.ResourceManager">
            <HintPath>$(GameManagedDir)\Unity.ResourceManager.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Unity.ScriptableBuildPipeline">
            <HintPath>$(GameManagedDir)\Unity.ScriptableBuildPipeline.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Unity.Services.Analytics">
            <HintPath>$(GameManagedDir)\Unity.Services.Analytics.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Unity.Services.Authentication">
            <HintPath>$(GameManagedDir)\Unity.Services.Authentication.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Unity.Services.Core">
            <HintPath>$(GameManagedDir)\Unity.Services.Core.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Unity.Services.Core.Analytics">
            <HintPath>$(GameManagedDir)\Unity.Services.Core.Analytics.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Unity.Services.Core.Configuration">
            <HintPath>$(GameManagedDir)\Unity.Services.Core.Configuration.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Unity.Services.Core.Device">
            <HintPath>$(GameManagedDir)\Unity.Services.Core.Device.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Unity.Services.Core.Environments">
            <HintPath>$(GameManagedDir)\Unity.Services.Core.Environments.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Unity.Services.Core.Environments.Internal">
            <HintPath>$(GameManagedDir)\Unity.Services.Core.Environments.Internal.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Unity.Services.Core.Internal">
            <HintPath>$(GameManagedDir)\Unity.Services.Core.Internal.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Unity.Services.Core.Networking">
            <HintPath>$(GameManagedDir)\Unity.Services.Core.Networking.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Unity.Services.Core.Registration">
            <HintPath>$(GameManagedDir)\Unity.Services.Core.Registration.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Unity.Services.Core.Scheduler">
            <HintPath>$(GameManagedDir)\Unity.Services.Core.Scheduler.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Unity.Services.Core.Telemetry">
            <HintPath>$(GameManagedDir)\Unity.Services.Core.Telemetry.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Unity.Services.Core.Threading">
            <HintPath>$(GameManagedDir)\Unity.Services.Core.Threading.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Unity.Services.Lobbies">
            <HintPath>$(GameManagedDir)\Unity.Services.Lobbies.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Unity.Services.Wire.Internal">
            <HintPath>$(GameManagedDir)\Unity.Services.Wire.Internal.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Unity.ShaderGraph.Utilities">
            <HintPath>$(GameManagedDir)\Unity.ShaderGraph.Utilities.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Unity.TextMeshPro">
            <HintPath>$(GameManagedDir)\Unity.TextMeshPro.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Unity.VisualEffectGraph.Runtime">
            <HintPath>$(GameManagedDir)\Unity.VisualEffectGraph.Runtime.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="UnityEngine.AssetBundleModule">
            <HintPath>$(GameManagedDir)\UnityEngine.AssetBundleModule.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="UnityEngine.CoreModule">
            <HintPath>$(GameManagedDir)\UnityEngine.CoreModule.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="UnityEngine.IMGUIModule">
            <HintPath>$(GameManagedDir)\UnityEngine.IMGUIModule.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="UnityEngine.UI">
            <HintPath>$(GameManagedDir)\UnityEngine.UI.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="UnityEngine.XR.LegacyInputHelpers">
            <HintPath>$(GameManagedDir)\UnityEngine.XR.LegacyInputHelpers.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="UnityEngine.InputLegacyModule">
            <HintPath>$(GameManagedDir)\UnityEngine.InputLegacyModule.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Mirror">
            <HintPath>$(GameManagedDir)\Mirror.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Mirror.Authenticators">
            <HintPath>$(GameManagedDir)\Mirror.Authenticators.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Mirror.CompilerSymbols">
            <HintPath>$(GameManagedDir)\Mirror.CompilerSymbols.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Mirror.Components">
            <HintPath>$(GameManagedDir)\Mirror.Components.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Mirror.Transports">
            <HintPath>$(GameManagedDir)\Mirror.Transports.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Newtonsoft.Json">
            <HintPath>$(GameManagedDir)\Newtonsoft.Json.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="UniTask">
            <HintPath>$(GameManagedDir)\UniTask.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="UnityEngine.TextRenderingModule">
            <HintPath>$(GameManagedDir)\UnityEngine.TextRenderingModule.dll</HintPath>
            <Private>False</Private>
        </Reference>
        <Reference Include="Cinemachine">
            <HintPath>$(GameManagedDir)\Cinemachine.dll</HintPath>
            <Private>False</Private>
        </Reference>
    </ItemGroup>

    <ItemGroup>
      <Folder Include="src\" />
    </ItemGroup>

    <Target Name="PostBuild" AfterTargets="PostBuildEvent">
      <Exec Command="echo &quot;Copy build to game folder&quot;&#xA;mkdir -p &quot;$(GameModsDir)&quot;&#xA;cp -r &quot;$(ProjectDir)about&quot;  &quot;$(GameModsDir)&quot;&#xA;cp -r &quot;$(ProjectDir)bin&quot;      &quot;$(GameModsDir)&quot;&#xA;cp -r &quot;$(ProjectDir)assets&quot; &quot;$(GameModsDir)&quot;" />
    </Target>
</Project>