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
This commit is contained in:
Norbi Peti 2022-04-29 02:07:46 +02:00
parent a610623644
commit dfe1bfb504
No known key found for this signature in database
GPG key ID: DBA4C4549A927E56
7 changed files with 144 additions and 47 deletions

View file

@ -5,7 +5,7 @@ from pathlib import Path, PurePath
import re import re
import os 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): def getAssemblyReferences(path):
asmDir = Path(path) asmDir = Path(path)
@ -15,10 +15,12 @@ def getAssemblyReferences(path):
addedPath = "../" addedPath = "../"
asmDir = Path(addedPath + path) asmDir = Path(addedPath + path)
for child in asmDir.iterdir(): 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 = str(child)
childstr = os.path.relpath(childstr, addedPath).replace("\\", "/") childstr = os.path.relpath(childstr, addedPath).replace("\\", "/")
result.append(childstr) result.append(childstr)
result.sort(key=str.lower)
result = [path + "/IllusionInjector.dll", path + "/IllusionPlugin.dll"] + result # Always put it on top
return result return result
def buildReferencesXml(path): def buildReferencesXml(path):
@ -51,7 +53,7 @@ if __name__ == "__main__":
if depsStart is None or depsEnd is None: if depsStart is None or depsEnd is None:
print("Unable to find dependency XML comments, aborting!") print("Unable to find dependency XML comments, aborting!")
exit(1) 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: with open("../TechbloxModdingAPI/TechbloxModdingAPI.csproj", "w") as xmlFile:
print("Writing Assembly references") print("Writing Assembly references")
xmlFile.write(newFileStr) xmlFile.write(newFileStr)

View file

@ -1,11 +1,9 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Reflection;
using HarmonyLib; using HarmonyLib;
using Gamecraft.ColourPalette; using Gamecraft.ColourPalette;
using Gamecraft.TimeRunning;
using Gamecraft.Wires; using Gamecraft.Wires;
using RobocraftX.Blocks; using RobocraftX.Blocks;
using RobocraftX.Common; using RobocraftX.Common;
@ -59,6 +57,7 @@ namespace TechbloxModdingAPI.Blocks.Engines
} }
} }
//TODO: GetConnectedCubesUtility
ConnectedCubesUtility.TreeTraversal.GetConnectedCubes(entitiesDB, blockID, cubeStack, cubes, ConnectedCubesUtility.TreeTraversal.GetConnectedCubes(entitiesDB, blockID, cubeStack, cubes,
(in GridConnectionsEntityStruct _) => false); (in GridConnectionsEntityStruct _) => false);

View file

@ -18,7 +18,7 @@ using Svelto.ECS.DataStructures;
using Svelto.ECS.EntityStructs; using Svelto.ECS.EntityStructs;
using Svelto.ECS.Native; using Svelto.ECS.Native;
using Svelto.ECS.Serialization; using Svelto.ECS.Serialization;
using Techblox.Blocks; using Techblox.Blocks.Connections;
using TechbloxModdingAPI.Engines; using TechbloxModdingAPI.Engines;
using TechbloxModdingAPI.Utility; using TechbloxModdingAPI.Utility;
using Unity.Collections; using Unity.Collections;
@ -48,7 +48,8 @@ namespace TechbloxModdingAPI.Blocks.Engines
private static readonly MethodInfo SerializeGhostBlueprint = private static readonly MethodInfo SerializeGhostBlueprint =
AccessTools.Method(SerializeGhostBlueprintType, "SerializeClipboardGhostEntities"); AccessTools.Method(SerializeGhostBlueprintType, "SerializeClipboardGhostEntities");
private static NativeEntityRemove nativeRemove; private static NativeEntityRemove nativeBlockRemove;
private static NativeEntityRemove nativeConnectionRemove;
private static MachineGraphConnectionEntityFactory connectionFactory; private static MachineGraphConnectionEntityFactory connectionFactory;
private static IEntityFunctions entityFunctions; private static IEntityFunctions entityFunctions;
private static ClipboardSerializationDataResourceManager clipboardManager; private static ClipboardSerializationDataResourceManager clipboardManager;
@ -88,8 +89,8 @@ namespace TechbloxModdingAPI.Blocks.Engines
public void RemoveBlockGroup(int id) public void RemoveBlockGroup(int id)
{ {
BlockGroupUtility.RemoveAllBlocksInBlockGroup(id, entitiesDB, removedConnections, nativeRemove, BlockGroupUtility.RemoveAllBlocksInBlockGroup(id, entitiesDB, removedConnections, nativeBlockRemove,
connectionFactory, default).Complete(); nativeConnectionRemove, connectionFactory, default).Complete();
} }
public int CreateBlockGroup(float3 position, quaternion rotation) public int CreateBlockGroup(float3 position, quaternion rotation)
@ -339,7 +340,8 @@ namespace TechbloxModdingAPI.Blocks.Engines
public static void Prefix(IEntityFunctions entityFunctions, public static void Prefix(IEntityFunctions entityFunctions,
MachineGraphConnectionEntityFactory machineGraphConnectionEntityFactory) 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; connectionFactory = machineGraphConnectionEntityFactory;
BlueprintEngine.entityFunctions = entityFunctions; BlueprintEngine.entityFunctions = entityFunctions;
} }

View file

@ -1,32 +1,43 @@
using System.Reflection; using System.Reflection;
using Gamecraft.Blocks.BlockGroups;
using HarmonyLib; using HarmonyLib;
using RobocraftX.Blocks; using RobocraftX.Blocks;
using RobocraftX.Common; using RobocraftX.Common;
using Svelto.Common; using RobocraftX.GroupTags;
using RobocraftX.StateSync;
using Svelto.ECS; using Svelto.ECS;
using Svelto.ECS.Native; using Svelto.ECS.Native;
using Techblox.Blocks.Connections;
using Unity.Collections;
using Unity.Jobs;
using Allocator = Unity.Collections.Allocator;
using TechbloxModdingAPI.Engines; using TechbloxModdingAPI.Engines;
using TechbloxModdingAPI.Utility; using TechbloxModdingAPI.Utility;
namespace TechbloxModdingAPI.Blocks.Engines namespace TechbloxModdingAPI.Blocks.Engines
{ {
public class RemovalEngine : IApiEngine public class RemovalEngine : IApiEngine, IDeterministicTimeStopped
{ {
private static IEntityFunctions _entityFunctions; private static IEntityFunctions _entityFunctions;
private static MachineGraphConnectionEntityFactory _connectionFactory; private static MachineGraphConnectionEntityFactory _connectionFactory;
private NativeHashSet<ulong> removedConnections = new(2000, Allocator.Persistent);
public bool RemoveBlock(EGID target) public bool RemoveBlock(EGID target)
{ {
if (!entitiesDB.Exists<MachineGraphConnectionsEntityStruct>(target)) if (!entitiesDB.Exists<MachineGraphConnectionsEntityStruct>(target))
return false; return false;
var connections = entitiesDB.QueryEntity<MachineGraphConnectionsEntityStruct>(target); using var connStructMapper =
var groups = entitiesDB.FindGroups<MachineGraphConnectionsEntityStruct>(); entitiesDB.QueryNativeMappedEntities<MachineGraphConnectionsEntityStruct>(GroupTag<BLOCK_TAG>.Groups,
using var connStructMapper = //The allocator needs to be persistent because that's what is used in the Dispose() method Svelto.Common.Allocator.Temp);
entitiesDB.QueryNativeMappedEntities<MachineGraphConnectionsEntityStruct>(groups, Allocator.Persistent); if (entitiesDB.TryQueryNativeMappedEntities<MachineConnectionComponent>(
for (int i = connections.connections.Count<MachineConnectionStruct>() - 1; i >= 0; i--) ConnectionsExclusiveGroups.MACHINE_CONNECTION_GROUP, out var mapper))
_connectionFactory.RemoveConnection(connections, i, connStructMapper); {
BlockGroupUtility.RemoveBlockConnections(target, removedConnections, _connectionFactory,
connStructMapper, mapper, entitiesDB.GetEntityReferenceMap(), _entityFunctions);
}
_entityFunctions.RemoveEntity<BlockEntityDescriptor>(target); _entityFunctions.RemoveEntity<BlockEntityDescriptor>(target);
return true; return true;
} }
@ -39,9 +50,11 @@ namespace TechbloxModdingAPI.Blocks.Engines
public void Dispose() public void Dispose()
{ {
removedConnections.Dispose();
} }
public string Name { get; } = "TechbloxModdingAPIRemovalGameEngine"; public string Name => "TechbloxModdingAPIRemovalGameEngine";
public string name => Name;
public bool isRemovable => false; public bool isRemovable => false;
@ -61,5 +74,11 @@ namespace TechbloxModdingAPI.Blocks.Engines
return AccessTools.TypeByName("RobocraftX.CR.MachineEditing.RemoveBlockEngine").GetConstructors()[0]; return AccessTools.TypeByName("RobocraftX.CR.MachineEditing.RemoveBlockEngine").GetConstructors()[0];
} }
} }
public JobHandle DeterministicStep(in float deltaTime, JobHandle inputDeps)
{
removedConnections.Clear();
return default;
}
} }
} }

View file

@ -1,7 +1,5 @@
using Gamecraft.Damage; using Svelto.ECS;
using RobocraftX.Common; using Techblox.TimeRunning.Clusters;
using Svelto.ECS;
using Techblox.Physics;
namespace TechbloxModdingAPI 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; get => 0f;
set => Block.BlockEngine.GetBlockInfo<HealthEntityComponent>(this).initialHealth = value; set { }
} }
public float CurrentHealth public float CurrentHealth
{ {
get => Block.BlockEngine.GetBlockInfo<HealthEntityComponent>(this).currentHealth; get => 0f;
set => Block.BlockEngine.GetBlockInfo<HealthEntityComponent>(this).currentHealth = value; set { }
} }
public float HealthMultiplier public float HealthMultiplier
{ {
get => Block.BlockEngine.GetBlockInfo<HealthEntityComponent>(this).healthMultiplier; get => 0f;
set => Block.BlockEngine.GetBlockInfo<HealthEntityComponent>(this).healthMultiplier = value; set { }
} }
/// <summary> /// <summary>

View file

@ -6,6 +6,7 @@ using UnityEngine;
using Gamecraft.Damage; using Gamecraft.Damage;
using RobocraftX.Common; using RobocraftX.Common;
using RobocraftX.Physics; using RobocraftX.Physics;
using Techblox.TimeRunning.Clusters;
namespace TechbloxModdingAPI namespace TechbloxModdingAPI
{ {
@ -20,7 +21,7 @@ namespace TechbloxModdingAPI
/// </summary> /// </summary>
public Cluster Cluster => cluster ??= clusterId == uint.MaxValue // Return cluster or if it's null then set it 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 ? 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 egid => new Cluster(egid)); // Otherwise get the cluster from the ID
private Cluster cluster; private Cluster cluster;
@ -82,7 +83,7 @@ namespace TechbloxModdingAPI
public float3 CenterOfMass public float3 CenterOfMass
{ {
get => Block.BlockEngine.GetBlockInfo<MassEntityStruct>(this).centreOfMass; get => 0f; //TODO
//set => GetStruct().physicsMass.CenterOfMass = value; //set => GetStruct().physicsMass.CenterOfMass = value;
} }
@ -93,20 +94,20 @@ namespace TechbloxModdingAPI
public float InitialHealth public float InitialHealth
{ {
get => Block.BlockEngine.GetBlockInfo<HealthEntityComponent>(this).initialHealth; get => 0f;
set => Block.BlockEngine.GetBlockInfo<HealthEntityComponent>(this).initialHealth = value; set { }
} }
public float CurrentHealth public float CurrentHealth
{ {
get => Block.BlockEngine.GetBlockInfo<HealthEntityComponent>(this).currentHealth; get => 0f;
set => Block.BlockEngine.GetBlockInfo<HealthEntityComponent>(this).currentHealth = value; set { }
} }
public float HealthMultiplier public float HealthMultiplier
{ {
get => Block.BlockEngine.GetBlockInfo<HealthEntityComponent>(this).healthMultiplier; get => 0f;
set => Block.BlockEngine.GetBlockInfo<HealthEntityComponent>(this).healthMultiplier = value; set { }
} }
/// <summary> /// <summary>

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>
<HintPath>..\..\ref\Techblox_Data\Managed\RobocraftX.GUI.PauseMenu.dll</HintPath> <HintPath>..\..\ref\Techblox_Data\Managed\RobocraftX.GUI.PauseMenu.dll</HintPath>
</Reference> </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"> <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>
<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>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Blocks.Connections.dll</HintPath> <HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Blocks.Connections.dll</HintPath>
</Reference> </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"> <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>
<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>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Building.Rules.dll</HintPath> <HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Building.Rules.dll</HintPath>
</Reference> </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"> <Reference Include="Techblox.BuildingDrone">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.BuildingDrone.dll</HintPath> <HintPath>..\ref\Techblox_Data\Managed\Techblox.BuildingDrone.dll</HintPath>
<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>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.GUI.BuildRules.dll</HintPath> <HintPath>..\..\ref\Techblox_Data\Managed\Techblox.GUI.BuildRules.dll</HintPath>
</Reference> </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"> <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>
<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>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.GUI.MainGame.dll</HintPath> <HintPath>..\..\ref\Techblox_Data\Managed\Techblox.GUI.MainGame.dll</HintPath>
</Reference> </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"> <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>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.GUI.MyGamesScreen.dll</HintPath> <HintPath>..\..\ref\Techblox_Data\Managed\Techblox.GUI.MyGamesScreen.dll</HintPath>
</Reference> </Reference>
<Reference Include="Techblox.GUI.PauseMenuCommands"> <Reference Include="Techblox.GUI.PauseMenu">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.GUI.PauseMenuCommands.dll</HintPath> <HintPath>..\ref\Techblox_Data\Managed\Techblox.GUI.PauseMenu.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.GUI.PauseMenuCommands.dll</HintPath> <HintPath>..\..\ref\Techblox_Data\Managed\Techblox.GUI.PauseMenu.dll</HintPath>
</Reference> </Reference>
<Reference Include="Techblox.GUI.Progression"> <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>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.GUI.Progression.dll</HintPath> <HintPath>..\..\ref\Techblox_Data\Managed\Techblox.GUI.Progression.dll</HintPath>
</Reference> </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"> <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>
<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>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.GUI.UsernameDisplay.dll</HintPath> <HintPath>..\..\ref\Techblox_Data\Managed\Techblox.GUI.UsernameDisplay.dll</HintPath>
</Reference> </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"> <Reference Include="Techblox.InputCapture">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.InputCapture.dll</HintPath> <HintPath>..\ref\Techblox_Data\Managed\Techblox.InputCapture.dll</HintPath>
<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>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Services.Progression.Client.dll</HintPath> <HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Services.Progression.Client.dll</HintPath>
</Reference> </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"> <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>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Services.Storage.dll</HintPath> <HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Services.Storage.dll</HintPath>
</Reference> </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"> <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>
<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>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.SignalHandling.Common.dll</HintPath> <HintPath>..\..\ref\Techblox_Data\Managed\Techblox.SignalHandling.Common.dll</HintPath>
</Reference> </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"> <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>
<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>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.VisualEffects.VFXGraph.dll</HintPath> <HintPath>..\..\ref\Techblox_Data\Managed\Techblox.VisualEffects.VFXGraph.dll</HintPath>
</Reference> </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"> <Reference Include="Techblox.WheelFX">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.WheelFX.dll</HintPath> <HintPath>..\ref\Techblox_Data\Managed\Techblox.WheelFX.dll</HintPath>
<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>
<HintPath>..\..\ref\Techblox_Data\Managed\UnityEngine.TextCoreFontEngineModule.dll</HintPath> <HintPath>..\..\ref\Techblox_Data\Managed\UnityEngine.TextCoreFontEngineModule.dll</HintPath>
</Reference> </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"> <Reference Include="UnityEngine.TextCoreTextEngineModule">
<HintPath>..\ref\Techblox_Data\Managed\UnityEngine.TextCoreTextEngineModule.dll</HintPath> <HintPath>..\ref\Techblox_Data\Managed\UnityEngine.TextCoreTextEngineModule.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\UnityEngine.TextCoreTextEngineModule.dll</HintPath> <HintPath>..\..\ref\Techblox_Data\Managed\UnityEngine.TextCoreTextEngineModule.dll</HintPath>