Update to Techblox 2022.02.17.10.32

This commit is contained in:
Norbi Peti 2022-02-18 23:09:56 +01:00
parent 7b2ac973d8
commit c6dae688fe
13 changed files with 253 additions and 119 deletions

View file

@ -22,7 +22,7 @@ namespace TechbloxModdingAPI.App
harmony.Patch(AccessTools.Method(type, "StartProtectedSession"), new HarmonyMethod(((AntiAnticheatDelegate) AntiAntiCheat).Method)); harmony.Patch(AccessTools.Method(type, "StartProtectedSession"), new HarmonyMethod(((AntiAnticheatDelegate) AntiAntiCheat).Method));
harmony.Patch(AccessTools.Method(type, "StopProtectedSession"), new HarmonyMethod(((AntiAnticheatDelegateBool) AntiAntiCheat).Method)); harmony.Patch(AccessTools.Method(type, "StopProtectedSession"), new HarmonyMethod(((AntiAnticheatDelegateBool) AntiAntiCheat).Method));
harmony.Patch(AccessTools.Method("Techblox.Services.Eos.Anticheat.Client.EosGetPendingMessagesToSendServiceRequest:Execute"), new HarmonyMethod(((AntiAnticheatDelegateTask)AntiAntiCheatTask).Method)); harmony.Patch(AccessTools.Method("Techblox.Services.Eos.Anticheat.Client.EosGetPendingMessagesToSendServiceRequest:Execute"), new HarmonyMethod(((AntiAnticheatDelegateTask)AntiAntiCheatTask).Method));
harmony.Patch(AccessTools.Method("Techblox.Anticheat.Client.Engines.ShowFeedbackDialogEngine:PollAnticheatStatus"), new HarmonyMethod(((AntiAnticheatDelegateTask)AntiAntiCheatTask).Method)); harmony.Patch(AccessTools.Method("Techblox.Anticheat.Client.Engines.ProcessEACViolationEngine:PollAnticheatStatus"), new HarmonyMethod(((AntiAnticheatDelegateTask)AntiAntiCheatTask).Method));
harmony.Patch(AccessTools.Method(typeof(AnticheatClientCompositionRoot), "ClientComposeTimeRunning"), new HarmonyMethod(((Func<bool>)AntiAntiCheat).Method)); harmony.Patch(AccessTools.Method(typeof(AnticheatClientCompositionRoot), "ClientComposeTimeRunning"), new HarmonyMethod(((Func<bool>)AntiAntiCheat).Method));
} }

View file

@ -140,9 +140,8 @@ namespace TechbloxModdingAPI.App
{ {
var allBlocks = entitiesDB.QueryEntities<BlockTagEntityStruct>(); var allBlocks = entitiesDB.QueryEntities<BlockTagEntityStruct>();
List<EGID> blockEGIDs = new List<EGID>(); List<EGID> blockEGIDs = new List<EGID>();
foreach (var (blocks, _) in allBlocks) foreach (var ((buffer, count), _) in allBlocks)
{ {
var (buffer, count) = blocks.ToBuffer();
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
{ {
uint dbid; uint dbid;

View file

@ -55,13 +55,12 @@ namespace TechbloxModdingAPI.App
public Game[] GetMyGames() public Game[] GetMyGames()
{ {
EntityCollection<MyGameDataEntityStruct> mgsevs = entitiesDB.QueryEntities<MyGameDataEntityStruct>(MyGamesScreenExclusiveGroups.MyGames); var (mgsevs, count) = entitiesDB.QueryEntities<MyGameDataEntityStruct>(MyGamesScreenExclusiveGroups.MyGames);
var mgsevsB = mgsevs.ToBuffer().buffer; Game[] games = new Game[count];
Game[] games = new Game[mgsevs.count]; for (int i = 0; i < count; i++)
for (int i = 0; i < mgsevs.count; i++)
{ {
Utility.Logging.MetaDebugLog($"Found game named {mgsevsB[i].GameName}"); Utility.Logging.MetaDebugLog($"Found game named {mgsevs[i].GameName}");
games[i] = new Game(mgsevsB[i].ID); games[i] = new Game(mgsevs[i].ID);
} }
return games; return games;
} }
@ -84,14 +83,13 @@ namespace TechbloxModdingAPI.App
public uint HighestID() public uint HighestID()
{ {
EntityCollection<MyGameDataEntityStruct> games = entitiesDB.QueryEntities<MyGameDataEntityStruct>(MyGamesScreenExclusiveGroups.MyGames); var (games, count) = entitiesDB.QueryEntities<MyGameDataEntityStruct>(MyGamesScreenExclusiveGroups.MyGames);
var gamesB = games.ToBuffer().buffer;
uint max = 0; uint max = 0;
for (int i = 0; i < games.count; i++) for (int i = 0; i < count; i++)
{ {
if (gamesB[i].ID.entityID > max) if (games[i].ID.entityID > max)
{ {
max = gamesB[i].ID.entityID; max = games[i].ID.entityID;
} }
} }
return max; return max;

View file

@ -11,8 +11,7 @@ using Unity.Mathematics;
using HarmonyLib; using HarmonyLib;
using RobocraftX.PilotSeat; using RobocraftX.PilotSeat;
using RobocraftX.Rendering; using RobocraftX.Rendering;
using Techblox.BlockLabels; using Techblox.BlockLabelsServer;
using TechbloxModdingAPI.Blocks; using TechbloxModdingAPI.Blocks;
using TechbloxModdingAPI.Blocks.Engines; using TechbloxModdingAPI.Blocks.Engines;
using TechbloxModdingAPI.Tests; using TechbloxModdingAPI.Tests;

View file

@ -278,7 +278,40 @@ namespace TechbloxModdingAPI.Blocks
GravtracTextblock, GravtracTextblock,
HauserTextblock, HauserTextblock,
TechnopollasTextblock, TechnopollasTextblock,
BitBlock = 385, DiagonalTrackTile = 381,
Timer DiagonalTrackTile2,
DiagonalTransitionTile,
SplitLane,
BitBlock,
Timer,
CityNightAtmosphere,
FloodLight,
SoccerBall,
CircularWallLight,
DirtToGrassTransitionTile = 393,
DirtToGrassTransitionInnerTile,
DirtToGrassTransitionOuterTile,
DirtToGrassTransitionHillTile,
DirtToGrassTransitionRoadTile,
DirtHill2 = 399,
DirtHill3,
DirtInnerCorner2 = 402,
DirtInnerCorner3,
DirtOuterCorner2 = 405,
DirtOuterCorner3,
SmallGrassQuarterTile = 411,
HUDTimer = 413,
CentreHUD,
Checkpoint,
ScoreboardHUD,
GameplaySFX,
SpawnPoint,
AreaSensor,
WorldResetter,
SmallJet,
MediumJet,
LargeJet,
DistanceSensor,
Stabilizer,
} }
} }

View file

@ -31,5 +31,6 @@ namespace TechbloxModdingAPI.Blocks
SteelBodyworkPaintedChipped, SteelBodyworkPaintedChipped,
WoodPainted, WoodPainted,
WoodRoughGrungy, WoodRoughGrungy,
Boundary,
} }
} }

View file

@ -45,22 +45,20 @@ namespace TechbloxModdingAPI.Blocks.Engines
public Block[] GetConnectedBlocks(EGID blockID) public Block[] GetConnectedBlocks(EGID blockID)
{ {
if (!BlockExists(blockID)) return new Block[0]; if (!BlockExists(blockID)) return Array.Empty<Block>();
Stack<EGID> cubeStack = new Stack<EGID>(); Stack<EGID> cubeStack = new Stack<EGID>();
FasterList<EGID> cubes = new FasterList<EGID>(10); FasterList<EGID> cubes = new FasterList<EGID>(10);
var coll = entitiesDB.QueryEntities<GridConnectionsEntityStruct>(); var coll = entitiesDB.QueryEntities<GridConnectionsEntityStruct>();
foreach (var (ecoll, _) in coll) foreach (var ((ecoll, count), _) in coll)
{ {
var ecollB = ecoll.ToBuffer(); for(int i = 0; i < count; i++)
for(int i = 0; i < ecoll.count; i++)
{ {
ref var conn = ref ecollB.buffer[i]; ecoll[i].isProcessed = false;
conn.isProcessed = false;
} }
} }
ConnectedCubesUtility.TreeTraversal.GetConnectedCubes(entitiesDB, blockID, cubeStack, cubes, ConnectedCubesUtility.TreeTraversal.GetConnectedCubes(entitiesDB, blockID, cubeStack, cubes,
(in GridConnectionsEntityStruct g) => { return false; }); (in GridConnectionsEntityStruct _) => false);
var ret = new Block[cubes.count]; var ret = new Block[cubes.count];
for (int i = 0; i < cubes.count; i++) for (int i = 0; i < cubes.count; i++)
@ -197,11 +195,11 @@ namespace TechbloxModdingAPI.Blocks.Engines
public SimBody[] GetConnectedSimBodies(uint id) public SimBody[] GetConnectedSimBodies(uint id)
{ {
var joints = entitiesDB.QueryEntities<JointEntityStruct>(MachineSimulationGroups.JOINTS_GROUP).ToBuffer(); var (joints, count) = entitiesDB.QueryEntities<JointEntityStruct>(MachineSimulationGroups.JOINTS_GROUP);
var list = new FasterList<SimBody>(4); var list = new FasterList<SimBody>(4);
for (int i = 0; i < joints.count; i++) for (int i = 0; i < count; i++)
{ {
ref var joint = ref joints.buffer[i]; ref var joint = ref joints[i];
if (joint.isBroken) continue; if (joint.isBroken) continue;
if (joint.connectedEntityA == id) list.Add(new SimBody(joint.connectedEntityB)); if (joint.connectedEntityA == id) list.Add(new SimBody(joint.connectedEntityB));
else if (joint.connectedEntityB == id) list.Add(new SimBody(joint.connectedEntityA)); else if (joint.connectedEntityB == id) list.Add(new SimBody(joint.connectedEntityA));
@ -214,12 +212,11 @@ namespace TechbloxModdingAPI.Blocks.Engines
{ {
var groups = entitiesDB.QueryEntities<GridConnectionsEntityStruct>(); var groups = entitiesDB.QueryEntities<GridConnectionsEntityStruct>();
var bodies = new HashSet<uint>(); var bodies = new HashSet<uint>();
foreach (var (coll, _) in groups) foreach (var ((coll, count), _) in groups)
{ {
var array = coll.ToBuffer().buffer; for (var index = 0; index < count; index++)
for (var index = 0; index < array.capacity; index++)
{ {
var conn = array[index]; var conn = coll[index];
if (conn.clusterId == cid) if (conn.clusterId == cid)
bodies.Add(conn.machineRigidBodyId); bodies.Add(conn.machineRigidBodyId);
} }
@ -243,12 +240,11 @@ namespace TechbloxModdingAPI.Blocks.Engines
public Cluster GetCluster(uint sbid) public Cluster GetCluster(uint sbid)
{ {
var groups = entitiesDB.QueryEntities<GridConnectionsEntityStruct>(); var groups = entitiesDB.QueryEntities<GridConnectionsEntityStruct>();
foreach (var (coll, _) in groups) foreach (var ((coll, count), _) in groups)
{ {
var array = coll.ToBuffer().buffer; for (var index = 0; index < count; index++)
for (var index = 0; index < array.capacity; index++)
{ {
var conn = array[index]; var conn = coll[index];
//Static blocks don't have a cluster ID but the cluster destruction manager should have one //Static blocks don't have a cluster ID but the cluster destruction manager should have one
if (conn.machineRigidBodyId == sbid && conn.clusterId != uint.MaxValue) if (conn.machineRigidBodyId == sbid && conn.clusterId != uint.MaxValue)
return new Cluster(conn.clusterId); return new Cluster(conn.clusterId);
@ -262,12 +258,11 @@ namespace TechbloxModdingAPI.Blocks.Engines
{ {
var groups = entitiesDB.QueryEntities<GridConnectionsEntityStruct>(); var groups = entitiesDB.QueryEntities<GridConnectionsEntityStruct>();
var set = new HashSet<Block>(); var set = new HashSet<Block>();
foreach (var (coll, _) in groups) foreach (var ((coll, count), _) in groups)
{ {
var array = coll.ToBuffer().buffer; for (var index = 0; index < count; index++)
for (var index = 0; index < array.capacity; index++)
{ {
var conn = array[index]; var conn = coll[index];
if (conn.machineRigidBodyId == sbid) if (conn.machineRigidBodyId == sbid)
set.Add(Block.New(conn.ID)); set.Add(Block.New(conn.ID));
} }
@ -282,27 +277,5 @@ namespace TechbloxModdingAPI.Blocks.Engines
return entitiesDB; return entitiesDB;
} }
#endif #endif
[HarmonyPatch]
public static class RenderingPatch
{
private static ComputeRenderingEntitiesMatricesEngine Engine;
public static void Postfix(ComputeRenderingEntitiesMatricesEngine __instance)
{
Engine = __instance;
}
public static MethodBase TargetMethod()
{
return typeof(ComputeRenderingEntitiesMatricesEngine).GetConstructors()[0];
}
public static void UpdateBlocks()
{
var data = new RenderingDataStruct();
Engine.Add(ref data, new EGID(0, CommonExclusiveGroups.BUTTON_BLOCK_GROUP));
}
}
} }
} }

View file

@ -116,9 +116,8 @@ namespace TechbloxModdingAPI.Blocks.Engines
public bool SetSignal(uint signalID, float signal, bool input = true) public bool SetSignal(uint signalID, float signal, bool input = true)
{ {
var array = GetSignalStruct(signalID, out uint index, input); var (array, count) = GetSignalStruct(signalID, out uint index, input);
var arrayB = array.ToBuffer(); if (count > 0) array[index].valueAsFloat = signal;
if (array.count > 0) arrayB.buffer[index].valueAsFloat = signal;
return false; return false;
} }
@ -130,11 +129,10 @@ namespace TechbloxModdingAPI.Blocks.Engines
public float AddSignal(uint signalID, float signal, bool clamp = true, bool input = true) public float AddSignal(uint signalID, float signal, bool clamp = true, bool input = true)
{ {
var array = GetSignalStruct(signalID, out uint index, input); var (array, count) = GetSignalStruct(signalID, out uint index, input);
var arrayB = array.ToBuffer(); if (count > 0)
if (array.count > 0)
{ {
ref var channelData = ref arrayB.buffer[index]; ref var channelData = ref array[index];
channelData.valueAsFloat += signal; channelData.valueAsFloat += signal;
if (clamp) if (clamp)
{ {
@ -162,9 +160,8 @@ namespace TechbloxModdingAPI.Blocks.Engines
public float GetSignal(uint signalID, bool input = true) public float GetSignal(uint signalID, bool input = true)
{ {
var array = GetSignalStruct(signalID, out uint index, input); var (array, count) = GetSignalStruct(signalID, out uint index, input);
var arrayB = array.ToBuffer(); return count > 0 ? array[index].valueAsFloat : 0f;
return array.count > 0 ? arrayB.buffer[index].valueAsFloat : 0f;
} }
public uint[] GetSignalIDs(EGID blockID, bool input = true) public uint[] GetSignalIDs(EGID blockID, bool input = true)
@ -237,15 +234,14 @@ namespace TechbloxModdingAPI.Blocks.Engines
public ref WireEntityStruct MatchPortToWire(PortEntityStruct port, EGID blockID, out bool exists) public ref WireEntityStruct MatchPortToWire(PortEntityStruct port, EGID blockID, out bool exists)
{ {
var wires = entitiesDB.QueryEntities<WireEntityStruct>(NamedExclusiveGroup<BuildModeWiresGroups.WiresGroup>.Group); var (wires, count) = entitiesDB.QueryEntities<WireEntityStruct>(NamedExclusiveGroup<BuildModeWiresGroups.WiresGroup>.Group);
var wiresB = wires.ToBuffer().buffer; for (uint i = 0; i < count; i++)
for (uint i = 0; i < wires.count; i++)
{ {
if ((wiresB[i].destinationPortUsage == port.usage && wiresB[i].destinationBlockEGID == blockID) if ((wires[i].destinationPortUsage == port.usage && wires[i].destinationBlockEGID == blockID)
|| (wiresB[i].sourcePortUsage == port.usage && wiresB[i].sourceBlockEGID == blockID)) || (wires[i].sourcePortUsage == port.usage && wires[i].sourceBlockEGID == blockID))
{ {
exists = true; exists = true;
return ref wiresB[i]; return ref wires[i];
} }
} }
exists = false; exists = false;
@ -279,20 +275,19 @@ namespace TechbloxModdingAPI.Blocks.Engines
endPorts = new EGID[] {new EGID(ports.firstInputID + endPort, NamedExclusiveGroup<BuildModeWiresGroups.InputPortsGroup>.Group) }; endPorts = new EGID[] {new EGID(ports.firstInputID + endPort, NamedExclusiveGroup<BuildModeWiresGroups.InputPortsGroup>.Group) };
} }
EntityCollection<WireEntityStruct> wires = entitiesDB.QueryEntities<WireEntityStruct>(NamedExclusiveGroup<BuildModeWiresGroups.WiresGroup>.Group); var (wires, count) = entitiesDB.QueryEntities<WireEntityStruct>(NamedExclusiveGroup<BuildModeWiresGroups.WiresGroup>.Group);
var wiresB = wires.ToBuffer().buffer;
for (int endIndex = 0; endIndex < endPorts.Length; endIndex++) for (int endIndex = 0; endIndex < endPorts.Length; endIndex++)
{ {
PortEntityStruct endPES = entitiesDB.QueryEntity<PortEntityStruct>(endPorts[endIndex]); PortEntityStruct endPES = entitiesDB.QueryEntity<PortEntityStruct>(endPorts[endIndex]);
for (int startIndex = 0; startIndex < startPorts.Length; startIndex++) for (int startIndex = 0; startIndex < startPorts.Length; startIndex++)
{ {
PortEntityStruct startPES = entitiesDB.QueryEntity<PortEntityStruct>(startPorts[startIndex]); PortEntityStruct startPES = entitiesDB.QueryEntity<PortEntityStruct>(startPorts[startIndex]);
for (int w = 0; w < wires.count; w++) for (int w = 0; w < count; w++)
{ {
if ((wiresB[w].destinationPortUsage == endPES.usage && wiresB[w].destinationBlockEGID == endBlock) if ((wires[w].destinationPortUsage == endPES.usage && wires[w].destinationBlockEGID == endBlock)
&& (wiresB[w].sourcePortUsage == startPES.usage && wiresB[w].sourceBlockEGID == startBlock)) && (wires[w].sourcePortUsage == startPES.usage && wires[w].sourceBlockEGID == startBlock))
{ {
return wiresB[w].ID; return wires[w].ID;
} }
} }
} }
@ -304,22 +299,20 @@ namespace TechbloxModdingAPI.Blocks.Engines
public OptionalRef<ChannelDataStruct> GetChannelDataStruct(EGID portID) public OptionalRef<ChannelDataStruct> GetChannelDataStruct(EGID portID)
{ {
var port = GetPort(portID); var port = GetPort(portID);
var channels = entitiesDB.QueryEntities<ChannelDataStruct>(NamedExclusiveGroup<BuildModeWiresGroups.ChannelDataGroup>.Group); var (channels, count) = entitiesDB.QueryEntities<ChannelDataStruct>(NamedExclusiveGroup<BuildModeWiresGroups.ChannelDataGroup>.Group);
var channelsB = channels.ToBuffer(); return port.firstChannelIndexCachedInSim < count
return port.firstChannelIndexCachedInSim < channels.count ? new OptionalRef<ChannelDataStruct>(channels, port.firstChannelIndexCachedInSim)
? new OptionalRef<ChannelDataStruct>(channelsB.buffer, port.firstChannelIndexCachedInSim)
: default; : default;
} }
public EGID[] GetElectricBlocks() public EGID[] GetElectricBlocks()
{ {
var res = new FasterList<EGID>(); var res = new FasterList<EGID>();
foreach (var (coll, _) in entitiesDB.QueryEntities<BlockPortsStruct>()) foreach (var ((coll, count), _) in entitiesDB.QueryEntities<BlockPortsStruct>())
{ {
var collB = coll.ToBuffer(); for (int i = 0; i < count; i++)
for (int i = 0; i < coll.count; i++)
{ {
ref BlockPortsStruct s = ref collB.buffer[i]; ref BlockPortsStruct s = ref coll[i];
res.Add(s.ID); res.Add(s.ID);
} }
} }
@ -356,13 +349,12 @@ namespace TechbloxModdingAPI.Blocks.Engines
private T[] Search<T>(ExclusiveGroup group, Func<T, bool> isMatch) where T : unmanaged, IEntityComponent private T[] Search<T>(ExclusiveGroup group, Func<T, bool> isMatch) where T : unmanaged, IEntityComponent
{ {
FasterList<T> results = new FasterList<T>(); FasterList<T> results = new FasterList<T>();
EntityCollection<T> components = entitiesDB.QueryEntities<T>(group); var (components, count) = entitiesDB.QueryEntities<T>(group);
var componentsB = components.ToBuffer(); for (uint i = 0; i < count; i++)
for (uint i = 0; i < components.count; i++)
{ {
if (isMatch(componentsB.buffer[i])) if (isMatch(components[i]))
{ {
results.Add(componentsB.buffer[i]); results.Add(components[i]);
} }
} }
return results.ToArray(); return results.ToArray();

View file

@ -4,17 +4,18 @@ using RobocraftX.SaveAndLoad;
using Svelto.ECS; using Svelto.ECS;
using HarmonyLib; using HarmonyLib;
using RobocraftX.StateSync;
namespace TechbloxModdingAPI.Persistence namespace TechbloxModdingAPI.Persistence
{ {
[HarmonyPatch(typeof(SaveAndLoadCompositionRoot), "ServerCompose")] [HarmonyPatch(typeof(SaveAndLoadCompositionRoot), "ClientComposeTimeStopped")]
class SaveAndLoadCompositionRootPatch class SaveAndLoadCompositionRootPatch
{ {
public static EnginesRoot currentEnginesRoot; public static EnginesRoot currentEnginesRoot;
public static void Prefix(EnginesRoot enginesRoot) public static void Prefix(StateSyncRegistrationHelper stateSyncHelper)
{ {
currentEnginesRoot = enginesRoot; currentEnginesRoot = stateSyncHelper.enginesRoot;
//SerializerManager.RegisterSerializers(enginesRoot); //SerializerManager.RegisterSerializers(enginesRoot);
} }
} }

View file

@ -50,10 +50,10 @@ namespace TechbloxModdingAPI.Players
public uint GetLocalPlayer() public uint GetLocalPlayer()
{ {
if (!isReady) return uint.MaxValue; if (!isReady) return uint.MaxValue;
var localPlayers = entitiesDB.QueryEntities<PlayerIDStruct>(PlayersExclusiveGroups.LocalPlayers).ToBuffer(); var (localPlayers, count) = entitiesDB.QueryEntities<PlayerIDStruct>(PlayersExclusiveGroups.LocalPlayers);
if (localPlayers.count > 0) if (count > 0)
{ {
return localPlayers.buffer[0].ID.entityID; return localPlayers[0].ID.entityID;
} }
return uint.MaxValue; return uint.MaxValue;
} }
@ -61,10 +61,10 @@ namespace TechbloxModdingAPI.Players
public uint GetRemotePlayer() public uint GetRemotePlayer()
{ {
if (!isReady) return uint.MaxValue; if (!isReady) return uint.MaxValue;
var localPlayers = entitiesDB.QueryEntities<PlayerIDStruct>(PlayersExclusiveGroups.RemotePlayers).ToBuffer(); var (localPlayers, count) = entitiesDB.QueryEntities<PlayerIDStruct>(PlayersExclusiveGroups.RemotePlayers);
if (localPlayers.count > 0) if (count > 0)
{ {
return localPlayers.buffer[0].ID.entityID; return localPlayers[0].ID.entityID;
} }
return uint.MaxValue; return uint.MaxValue;
} }

View file

@ -1,11 +1,12 @@
using System.Collections; using System.Collections;
using RobocraftX.Schedulers;
using Svelto.Tasks; using Svelto.Tasks;
using Svelto.Tasks.ExtraLean; using Svelto.Tasks.ExtraLean;
using Svelto.Tasks.Unity.Internal; using Svelto.Tasks.Unity.Internal;
namespace TechbloxModdingAPI.Tasks namespace TechbloxModdingAPI.Tasks
{ {
public class OnGuiRunner : BaseRunner<ExtraLeanSveltoTask<IEnumerator>> public class OnGuiRunner : SteppableRunner<ExtraLeanSveltoTask<IEnumerator>>
{ {
public OnGuiRunner(string name, uint runningOrder = 0) public OnGuiRunner(string name, uint runningOrder = 0)
: base(name) : base(name)

View file

@ -26,16 +26,9 @@
<!--Start Dependencies--> <!--Start Dependencies-->
<ItemGroup> <ItemGroup>
<Reference Include="IllusionInjector">
<HintPath>..\ref\Techblox_Data\Managed\IllusionInjector.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\IllusionInjector.dll</HintPath>
</Reference>
<Reference Include="IllusionPlugin">
<HintPath>..\ref\Techblox_Data\Managed\IllusionPlugin.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\IllusionPlugin.dll</HintPath>
</Reference>
<Reference Include="Analytics"> <Reference Include="Analytics">
<HintPath>..\ref\Techblox_Data\Managed\Analytics.dll</HintPath> <HintPath>..\ref\Techblox_Data\Managed\Analytics.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Analytics.dll</HintPath> <HintPath>..\..\ref\Techblox_Data\Managed\Analytics.dll</HintPath>
@ -356,6 +349,14 @@
<HintPath>..\ref\Techblox_Data\Managed\Havok.Physics.Hybrid.dll</HintPath> <HintPath>..\ref\Techblox_Data\Managed\Havok.Physics.Hybrid.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Havok.Physics.Hybrid.dll</HintPath> <HintPath>..\..\ref\Techblox_Data\Managed\Havok.Physics.Hybrid.dll</HintPath>
</Reference> </Reference>
<Reference Include="IllusionInjector">
<HintPath>..\ref\Techblox_Data\Managed\IllusionInjector.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\IllusionInjector.dll</HintPath>
</Reference>
<Reference Include="IllusionPlugin">
<HintPath>..\ref\Techblox_Data\Managed\IllusionPlugin.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\IllusionPlugin.dll</HintPath>
</Reference>
<Reference Include="JWT"> <Reference Include="JWT">
<HintPath>..\ref\Techblox_Data\Managed\JWT.dll</HintPath> <HintPath>..\ref\Techblox_Data\Managed\JWT.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\JWT.dll</HintPath> <HintPath>..\..\ref\Techblox_Data\Managed\JWT.dll</HintPath>
@ -660,6 +661,14 @@
<HintPath>..\ref\Techblox_Data\Managed\Techblox.AtmosphereBlock.dll</HintPath> <HintPath>..\ref\Techblox_Data\Managed\Techblox.AtmosphereBlock.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.AtmosphereBlock.dll</HintPath> <HintPath>..\..\ref\Techblox_Data\Managed\Techblox.AtmosphereBlock.dll</HintPath>
</Reference> </Reference>
<Reference Include="Techblox.AudioBlocks">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.AudioBlocks.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.AudioBlocks.dll</HintPath>
</Reference>
<Reference Include="Techblox.AudioBlocksClient">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.AudioBlocksClient.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.AudioBlocksClient.dll</HintPath>
</Reference>
<Reference Include="Techblox.AutoForward"> <Reference Include="Techblox.AutoForward">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.AutoForward.dll</HintPath> <HintPath>..\ref\Techblox_Data\Managed\Techblox.AutoForward.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.AutoForward.dll</HintPath> <HintPath>..\..\ref\Techblox_Data\Managed\Techblox.AutoForward.dll</HintPath>
@ -680,6 +689,14 @@
<HintPath>..\ref\Techblox_Data\Managed\Techblox.BlockLabels.dll</HintPath> <HintPath>..\ref\Techblox_Data\Managed\Techblox.BlockLabels.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.BlockLabels.dll</HintPath> <HintPath>..\..\ref\Techblox_Data\Managed\Techblox.BlockLabels.dll</HintPath>
</Reference> </Reference>
<Reference Include="Techblox.BlockLabelsServer">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.BlockLabelsServer.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.BlockLabelsServer.dll</HintPath>
</Reference>
<Reference Include="Techblox.Blocks.Connections">
<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.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>
@ -696,6 +713,22 @@
<HintPath>..\ref\Techblox_Data\Managed\Techblox.Camera.dll</HintPath> <HintPath>..\ref\Techblox_Data\Managed\Techblox.Camera.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Camera.dll</HintPath> <HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Camera.dll</HintPath>
</Reference> </Reference>
<Reference Include="Techblox.CentreHUDBlock">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.CentreHUDBlock.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.CentreHUDBlock.dll</HintPath>
</Reference>
<Reference Include="Techblox.CentreHUDGUI">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.CentreHUDGUI.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.CentreHUDGUI.dll</HintPath>
</Reference>
<Reference Include="Techblox.CheckpointBlock">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.CheckpointBlock.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.CheckpointBlock.dll</HintPath>
</Reference>
<Reference Include="Techblox.CheckpointBlockClient">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.CheckpointBlockClient.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.CheckpointBlockClient.dll</HintPath>
</Reference>
<Reference Include="Techblox.Common.Audio"> <Reference Include="Techblox.Common.Audio">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.Common.Audio.dll</HintPath> <HintPath>..\ref\Techblox_Data\Managed\Techblox.Common.Audio.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Common.Audio.dll</HintPath> <HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Common.Audio.dll</HintPath>
@ -704,6 +737,10 @@
<HintPath>..\ref\Techblox_Data\Managed\Techblox.ContextSensitiveTextHint.dll</HintPath> <HintPath>..\ref\Techblox_Data\Managed\Techblox.ContextSensitiveTextHint.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.ContextSensitiveTextHint.dll</HintPath> <HintPath>..\..\ref\Techblox_Data\Managed\Techblox.ContextSensitiveTextHint.dll</HintPath>
</Reference> </Reference>
<Reference Include="Techblox.DistanceSensorBlock">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.DistanceSensorBlock.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.DistanceSensorBlock.dll</HintPath>
</Reference>
<Reference Include="Techblox.ECSResourceManagers"> <Reference Include="Techblox.ECSResourceManagers">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.ECSResourceManagers.dll</HintPath> <HintPath>..\ref\Techblox_Data\Managed\Techblox.ECSResourceManagers.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.ECSResourceManagers.dll</HintPath> <HintPath>..\..\ref\Techblox_Data\Managed\Techblox.ECSResourceManagers.dll</HintPath>
@ -728,6 +765,46 @@
<HintPath>..\ref\Techblox_Data\Managed\Techblox.EnvironmentBlocks.SimulationWorldEnvironment.dll</HintPath> <HintPath>..\ref\Techblox_Data\Managed\Techblox.EnvironmentBlocks.SimulationWorldEnvironment.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.EnvironmentBlocks.SimulationWorldEnvironment.dll</HintPath> <HintPath>..\..\ref\Techblox_Data\Managed\Techblox.EnvironmentBlocks.SimulationWorldEnvironment.dll</HintPath>
</Reference> </Reference>
<Reference Include="Techblox.Gameplay.Client">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.Gameplay.Client.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Gameplay.Client.dll</HintPath>
</Reference>
<Reference Include="Techblox.Gameplay">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.Gameplay.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Gameplay.dll</HintPath>
</Reference>
<Reference Include="Techblox.Gameplay.GameState.Client">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.Gameplay.GameState.Client.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Gameplay.GameState.Client.dll</HintPath>
</Reference>
<Reference Include="Techblox.Gameplay.GameState">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.Gameplay.GameState.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Gameplay.GameState.dll</HintPath>
</Reference>
<Reference Include="Techblox.Gameplay.PlayerGameplayDetails">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.Gameplay.PlayerGameplayDetails.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Gameplay.PlayerGameplayDetails.dll</HintPath>
</Reference>
<Reference Include="Techblox.Gameplay.Score">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.Gameplay.Score.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Gameplay.Score.dll</HintPath>
</Reference>
<Reference Include="Techblox.Gameplay.Spawning">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.Gameplay.Spawning.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Gameplay.Spawning.dll</HintPath>
</Reference>
<Reference Include="Techblox.Gameplay.Teams">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.Gameplay.Teams.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Gameplay.Teams.dll</HintPath>
</Reference>
<Reference Include="Techblox.Gameplay.WorldResetting.Client">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.Gameplay.WorldResetting.Client.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Gameplay.WorldResetting.Client.dll</HintPath>
</Reference>
<Reference Include="Techblox.Gameplay.WorldResetting">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.Gameplay.WorldResetting.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Gameplay.WorldResetting.dll</HintPath>
</Reference>
<Reference Include="Techblox.GameSelection"> <Reference Include="Techblox.GameSelection">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.GameSelection.dll</HintPath> <HintPath>..\ref\Techblox_Data\Managed\Techblox.GameSelection.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.GameSelection.dll</HintPath> <HintPath>..\..\ref\Techblox_Data\Managed\Techblox.GameSelection.dll</HintPath>
@ -832,6 +909,18 @@
<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>
</Reference> </Reference>
<Reference Include="Techblox.JetBlock">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.JetBlock.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.JetBlock.dll</HintPath>
</Reference>
<Reference Include="Techblox.JetBlockClient">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.JetBlockClient.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.JetBlockClient.dll</HintPath>
</Reference>
<Reference Include="Techblox.MachineProcessingService">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.MachineProcessingService.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.MachineProcessingService.dll</HintPath>
</Reference>
<Reference Include="Techblox.MachineSimulationPreprocessing"> <Reference Include="Techblox.MachineSimulationPreprocessing">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.MachineSimulationPreprocessing.dll</HintPath> <HintPath>..\ref\Techblox_Data\Managed\Techblox.MachineSimulationPreprocessing.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.MachineSimulationPreprocessing.dll</HintPath> <HintPath>..\..\ref\Techblox_Data\Managed\Techblox.MachineSimulationPreprocessing.dll</HintPath>
@ -840,6 +929,10 @@
<HintPath>..\ref\Techblox_Data\Managed\Techblox.MachineSpawning.dll</HintPath> <HintPath>..\ref\Techblox_Data\Managed\Techblox.MachineSpawning.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.MachineSpawning.dll</HintPath> <HintPath>..\..\ref\Techblox_Data\Managed\Techblox.MachineSpawning.dll</HintPath>
</Reference> </Reference>
<Reference Include="Techblox.MachineVelocityCameraEffects">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.MachineVelocityCameraEffects.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.MachineVelocityCameraEffects.dll</HintPath>
</Reference>
<Reference Include="Techblox.Matchmaking"> <Reference Include="Techblox.Matchmaking">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.Matchmaking.dll</HintPath> <HintPath>..\ref\Techblox_Data\Managed\Techblox.Matchmaking.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Matchmaking.dll</HintPath> <HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Matchmaking.dll</HintPath>
@ -848,6 +941,10 @@
<HintPath>..\ref\Techblox_Data\Managed\Techblox.Multiplayer.UsernameMessages.dll</HintPath> <HintPath>..\ref\Techblox_Data\Managed\Techblox.Multiplayer.UsernameMessages.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Multiplayer.UsernameMessages.dll</HintPath> <HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Multiplayer.UsernameMessages.dll</HintPath>
</Reference> </Reference>
<Reference Include="Techblox.Particles">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.Particles.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Particles.dll</HintPath>
</Reference>
<Reference Include="Techblox.PlayUX"> <Reference Include="Techblox.PlayUX">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.PlayUX.dll</HintPath> <HintPath>..\ref\Techblox_Data\Managed\Techblox.PlayUX.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.PlayUX.dll</HintPath> <HintPath>..\..\ref\Techblox_Data\Managed\Techblox.PlayUX.dll</HintPath>
@ -884,6 +981,14 @@
<HintPath>..\ref\Techblox_Data\Managed\Techblox.SaveGamesConversion.dll</HintPath> <HintPath>..\ref\Techblox_Data\Managed\Techblox.SaveGamesConversion.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.SaveGamesConversion.dll</HintPath> <HintPath>..\..\ref\Techblox_Data\Managed\Techblox.SaveGamesConversion.dll</HintPath>
</Reference> </Reference>
<Reference Include="Techblox.ScoreHUDBlock">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.ScoreHUDBlock.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.ScoreHUDBlock.dll</HintPath>
</Reference>
<Reference Include="Techblox.ScoreHUDGUI">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.ScoreHUDGUI.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.ScoreHUDGUI.dll</HintPath>
</Reference>
<Reference Include="Techblox.Server"> <Reference Include="Techblox.Server">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.Server.dll</HintPath> <HintPath>..\ref\Techblox_Data\Managed\Techblox.Server.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Server.dll</HintPath> <HintPath>..\..\ref\Techblox_Data\Managed\Techblox.Server.dll</HintPath>
@ -932,6 +1037,22 @@
<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.SpawnBlock.Client">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.SpawnBlock.Client.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.SpawnBlock.Client.dll</HintPath>
</Reference>
<Reference Include="Techblox.SpawnBlock.Server">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.SpawnBlock.Server.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.SpawnBlock.Server.dll</HintPath>
</Reference>
<Reference Include="Techblox.StabilizerBlock">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.StabilizerBlock.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.StabilizerBlock.dll</HintPath>
</Reference>
<Reference Include="Techblox.StabilizerBlockClient">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.StabilizerBlockClient.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.StabilizerBlockClient.dll</HintPath>
</Reference>
<Reference Include="Techblox.SwitchAnimation"> <Reference Include="Techblox.SwitchAnimation">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.SwitchAnimation.dll</HintPath> <HintPath>..\ref\Techblox_Data\Managed\Techblox.SwitchAnimation.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.SwitchAnimation.dll</HintPath> <HintPath>..\..\ref\Techblox_Data\Managed\Techblox.SwitchAnimation.dll</HintPath>
@ -944,10 +1065,18 @@
<HintPath>..\ref\Techblox_Data\Managed\Techblox.TimerBlock.dll</HintPath> <HintPath>..\ref\Techblox_Data\Managed\Techblox.TimerBlock.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.TimerBlock.dll</HintPath> <HintPath>..\..\ref\Techblox_Data\Managed\Techblox.TimerBlock.dll</HintPath>
</Reference> </Reference>
<Reference Include="Techblox.TriggerBlock">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.TriggerBlock.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.TriggerBlock.dll</HintPath>
</Reference>
<Reference Include="Techblox.WheelRigBlock"> <Reference Include="Techblox.WheelRigBlock">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.WheelRigBlock.dll</HintPath> <HintPath>..\ref\Techblox_Data\Managed\Techblox.WheelRigBlock.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.WheelRigBlock.dll</HintPath> <HintPath>..\..\ref\Techblox_Data\Managed\Techblox.WheelRigBlock.dll</HintPath>
</Reference> </Reference>
<Reference Include="Techblox.WorldResetterBlock">
<HintPath>..\ref\Techblox_Data\Managed\Techblox.WorldResetterBlock.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Techblox.WorldResetterBlock.dll</HintPath>
</Reference>
<Reference Include="UniTask.Addressables"> <Reference Include="UniTask.Addressables">
<HintPath>..\ref\Techblox_Data\Managed\UniTask.Addressables.dll</HintPath> <HintPath>..\ref\Techblox_Data\Managed\UniTask.Addressables.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\UniTask.Addressables.dll</HintPath> <HintPath>..\..\ref\Techblox_Data\Managed\UniTask.Addressables.dll</HintPath>
@ -1052,6 +1181,10 @@
<HintPath>..\ref\Techblox_Data\Managed\Unity.Platforms.Common.dll</HintPath> <HintPath>..\ref\Techblox_Data\Managed\Unity.Platforms.Common.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Unity.Platforms.Common.dll</HintPath> <HintPath>..\..\ref\Techblox_Data\Managed\Unity.Platforms.Common.dll</HintPath>
</Reference> </Reference>
<Reference Include="Unity.Profiling.Core">
<HintPath>..\ref\Techblox_Data\Managed\Unity.Profiling.Core.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Unity.Profiling.Core.dll</HintPath>
</Reference>
<Reference Include="Unity.Properties"> <Reference Include="Unity.Properties">
<HintPath>..\ref\Techblox_Data\Managed\Unity.Properties.dll</HintPath> <HintPath>..\ref\Techblox_Data\Managed\Unity.Properties.dll</HintPath>
<HintPath>..\..\ref\Techblox_Data\Managed\Unity.Properties.dll</HintPath> <HintPath>..\..\ref\Techblox_Data\Managed\Unity.Properties.dll</HintPath>

View file

@ -1,13 +1,17 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics; using System.Diagnostics;
using System.Linq;
using System.Reflection; using System.Reflection;
using System.Text; using System.Text;
using System.Text.RegularExpressions;
using DataLoader;
using TechbloxModdingAPI.App; using TechbloxModdingAPI.App;
using HarmonyLib; using HarmonyLib;
using IllusionInjector; using IllusionInjector;
// test // test
using RobocraftX.FrontEnd; using RobocraftX.FrontEnd;
using ServiceLayer;
using Unity.Mathematics; using Unity.Mathematics;
using UnityEngine; using UnityEngine;
using Svelto.Tasks; using Svelto.Tasks;
@ -257,7 +261,7 @@ namespace TechbloxModdingAPI.Tests
/*((FasterList<GuiInputMap.GuiInputMapElement>)AccessTools.Property(typeof(GuiInputMap), "GuiInputsButtonDown").GetValue(null)) /*((FasterList<GuiInputMap.GuiInputMapElement>)AccessTools.Property(typeof(GuiInputMap), "GuiInputsButtonDown").GetValue(null))
.Add(new GuiInputMap.GuiInputMapElement(RewiredConsts.Action.ToggleCommandLine, GuiIn))*/ .Add(new GuiInputMap.GuiInputMapElement(RewiredConsts.Action.ToggleCommandLine, GuiIn))*/
/*Game.Enter += (sender, e) => Game.Enter += (sender, e) =>
{ {
ushort lastKey = ushort.MaxValue; ushort lastKey = ushort.MaxValue;
foreach (var kv in FullGameFields._dataDb.GetValues<CubeListData>() foreach (var kv in FullGameFields._dataDb.GetValues<CubeListData>()
@ -281,8 +285,8 @@ namespace TechbloxModdingAPI.Tests
Console.WriteLine($"{name}{(currentKey != lastKey + 1 ? $" = {currentKey}" : "")},"); Console.WriteLine($"{name}{(currentKey != lastKey + 1 ? $" = {currentKey}" : "")},");
lastKey = currentKey; lastKey = currentKey;
} }
};*/ };
/*Game.Enter += (sender, e) => Game.Enter += (sender, e) =>
{ {
ushort lastKey = ushort.MaxValue; ushort lastKey = ushort.MaxValue;
Console.WriteLine("Materials:\n" + FullGameFields._dataDb.GetValues<MaterialPropertiesData>() Console.WriteLine("Materials:\n" + FullGameFields._dataDb.GetValues<MaterialPropertiesData>()
@ -295,7 +299,7 @@ namespace TechbloxModdingAPI.Tests
return result; return result;
}) })
.Aggregate((a, b) => a + "\n" + b)); .Aggregate((a, b) => a + "\n" + b));
};*/ };
CommandBuilder.Builder("takeScreenshot", "Enables the screenshot taker") CommandBuilder.Builder("takeScreenshot", "Enables the screenshot taker")
.Action(() => .Action(() =>