Browse Source

Begin updating to Techblox 2022.04.28.14.02

Updated project generator script to always order assemblies (it didn't do that for me on Linux) and to fix minor issues
master
NorbiPeti 1 year ago
parent
commit
dfe1bfb504
Signed by: NorbiPeti <szatmari.norbert.peter@gmail.com> GPG Key ID: DBA4C4549A927E56
7 changed files with 144 additions and 47 deletions
  1. +5
    -3
      Automation/gen_csproj.py
  2. +2
    -3
      TechbloxModdingAPI/Blocks/Engines/BlockEngine.cs
  3. +7
    -5
      TechbloxModdingAPI/Blocks/Engines/BlueprintEngine.cs
  4. +28
    -9
      TechbloxModdingAPI/Blocks/Engines/RemovalEngine.cs
  5. +10
    -12
      TechbloxModdingAPI/Cluster.cs
  6. +9
    -8
      TechbloxModdingAPI/SimBody.cs
  7. +83
    -7
      TechbloxModdingAPI/TechbloxModdingAPI.csproj

+ 5
- 3
Automation/gen_csproj.py View File

@@ -5,7 +5,7 @@ from pathlib import Path, PurePath
import re
import os

DLL_EXCLUSIONS_REGEX = r"(System|Microsoft|Mono|IronPython|DiscordRPC)\."
DLL_EXCLUSIONS_REGEX = r"(System|Microsoft|Mono|IronPython|DiscordRPC|IllusionInjector|IllusionPlugin|netstandard)\."

def getAssemblyReferences(path):
asmDir = Path(path)
@@ -15,10 +15,12 @@ def getAssemblyReferences(path):
addedPath = "../"
asmDir = Path(addedPath + path)
for child in asmDir.iterdir():
if child.is_file() and re.search(DLL_EXCLUSIONS_REGEX, str(child), re.I) is None and str(child).lower().endswith(".dll"):
if child.is_file() and re.search(DLL_EXCLUSIONS_REGEX, str(child)) is None and str(child).lower().endswith(".dll"):
childstr = str(child)
childstr = os.path.relpath(childstr, addedPath).replace("\\", "/")
result.append(childstr)
result.sort(key=str.lower)
result = [path + "/IllusionInjector.dll", path + "/IllusionPlugin.dll"] + result # Always put it on top
return result

def buildReferencesXml(path):
@@ -51,7 +53,7 @@ if __name__ == "__main__":
if depsStart is None or depsEnd is None:
print("Unable to find dependency XML comments, aborting!")
exit(1)
newFileStr = fileStr[:depsStart.start()] + "\n" + asmXml + "\n" + fileStr[depsEnd.end() + 1:]
newFileStr = fileStr[:depsStart.start() - 1] + "\n" + asmXml + "\n" + fileStr[depsEnd.end() + 1:]
with open("../TechbloxModdingAPI/TechbloxModdingAPI.csproj", "w") as xmlFile:
print("Writing Assembly references")
xmlFile.write(newFileStr)


+ 2
- 3
TechbloxModdingAPI/Blocks/Engines/BlockEngine.cs View File

@@ -1,11 +1,9 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using HarmonyLib;

using Gamecraft.ColourPalette;
using Gamecraft.TimeRunning;
using Gamecraft.Wires;
using RobocraftX.Blocks;
using RobocraftX.Common;
@@ -58,7 +56,8 @@ namespace TechbloxModdingAPI.Blocks.Engines
ecoll[i].isProcessed = false;
}
}

//TODO: GetConnectedCubesUtility
ConnectedCubesUtility.TreeTraversal.GetConnectedCubes(entitiesDB, blockID, cubeStack, cubes,
(in GridConnectionsEntityStruct _) => false);



+ 7
- 5
TechbloxModdingAPI/Blocks/Engines/BlueprintEngine.cs View File

@@ -18,7 +18,7 @@ using Svelto.ECS.DataStructures;
using Svelto.ECS.EntityStructs;
using Svelto.ECS.Native;
using Svelto.ECS.Serialization;
using Techblox.Blocks;
using Techblox.Blocks.Connections;
using TechbloxModdingAPI.Engines;
using TechbloxModdingAPI.Utility;
using Unity.Collections;
@@ -48,7 +48,8 @@ namespace TechbloxModdingAPI.Blocks.Engines
private static readonly MethodInfo SerializeGhostBlueprint =
AccessTools.Method(SerializeGhostBlueprintType, "SerializeClipboardGhostEntities");

private static NativeEntityRemove nativeRemove;
private static NativeEntityRemove nativeBlockRemove;
private static NativeEntityRemove nativeConnectionRemove;
private static MachineGraphConnectionEntityFactory connectionFactory;
private static IEntityFunctions entityFunctions;
private static ClipboardSerializationDataResourceManager clipboardManager;
@@ -88,8 +89,8 @@ namespace TechbloxModdingAPI.Blocks.Engines

public void RemoveBlockGroup(int id)
{
BlockGroupUtility.RemoveAllBlocksInBlockGroup(id, entitiesDB, removedConnections, nativeRemove,
connectionFactory, default).Complete();
BlockGroupUtility.RemoveAllBlocksInBlockGroup(id, entitiesDB, removedConnections, nativeBlockRemove,
nativeConnectionRemove, connectionFactory, default).Complete();
}

public int CreateBlockGroup(float3 position, quaternion rotation)
@@ -339,7 +340,8 @@ namespace TechbloxModdingAPI.Blocks.Engines
public static void Prefix(IEntityFunctions entityFunctions,
MachineGraphConnectionEntityFactory machineGraphConnectionEntityFactory)
{
nativeRemove = entityFunctions.ToNativeRemove<BlockEntityDescriptor>("GCAPI" + nameof(BlueprintEngine));
nativeBlockRemove = entityFunctions.ToNativeRemove<BlockEntityDescriptor>("TBAPI" + nameof(BlueprintEngine));
nativeConnectionRemove = entityFunctions.ToNativeRemove<MachineConnectionEntityDescriptor>("TBAPI" + nameof(BlueprintEngine));
connectionFactory = machineGraphConnectionEntityFactory;
BlueprintEngine.entityFunctions = entityFunctions;
}


+ 28
- 9
TechbloxModdingAPI/Blocks/Engines/RemovalEngine.cs View File

@@ -1,32 +1,43 @@
using System.Reflection;

using Gamecraft.Blocks.BlockGroups;
using HarmonyLib;
using RobocraftX.Blocks;
using RobocraftX.Common;
using Svelto.Common;
using RobocraftX.GroupTags;
using RobocraftX.StateSync;
using Svelto.ECS;
using Svelto.ECS.Native;
using Techblox.Blocks.Connections;
using Unity.Collections;
using Unity.Jobs;
using Allocator = Unity.Collections.Allocator;

using TechbloxModdingAPI.Engines;
using TechbloxModdingAPI.Utility;

namespace TechbloxModdingAPI.Blocks.Engines
{
public class RemovalEngine : IApiEngine
public class RemovalEngine : IApiEngine, IDeterministicTimeStopped
{
private static IEntityFunctions _entityFunctions;
private static MachineGraphConnectionEntityFactory _connectionFactory;
private NativeHashSet<ulong> removedConnections = new(2000, Allocator.Persistent);

public bool RemoveBlock(EGID target)
{
if (!entitiesDB.Exists<MachineGraphConnectionsEntityStruct>(target))
return false;
var connections = entitiesDB.QueryEntity<MachineGraphConnectionsEntityStruct>(target);
var groups = entitiesDB.FindGroups<MachineGraphConnectionsEntityStruct>();
using var connStructMapper = //The allocator needs to be persistent because that's what is used in the Dispose() method
entitiesDB.QueryNativeMappedEntities<MachineGraphConnectionsEntityStruct>(groups, Allocator.Persistent);
for (int i = connections.connections.Count<MachineConnectionStruct>() - 1; i >= 0; i--)
_connectionFactory.RemoveConnection(connections, i, connStructMapper);
using var connStructMapper =
entitiesDB.QueryNativeMappedEntities<MachineGraphConnectionsEntityStruct>(GroupTag<BLOCK_TAG>.Groups,
Svelto.Common.Allocator.Temp);
if (entitiesDB.TryQueryNativeMappedEntities<MachineConnectionComponent>(
ConnectionsExclusiveGroups.MACHINE_CONNECTION_GROUP, out var mapper))
{
BlockGroupUtility.RemoveBlockConnections(target, removedConnections, _connectionFactory,
connStructMapper, mapper, entitiesDB.GetEntityReferenceMap(), _entityFunctions);
}

_entityFunctions.RemoveEntity<BlockEntityDescriptor>(target);
return true;
}
@@ -39,9 +50,11 @@ namespace TechbloxModdingAPI.Blocks.Engines

public void Dispose()
{
removedConnections.Dispose();
}

public string Name { get; } = "TechbloxModdingAPIRemovalGameEngine";
public string Name => "TechbloxModdingAPIRemovalGameEngine";
public string name => Name;

public bool isRemovable => false;

@@ -61,5 +74,11 @@ namespace TechbloxModdingAPI.Blocks.Engines
return AccessTools.TypeByName("RobocraftX.CR.MachineEditing.RemoveBlockEngine").GetConstructors()[0];
}
}

public JobHandle DeterministicStep(in float deltaTime, JobHandle inputDeps)
{
removedConnections.Clear();
return default;
}
}
}

+ 10
- 12
TechbloxModdingAPI/Cluster.cs View File

@@ -1,7 +1,5 @@
using Gamecraft.Damage;
using RobocraftX.Common;
using Svelto.ECS;
using Techblox.Physics;
using Svelto.ECS;
using Techblox.TimeRunning.Clusters;

namespace TechbloxModdingAPI
{
@@ -15,26 +13,26 @@ namespace TechbloxModdingAPI
{
}

public Cluster(uint id) : this(new EGID(id, CommonExclusiveGroups.SIMULATION_CLUSTERS_GROUP))
public Cluster(uint id) : this(new EGID(id, ClustersExclusiveGroups.SIMULATION_CLUSTERS_GROUP))
{
}

public float InitialHealth
public float InitialHealth //TODO
{
get => Block.BlockEngine.GetBlockInfo<HealthEntityComponent>(this).initialHealth;
set => Block.BlockEngine.GetBlockInfo<HealthEntityComponent>(this).initialHealth = value;
get => 0f;
set { }
}

public float CurrentHealth
{
get => Block.BlockEngine.GetBlockInfo<HealthEntityComponent>(this).currentHealth;
set => Block.BlockEngine.GetBlockInfo<HealthEntityComponent>(this).currentHealth = value;
get => 0f;
set { }
}

public float HealthMultiplier
{
get => Block.BlockEngine.GetBlockInfo<HealthEntityComponent>(this).healthMultiplier;
set => Block.BlockEngine.GetBlockInfo<HealthEntityComponent>(this).healthMultiplier = value;
get => 0f;
set { }
}

/// <summary>


+ 9
- 8
TechbloxModdingAPI/SimBody.cs View File

@@ -6,6 +6,7 @@ using UnityEngine;
using Gamecraft.Damage;
using RobocraftX.Common;
using RobocraftX.Physics;
using Techblox.TimeRunning.Clusters;

namespace TechbloxModdingAPI
{
@@ -20,7 +21,7 @@ namespace TechbloxModdingAPI
/// </summary>
public Cluster Cluster => cluster ??= clusterId == uint.MaxValue // Return cluster or if it's null then set it
? Block.BlockEngine.GetCluster(Id.entityID) // If we don't have a clusterId set then get it from the game
: GetInstance(new EGID(clusterId, CommonExclusiveGroups.SIMULATION_CLUSTERS_GROUP),
: GetInstance(new EGID(clusterId, ClustersExclusiveGroups.SIMULATION_CLUSTERS_GROUP),
egid => new Cluster(egid)); // Otherwise get the cluster from the ID

private Cluster cluster;
@@ -82,7 +83,7 @@ namespace TechbloxModdingAPI

public float3 CenterOfMass
{
get => Block.BlockEngine.GetBlockInfo<MassEntityStruct>(this).centreOfMass;
get => 0f; //TODO
//set => GetStruct().physicsMass.CenterOfMass = value;
}

@@ -93,20 +94,20 @@ namespace TechbloxModdingAPI

public float InitialHealth
{
get => Block.BlockEngine.GetBlockInfo<HealthEntityComponent>(this).initialHealth;
set => Block.BlockEngine.GetBlockInfo<HealthEntityComponent>(this).initialHealth = value;
get => 0f;
set { }
}

public float CurrentHealth
{
get => Block.BlockEngine.GetBlockInfo<HealthEntityComponent>(this).currentHealth;
set => Block.BlockEngine.GetBlockInfo<HealthEntityComponent>(this).currentHealth = value;
get => 0f;
set { }
}

public float HealthMultiplier
{
get => Block.BlockEngine.GetBlockInfo<HealthEntityComponent>(this).healthMultiplier;
set => Block.BlockEngine.GetBlockInfo<HealthEntityComponent>(this).healthMultiplier = value;
get => 0f;
set { }
}

/// <summary>


+ 83
- 7
TechbloxModdingAPI/TechbloxModdingAPI.csproj View File

@@ -415,6 +415,10 @@
<HintPath>..\ref\Techblox_Data\Managed\RobocraftX.GUI.PauseMenu.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\RobocraftX.GUI.PauseMenu.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.GUI.QuitConfirmation">
<HintPath>..\ref\Techblox_Data\Managed\RobocraftX.GUI.QuitConfirmation.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\RobocraftX.GUI.QuitConfirmation.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.GUI.ScaleGhost">
<HintPath>..\ref\Techblox_Data\Managed\RobocraftX.GUI.ScaleGhost.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\RobocraftX.GUI.ScaleGhost.dll</HintPath>
@@ -591,10 +595,6 @@
<HintPath>..\ref\Techblox_Data\Managed\Techblox.Blocks.Connections.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Blocks.Connections.dll</HintPath>
</Reference>
<Reference Include="Techblox.Blocks.Debug.Client.Monobehaviours">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.Blocks.Debug.Client.Monobehaviours.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Blocks.Debug.Client.Monobehaviours.dll</HintPath>
</Reference>
<Reference Include="Techblox.Blocks.LightBlock">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.Blocks.LightBlock.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Blocks.LightBlock.dll</HintPath>
@@ -603,6 +603,10 @@
<HintPath>..\ref\Techblox_Data\Managed\Techblox.Building.Rules.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Building.Rules.dll</HintPath>
</Reference>
<Reference Include="Techblox.Building.Shift">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.Building.Shift.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Building.Shift.dll</HintPath>
</Reference>
<Reference Include="Techblox.BuildingDrone">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.BuildingDrone.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.BuildingDrone.dll</HintPath>
@@ -727,6 +731,14 @@
<HintPath>..\ref\Techblox_Data\Managed\Techblox.GUI.BuildRules.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.GUI.BuildRules.dll</HintPath>
</Reference>
<Reference Include="Techblox.GUI.Collection">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.GUI.Collection.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.GUI.Collection.dll</HintPath>
</Reference>
<Reference Include="Techblox.GUI.Commands">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.GUI.Commands.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.GUI.Commands.dll</HintPath>
</Reference>
<Reference Include="Techblox.GUI.Controls">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.GUI.Controls.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.GUI.Controls.dll</HintPath>
@@ -771,18 +783,26 @@
<HintPath>..\ref\Techblox_Data\Managed\Techblox.GUI.MainGame.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.GUI.MainGame.dll</HintPath>
</Reference>
<Reference Include="Techblox.GUI.MainGame.StateMachine">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.GUI.MainGame.StateMachine.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.GUI.MainGame.StateMachine.dll</HintPath>
</Reference>
<Reference Include="Techblox.GUI.MyGamesScreen">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.GUI.MyGamesScreen.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.GUI.MyGamesScreen.dll</HintPath>
</Reference>
<Reference Include="Techblox.GUI.PauseMenuCommands">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.GUI.PauseMenuCommands.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.GUI.PauseMenuCommands.dll</HintPath>
<Reference Include="Techblox.GUI.PauseMenu">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.GUI.PauseMenu.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.GUI.PauseMenu.dll</HintPath>
</Reference>
<Reference Include="Techblox.GUI.Progression">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.GUI.Progression.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.GUI.Progression.dll</HintPath>
</Reference>
<Reference Include="Techblox.GUI.ScreenCanvas">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.GUI.ScreenCanvas.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.GUI.ScreenCanvas.dll</HintPath>
</Reference>
<Reference Include="Techblox.GUI.TabsBar.Landscapes">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.GUI.TabsBar.Landscapes.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.GUI.TabsBar.Landscapes.dll</HintPath>
@@ -795,6 +815,10 @@
<HintPath>..\ref\Techblox_Data\Managed\Techblox.GUI.UsernameDisplay.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.GUI.UsernameDisplay.dll</HintPath>
</Reference>
<Reference Include="Techblox.GUI.WorldCanvas">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.GUI.WorldCanvas.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.GUI.WorldCanvas.dll</HintPath>
</Reference>
<Reference Include="Techblox.InputCapture">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.InputCapture.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.InputCapture.dll</HintPath>
@@ -943,10 +967,30 @@
<HintPath>..\ref\Techblox_Data\Managed\Techblox.Services.Progression.Client.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Services.Progression.Client.dll</HintPath>
</Reference>
<Reference Include="Techblox.Services.Progression">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.Services.Progression.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Services.Progression.dll</HintPath>
</Reference>
<Reference Include="Techblox.Services.Storage">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.Services.Storage.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Services.Storage.dll</HintPath>
</Reference>
<Reference Include="Techblox.Services.Users.Client">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.Services.Users.Client.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Services.Users.Client.dll</HintPath>
</Reference>
<Reference Include="Techblox.Services.Users">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.Services.Users.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Services.Users.dll</HintPath>
</Reference>
<Reference Include="Techblox.ServoBlocksServer">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.ServoBlocksServer.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.ServoBlocksServer.dll</HintPath>
</Reference>
<Reference Include="Techblox.ServosServer">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.ServosServer.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.ServosServer.dll</HintPath>
</Reference>
<Reference Include="Techblox.SignalHandling.Audio">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.SignalHandling.Audio.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.SignalHandling.Audio.dll</HintPath>
@@ -955,6 +999,10 @@
<HintPath>..\ref\Techblox_Data\Managed\Techblox.SignalHandling.Common.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.SignalHandling.Common.dll</HintPath>
</Reference>
<Reference Include="Techblox.Simulation.Clusters">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.Simulation.Clusters.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Simulation.Clusters.dll</HintPath>
</Reference>
<Reference Include="Techblox.SpawnBlock.Client">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.SpawnBlock.Client.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.SpawnBlock.Client.dll</HintPath>
@@ -1023,6 +1071,30 @@
<HintPath>..\ref\Techblox_Data\Managed\Techblox.VisualEffects.VFXGraph.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.VisualEffects.VFXGraph.dll</HintPath>
</Reference>
<Reference Include="Techblox.Weapons.Aiming">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.Weapons.Aiming.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Weapons.Aiming.dll</HintPath>
</Reference>
<Reference Include="Techblox.Weapons.DisablerBlock">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.Weapons.DisablerBlock.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Weapons.DisablerBlock.dll</HintPath>
</Reference>
<Reference Include="Techblox.Weapons">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.Weapons.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Weapons.dll</HintPath>
</Reference>
<Reference Include="Techblox.Weapons.Projectiles">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.Weapons.Projectiles.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Weapons.Projectiles.dll</HintPath>
</Reference>
<Reference Include="Techblox.Weapons.Projectiles.Server">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.Weapons.Projectiles.Server.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Weapons.Projectiles.Server.dll</HintPath>
</Reference>
<Reference Include="Techblox.Weapons.Server">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.Weapons.Server.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Weapons.Server.dll</HintPath>
</Reference>
<Reference Include="Techblox.WheelFX">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.WheelFX.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.WheelFX.dll</HintPath>
@@ -1403,6 +1475,10 @@
<HintPath>..\ref\Techblox_Data\Managed\UnityEngine.TextCoreFontEngineModule.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\UnityEngine.TextCoreFontEngineModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.TextCoreModule">
<HintPath>..\ref\Techblox_Data\Managed\UnityEngine.TextCoreModule.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\UnityEngine.TextCoreModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.TextCoreTextEngineModule">
<HintPath>..\ref\Techblox_Data\Managed\UnityEngine.TextCoreTextEngineModule.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\UnityEngine.TextCoreTextEngineModule.dll</HintPath>


Loading…
Cancel
Save