Merge remote-tracking branch 'origin/master' into preview

# Conflicts:
#	GamecraftModdingAPI/Block.cs
#	GamecraftModdingAPI/GamecraftModdingAPI.csproj
This commit is contained in:
Norbi Peti 2020-10-28 21:03:02 +01:00
commit 3929144171
No known key found for this signature in database
GPG key ID: DBA4C4549A927E56
8 changed files with 378 additions and 159 deletions

View file

@ -139,6 +139,7 @@ namespace GamecraftModdingAPI
CommonExclusiveGroups.BUILD_LOOPEDSFX_BLOCK_GROUP
}
},
{typeof(DampedSpring), new [] {CommonExclusiveGroups.BUILD_DAMPEDSPRING_BLOCK_GROUP}},
{typeof(TextBlock), new[] {CommonExclusiveGroups.BUILD_TEXT_BLOCK_GROUP}},
{typeof(Timer), new[] {CommonExclusiveGroups.BUILD_TIMER_BLOCK_GROUP}}
};
@ -372,11 +373,13 @@ namespace GamecraftModdingAPI
/// Returns the rigid body of the chunk of blocks this one belongs to during simulation.
/// Can be used to apply forces or move the block around while the simulation is running.
/// </summary>
/// <returns>The SimBody of the chunk or null if the block doesn't exist.</returns>
/// <returns>The SimBody of the chunk or null if the block doesn't exist or not in simulation mode.</returns>
public SimBody GetSimBody()
{
return BlockEngine.GetBlockInfo(this,
(GridConnectionsEntityStruct st) => new SimBody(st.machineRigidBodyId, st.clusterId));
(GridConnectionsEntityStruct st) => st.machineRigidBodyId != uint.MaxValue
? new SimBody(st.machineRigidBodyId, st.clusterId)
: null);
}
private void OnPlacedInit(object sender, BlockPlacedRemovedEventArgs e)

View file

@ -9,6 +9,10 @@ namespace GamecraftModdingAPI.Blocks
public byte Darkness;
public byte Index;
public byte Index => Color == BlockColors.Default
? byte.MaxValue
: (byte) (Darkness * 10 + Color);
public BlockColor(byte index)
{
if (index == byte.MaxValue)

View file

@ -218,7 +218,7 @@ namespace GamecraftModdingAPI.Blocks
}
}
return bodies.Select(id => new SimBody(id)).ToArray();
return bodies.Select(id => new SimBody(id, cid)).ToArray();
}
public EGID? FindBlockEGID(uint id)
@ -239,8 +239,8 @@ namespace GamecraftModdingAPI.Blocks
foreach (var (coll, _) in groups)
{
foreach (var conn in coll)
{
if (conn.machineRigidBodyId == sbid)
{ //Static blocks don't have a cluster ID but the cluster destruction manager should have one
if (conn.machineRigidBodyId == sbid && conn.clusterId != uint.MaxValue)
return new Cluster(conn.clusterId);
}
}
@ -248,6 +248,22 @@ namespace GamecraftModdingAPI.Blocks
return null;
}
public Block[] GetBodyBlocks(uint sbid)
{
var groups = entitiesDB.QueryEntities<GridConnectionsEntityStruct>();
var set = new HashSet<Block>();
foreach (var (coll, _) in groups)
{
foreach (var conn in coll)
{
if (conn.machineRigidBodyId == sbid)
set.Add(new Block(conn.ID));
}
}
return set.ToArray();
}
#if DEBUG
public EntitiesDB GetEntitiesDB()
{

View file

@ -0,0 +1,48 @@
using RobocraftX.Blocks;
using RobocraftX.Common;
using Svelto.ECS;
namespace GamecraftModdingAPI.Blocks
{
public class DampedSpring : Block
{
public DampedSpring(EGID id) : base(id)
{
}
public DampedSpring(uint id) : base(new EGID(id, CommonExclusiveGroups.BUILD_DAMPEDSPRING_BLOCK_GROUP))
{
}
/// <summary>
/// The spring's maximum force. This is known as Stiffness in-game
/// </summary>
public float MaxForce
{
get => BlockEngine.GetBlockInfo(this, (DampedSpringReadOnlyStruct dsrs) => dsrs.maxForce);
set => BlockEngine.SetBlockInfo(this,
(ref DampedSpringReadOnlyStruct dsrs, float val) => dsrs.maxForce = val, value);
}
/// <summary>
/// Alias of MaxForce.
/// </summary>
public float Stiffness
{
get => MaxForce;
set => MaxForce = value;
}
/// <summary>
/// The spring's maximum damping force.
/// </summary>
public float Damping
{
get => BlockEngine.GetBlockInfo(this, (LinearJointForcesReadOnlyStruct ljf) => ljf.dampingForceMagnitude);
set => BlockEngine.SetBlockInfo(this,
(ref LinearJointForcesReadOnlyStruct ljf, float val) => ljf.dampingForceMagnitude = val, value);
}
}
}

View file

@ -31,6 +31,7 @@ namespace GamecraftModdingAPI.Blocks
set
{
if (value == null) value = "";
BlockEngine.SetBlockInfo(this, (ref TextBlockDataStruct tbds, string val) =>
{
if (val == null) val = "";
@ -51,6 +52,7 @@ namespace GamecraftModdingAPI.Blocks
set
{
if (value == null) value = "";
BlockEngine.SetBlockInfo(this, (ref TextBlockDataStruct tbds, string val) =>
tbds.textBlockID.Set(val), value);
BlockEngine.SetBlockInfo(this,

View file

@ -6,6 +6,7 @@ namespace GamecraftModdingAPI
{
/// <summary>
/// Represnts a cluster of blocks in time running mode, meaning blocks that are connected either directly or via joints.
/// Only exists if a cluster destruction manager is present. Static blocks like grass and dirt aren't part of a cluster.
/// </summary>
public class Cluster
{
@ -37,5 +38,37 @@ namespace GamecraftModdingAPI
get => Block.BlockEngine.GetBlockInfo<HealthEntityComponent>(Id).healthMultiplier;
set => Block.BlockEngine.GetBlockInfo<HealthEntityComponent>(Id).healthMultiplier = value;
}
/// <summary>
/// Returns the simulation-time rigid bodies for the chunks in this cluster.
/// </summary>
/// <returns>An array of sim-bodies</returns>
public SimBody[] GetSimBodies()
{
return Block.BlockEngine.GetClusterBodies(Id.entityID);
}
public override string ToString()
{
return $"{nameof(Id)}: {Id}";
}
protected bool Equals(Cluster other)
{
return Id.Equals(other.Id);
}
public override bool Equals(object obj)
{
if (ReferenceEquals(null, obj)) return false;
if (ReferenceEquals(this, obj)) return true;
if (obj.GetType() != this.GetType()) return false;
return Equals((Cluster) obj);
}
public override int GetHashCode()
{
return Id.GetHashCode();
}
}
}

View file

@ -2,7 +2,7 @@
<PropertyGroup>
<TargetFramework>net472</TargetFramework>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Version>1.6.0-preview</Version>
<Version>1.7.0</Version>
<Authors>Exmods</Authors>
<PackageLicenseExpression>GNU General Public Licence 3+</PackageLicenseExpression>
<PackageProjectUrl>https://git.exmods.org/modtainers/GamecraftModdingAPI</PackageProjectUrl>
@ -25,16 +25,11 @@
<!--Start Dependencies-->
<ItemGroup>
<Reference Include="IllusionInjector">
<HintPath>..\ref\GamecraftPreview_Data\Managed\IllusionInjector.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\IllusionInjector.dll</HintPath>
</Reference>
<Reference Include="IllusionPlugin">
<HintPath>..\ref\GamecraftPreview_Data\Managed\IllusionPlugin.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\IllusionPlugin.dll</HintPath>
<Reference Include="Accessibility">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Accessibility.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Accessibility.dll</HintPath>
</Reference>
<Reference Include="Analytics">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Analytics.dll</HintPath>
@ -80,14 +75,14 @@
<HintPath>..\ref\GamecraftPreview_Data\Managed\DDNA.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\DDNA.dll</HintPath>
</Reference>
<Reference Include="Facepunch.Steamworks.Win64">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Facepunch.Steamworks.Win64.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Facepunch.Steamworks.Win64.dll</HintPath>
</Reference>
<Reference Include="FMOD">
<HintPath>..\ref\GamecraftPreview_Data\Managed\FMOD.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\FMOD.dll</HintPath>
</Reference>
<Reference Include="FullGame">
<HintPath>..\ref\GamecraftPreview_Data\Managed\FullGame.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\FullGame.dll</HintPath>
</Reference>
<Reference Include="Gamecraft.AudioBlocks">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Gamecraft.AudioBlocks.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Gamecraft.AudioBlocks.dll</HintPath>
@ -100,6 +95,10 @@
<HintPath>..\ref\GamecraftPreview_Data\Managed\Gamecraft.BlockEntityFactory.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Gamecraft.BlockEntityFactory.dll</HintPath>
</Reference>
<Reference Include="Gamecraft.BlockGroups">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Gamecraft.BlockGroups.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Gamecraft.BlockGroups.dll</HintPath>
</Reference>
<Reference Include="Gamecraft.Blocks.ConsoleBlock">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Gamecraft.Blocks.ConsoleBlock.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Gamecraft.Blocks.ConsoleBlock.dll</HintPath>
@ -116,6 +115,10 @@
<HintPath>..\ref\GamecraftPreview_Data\Managed\Gamecraft.Blocks.GenericPhysicsBlocks.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Gamecraft.Blocks.GenericPhysicsBlocks.dll</HintPath>
</Reference>
<Reference Include="Gamecraft.Blocks.LightBlock">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Gamecraft.Blocks.LightBlock.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Gamecraft.Blocks.LightBlock.dll</HintPath>
</Reference>
<Reference Include="Gamecraft.Blocks.LogicBlock">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Gamecraft.Blocks.LogicBlock.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Gamecraft.Blocks.LogicBlock.dll</HintPath>
@ -132,10 +135,6 @@
<HintPath>..\ref\GamecraftPreview_Data\Managed\Gamecraft.Blocks.TimerBlock.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Gamecraft.Blocks.TimerBlock.dll</HintPath>
</Reference>
<Reference Include="Gamecraft.BlocksEntityDescriptors">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Gamecraft.BlocksEntityDescriptors.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Gamecraft.BlocksEntityDescriptors.dll</HintPath>
</Reference>
<Reference Include="Gamecraft.CharacterVulnerability">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Gamecraft.CharacterVulnerability.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Gamecraft.CharacterVulnerability.dll</HintPath>
@ -144,6 +143,10 @@
<HintPath>..\ref\GamecraftPreview_Data\Managed\Gamecraft.CharacterVulnerabilityGui.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Gamecraft.CharacterVulnerabilityGui.dll</HintPath>
</Reference>
<Reference Include="Gamecraft.ColourPalette">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Gamecraft.ColourPalette.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Gamecraft.ColourPalette.dll</HintPath>
</Reference>
<Reference Include="Gamecraft.Damage">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Gamecraft.Damage.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Gamecraft.Damage.dll</HintPath>
@ -160,18 +163,70 @@
<HintPath>..\ref\GamecraftPreview_Data\Managed\Gamecraft.GraphicsSettings.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Gamecraft.GraphicsSettings.dll</HintPath>
</Reference>
<Reference Include="Gamecraft.GUI.BlueprintInventory">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Gamecraft.GUI.BlueprintInventory.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Gamecraft.GUI.BlueprintInventory.dll</HintPath>
</Reference>
<Reference Include="Gamecraft.GUI.BlueprintInventoryMock">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Gamecraft.GUI.BlueprintInventoryMock.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Gamecraft.GUI.BlueprintInventoryMock.dll</HintPath>
</Reference>
<Reference Include="Gamecraft.GUI.Blueprints">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Gamecraft.GUI.Blueprints.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Gamecraft.GUI.Blueprints.dll</HintPath>
</Reference>
<Reference Include="Gamecraft.GUI.BlueprintSets">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Gamecraft.GUI.BlueprintSets.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Gamecraft.GUI.BlueprintSets.dll</HintPath>
</Reference>
<Reference Include="Gamecraft.GUI.ConsoleBlock">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Gamecraft.GUI.ConsoleBlock.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Gamecraft.GUI.ConsoleBlock.dll</HintPath>
</Reference>
<Reference Include="Gamecraft.GUI.GraphicsScreen">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Gamecraft.GUI.GraphicsScreen.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Gamecraft.GUI.GraphicsScreen.dll</HintPath>
<Reference Include="Gamecraft.GUI.GameOptionsScreen">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Gamecraft.GUI.GameOptionsScreen.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Gamecraft.GUI.GameOptionsScreen.dll</HintPath>
</Reference>
<Reference Include="Gamecraft.GUI.Hotbar.Blocks">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Gamecraft.GUI.Hotbar.Blocks.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Gamecraft.GUI.Hotbar.Blocks.dll</HintPath>
</Reference>
<Reference Include="Gamecraft.GUI.Hotbar.Colours">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Gamecraft.GUI.Hotbar.Colours.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Gamecraft.GUI.Hotbar.Colours.dll</HintPath>
</Reference>
<Reference Include="Gamecraft.GUI.HUDFeedbackBlocks">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Gamecraft.GUI.HUDFeedbackBlocks.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Gamecraft.GUI.HUDFeedbackBlocks.dll</HintPath>
</Reference>
<Reference Include="Gamecraft.GUI.ModeBar">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Gamecraft.GUI.ModeBar.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Gamecraft.GUI.ModeBar.dll</HintPath>
</Reference>
<Reference Include="Gamecraft.GUI.OptionsScreen">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Gamecraft.GUI.OptionsScreen.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Gamecraft.GUI.OptionsScreen.dll</HintPath>
</Reference>
<Reference Include="Gamecraft.GUI.TabsBar.Blocks">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Gamecraft.GUI.TabsBar.Blocks.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Gamecraft.GUI.TabsBar.Blocks.dll</HintPath>
</Reference>
<Reference Include="Gamecraft.GUI.TabsBar.Blueprints">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Gamecraft.GUI.TabsBar.Blueprints.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Gamecraft.GUI.TabsBar.Blueprints.dll</HintPath>
</Reference>
<Reference Include="Gamecraft.GUI.TabsBar.Colours">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Gamecraft.GUI.TabsBar.Colours.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Gamecraft.GUI.TabsBar.Colours.dll</HintPath>
</Reference>
<Reference Include="Gamecraft.GUI.TabsBar.Common">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Gamecraft.GUI.TabsBar.Common.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Gamecraft.GUI.TabsBar.Common.dll</HintPath>
</Reference>
<Reference Include="Gamecraft.GUI.TimeModeClock">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Gamecraft.GUI.TimeModeClock.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Gamecraft.GUI.TimeModeClock.dll</HintPath>
</Reference>
<Reference Include="Gamecraft.GUI.Tweaks">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Gamecraft.GUI.Tweaks.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Gamecraft.GUI.Tweaks.dll</HintPath>
@ -188,6 +243,66 @@
<HintPath>..\ref\GamecraftPreview_Data\Managed\Gamecraft.GUI.WorldSpaceGuis.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Gamecraft.GUI.WorldSpaceGuis.dll</HintPath>
</Reference>
<Reference Include="FullGame">
<HintPath>..\ref\GamecraftPreview_Data\Managed\FullGame.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\FullGame.dll</HintPath>
</Reference>
<Reference Include="Gamecraft.BlocksEntityDescriptors">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Gamecraft.BlocksEntityDescriptors.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Gamecraft.BlocksEntityDescriptors.dll</HintPath>
</Reference>
<Reference Include="Gamecraft.GUI.GraphicsScreen">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Gamecraft.GUI.GraphicsScreen.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Gamecraft.GUI.GraphicsScreen.dll</HintPath>
</Reference>
<Reference Include="Gamecraft.GUIs.Hotbar.BlueprintsHotbar">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Gamecraft.GUIs.Hotbar.BlueprintsHotbar.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Gamecraft.GUIs.Hotbar.BlueprintsHotbar.dll</HintPath>
</Reference>
<Reference Include="IllusionInjector">
<HintPath>..\ref\GamecraftPreview_Data\Managed\IllusionInjector.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\IllusionInjector.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.Common">
<HintPath>..\ref\GamecraftPreview_Data\Managed\RobocraftX.Common.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\RobocraftX.Common.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.Input">
<HintPath>..\ref\GamecraftPreview_Data\Managed\RobocraftX.Input.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\RobocraftX.Input.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.Rendering">
<HintPath>..\ref\GamecraftPreview_Data\Managed\RobocraftX.Rendering.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\RobocraftX.Rendering.dll</HintPath>
</Reference>
<Reference Include="Svelto.ECS">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Svelto.ECS.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Svelto.ECS.dll</HintPath>
</Reference>
<Reference Include="Unity.DataFlowGraph">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Unity.DataFlowGraph.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Unity.DataFlowGraph.dll</HintPath>
</Reference>
<Reference Include="Unity.Properties.UI">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Unity.Properties.UI.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Unity.Properties.UI.dll</HintPath>
</Reference>
<Reference Include="Unity.Transforms.Hybrid">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Unity.Transforms.Hybrid.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Unity.Transforms.Hybrid.dll</HintPath>
</Reference>
<Reference Include="UnityEngine">
<HintPath>..\ref\GamecraftPreview_Data\Managed\UnityEngine.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\UnityEngine.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.PhysicsModule">
<HintPath>..\ref\GamecraftPreview_Data\Managed\UnityEngine.PhysicsModule.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\UnityEngine.PhysicsModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.TLSModule">
<HintPath>..\ref\GamecraftPreview_Data\Managed\UnityEngine.TLSModule.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\UnityEngine.TLSModule.dll</HintPath>
</Reference>
<Reference Include="Gamecraft.InventoryTimeRunning">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Gamecraft.InventoryTimeRunning.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Gamecraft.InventoryTimeRunning.dll</HintPath>
@ -248,6 +363,10 @@
<HintPath>..\ref\GamecraftPreview_Data\Managed\GameState.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\GameState.dll</HintPath>
</Reference>
<Reference Include="GhostShark.Outline">
<HintPath>..\ref\GamecraftPreview_Data\Managed\GhostShark.Outline.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\GhostShark.Outline.dll</HintPath>
</Reference>
<Reference Include="GPUInstancer">
<HintPath>..\ref\GamecraftPreview_Data\Managed\GPUInstancer.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\GPUInstancer.dll</HintPath>
@ -260,10 +379,26 @@
<HintPath>..\ref\GamecraftPreview_Data\Managed\Havok.Physics.Hybrid.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Havok.Physics.Hybrid.dll</HintPath>
</Reference>
<Reference Include="IL3DN_FOG">
<HintPath>..\ref\GamecraftPreview_Data\Managed\IL3DN_FOG.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\IL3DN_FOG.dll</HintPath>
</Reference>
<Reference Include="IllusionPlugin">
<HintPath>..\ref\GamecraftPreview_Data\Managed\IllusionPlugin.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\IllusionPlugin.dll</HintPath>
</Reference>
<Reference Include="JWT">
<HintPath>..\ref\GamecraftPreview_Data\Managed\JWT.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\JWT.dll</HintPath>
</Reference>
<Reference Include="LZ4">
<HintPath>..\ref\GamecraftPreview_Data\Managed\LZ4.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\LZ4.dll</HintPath>
</Reference>
<Reference Include="mscorlib">
<HintPath>..\ref\GamecraftPreview_Data\Managed\mscorlib.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\mscorlib.dll</HintPath>
</Reference>
<Reference Include="MultiplayerNetworking">
<HintPath>..\ref\GamecraftPreview_Data\Managed\MultiplayerNetworking.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\MultiplayerNetworking.dll</HintPath>
@ -272,10 +407,30 @@
<HintPath>..\ref\GamecraftPreview_Data\Managed\MultiplayerTest.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\MultiplayerTest.dll</HintPath>
</Reference>
<Reference Include="netstandard">
<HintPath>..\ref\GamecraftPreview_Data\Managed\netstandard.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\netstandard.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Newtonsoft.Json.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="Novell.Directory.Ldap">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Novell.Directory.Ldap.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Novell.Directory.Ldap.dll</HintPath>
</Reference>
<Reference Include="RCX.ScreenshotTaker">
<HintPath>..\ref\GamecraftPreview_Data\Managed\RCX.ScreenshotTaker.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\RCX.ScreenshotTaker.dll</HintPath>
</Reference>
<Reference Include="Rewired_Core">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Rewired_Core.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Rewired_Core.dll</HintPath>
</Reference>
<Reference Include="Rewired_Windows">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Rewired_Windows.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Rewired_Windows.dll</HintPath>
</Reference>
<Reference Include="RobocraftECS">
<HintPath>..\ref\GamecraftPreview_Data\Managed\RobocraftECS.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\RobocraftECS.dll</HintPath>
@ -312,10 +467,6 @@
<HintPath>..\ref\GamecraftPreview_Data\Managed\RobocraftX.ClusterToWireConversion.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\RobocraftX.ClusterToWireConversion.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.Common">
<HintPath>..\ref\GamecraftPreview_Data\Managed\RobocraftX.Common.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\RobocraftX.Common.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.ControlsScreen">
<HintPath>..\ref\GamecraftPreview_Data\Managed\RobocraftX.ControlsScreen.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\RobocraftX.ControlsScreen.dll</HintPath>
@ -340,6 +491,22 @@
<HintPath>..\ref\GamecraftPreview_Data\Managed\RobocraftX.GUI.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\RobocraftX.GUI.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.GUI.Hotbar">
<HintPath>..\ref\GamecraftPreview_Data\Managed\RobocraftX.GUI.Hotbar.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\RobocraftX.GUI.Hotbar.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.GUI.Inventory.BlocksInventory">
<HintPath>..\ref\GamecraftPreview_Data\Managed\RobocraftX.GUI.Inventory.BlocksInventory.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\RobocraftX.GUI.Inventory.BlocksInventory.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.GUI.Inventory.ColourInventory">
<HintPath>..\ref\GamecraftPreview_Data\Managed\RobocraftX.GUI.Inventory.ColourInventory.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\RobocraftX.GUI.Inventory.ColourInventory.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.GUI.Inventory">
<HintPath>..\ref\GamecraftPreview_Data\Managed\RobocraftX.GUI.Inventory.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\RobocraftX.GUI.Inventory.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.GUI.RemoveBlock">
<HintPath>..\ref\GamecraftPreview_Data\Managed\RobocraftX.GUI.RemoveBlock.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\RobocraftX.GUI.RemoveBlock.dll</HintPath>
@ -348,14 +515,14 @@
<HintPath>..\ref\GamecraftPreview_Data\Managed\RobocraftX.GUI.ScaleGhost.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\RobocraftX.GUI.ScaleGhost.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.GUI.TabsBar">
<HintPath>..\ref\GamecraftPreview_Data\Managed\RobocraftX.GUI.TabsBar.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\RobocraftX.GUI.TabsBar.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.GUIs.WorkshopPrefabs">
<HintPath>..\ref\GamecraftPreview_Data\Managed\RobocraftX.GUIs.WorkshopPrefabs.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\RobocraftX.GUIs.WorkshopPrefabs.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.Input">
<HintPath>..\ref\GamecraftPreview_Data\Managed\RobocraftX.Input.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\RobocraftX.Input.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.MachineEditor">
<HintPath>..\ref\GamecraftPreview_Data\Managed\RobocraftX.MachineEditor.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\RobocraftX.MachineEditor.dll</HintPath>
@ -376,6 +543,10 @@
<HintPath>..\ref\GamecraftPreview_Data\Managed\RobocraftX.Multiplayer.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\RobocraftX.Multiplayer.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.Multiplayer.GUI">
<HintPath>..\ref\GamecraftPreview_Data\Managed\RobocraftX.Multiplayer.GUI.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\RobocraftX.Multiplayer.GUI.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.Multiplayer.NetworkEntityStream">
<HintPath>..\ref\GamecraftPreview_Data\Managed\RobocraftX.Multiplayer.NetworkEntityStream.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\RobocraftX.Multiplayer.NetworkEntityStream.dll</HintPath>
@ -408,10 +579,6 @@
<HintPath>..\ref\GamecraftPreview_Data\Managed\RobocraftX.Player.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\RobocraftX.Player.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.Rendering">
<HintPath>..\ref\GamecraftPreview_Data\Managed\RobocraftX.Rendering.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\RobocraftX.Rendering.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.Rendering.Mock">
<HintPath>..\ref\GamecraftPreview_Data\Managed\RobocraftX.Rendering.Mock.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\RobocraftX.Rendering.Mock.dll</HintPath>
@ -448,9 +615,9 @@
<HintPath>..\ref\GamecraftPreview_Data\Managed\RobocraftX_TextBlock.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\RobocraftX_TextBlock.dll</HintPath>
</Reference>
<Reference Include="RobocratX.SimulationCompositionRoot">
<HintPath>..\ref\GamecraftPreview_Data\Managed\RobocratX.SimulationCompositionRoot.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\RobocratX.SimulationCompositionRoot.dll</HintPath>
<Reference Include="RobocratX.SimulationMockCompositionRoot">
<HintPath>..\ref\GamecraftPreview_Data\Managed\RobocratX.SimulationMockCompositionRoot.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\RobocratX.SimulationMockCompositionRoot.dll</HintPath>
</Reference>
<Reference Include="SpawningPointCompositionRoot">
<HintPath>..\ref\GamecraftPreview_Data\Managed\SpawningPointCompositionRoot.dll</HintPath>
@ -468,10 +635,6 @@
<HintPath>..\ref\GamecraftPreview_Data\Managed\Svelto.Common_3.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Svelto.Common_3.dll</HintPath>
</Reference>
<Reference Include="Svelto.ECS">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Svelto.ECS.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Svelto.ECS.dll</HintPath>
</Reference>
<Reference Include="Svelto.Services">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Svelto.Services.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Svelto.Services.dll</HintPath>
@ -480,58 +643,6 @@
<HintPath>..\ref\GamecraftPreview_Data\Managed\Svelto.Tasks.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Svelto.Tasks.dll</HintPath>
</Reference>
<Reference Include="UltimateDecals">
<HintPath>..\ref\GamecraftPreview_Data\Managed\UltimateDecals.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\UltimateDecals.dll</HintPath>
</Reference>
<Reference Include="Unity.Addressables">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Unity.Addressables.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Unity.Addressables.dll</HintPath>
</Reference>
<Reference Include="Unity.Animation.Curves">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Unity.Animation.Curves.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Unity.Animation.Curves.dll</HintPath>
</Reference>
<Reference Include="Unity.Animation.Curves.Hybrid">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Unity.Animation.Curves.Hybrid.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Unity.Animation.Curves.Hybrid.dll</HintPath>
</Reference>
<Reference Include="Unity.Animation.DefaultGraphPipeline">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Unity.Animation.DefaultGraphPipeline.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Unity.Animation.DefaultGraphPipeline.dll</HintPath>
</Reference>
<Reference Include="Unity.Animation.DefaultGraphPipeline.Hybrid">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Unity.Animation.DefaultGraphPipeline.Hybrid.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Unity.Animation.DefaultGraphPipeline.Hybrid.dll</HintPath>
</Reference>
<Reference Include="Unity.Animation">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Unity.Animation.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Unity.Animation.dll</HintPath>
</Reference>
<Reference Include="Unity.Animation.Graph">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Unity.Animation.Graph.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Unity.Animation.Graph.dll</HintPath>
</Reference>
<Reference Include="Unity.Animation.Hybrid">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Unity.Animation.Hybrid.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Unity.Animation.Hybrid.dll</HintPath>
</Reference>
<Reference Include="Unity.Build.SlimPlayerRuntime">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Unity.Build.SlimPlayerRuntime.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Unity.Build.SlimPlayerRuntime.dll</HintPath>
</Reference>
<Reference Include="Unity.Burst">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Unity.Burst.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Unity.Burst.dll</HintPath>
</Reference>
<Reference Include="Unity.Collections">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Unity.Collections.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Unity.Collections.dll</HintPath>
</Reference>
<Reference Include="Unity.DataFlowGraph">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Unity.DataFlowGraph.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Unity.DataFlowGraph.dll</HintPath>
</Reference>
<Reference Include="Unity.Deformations">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Unity.Deformations.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Unity.Deformations.dll</HintPath>
@ -588,10 +699,6 @@
<HintPath>..\ref\GamecraftPreview_Data\Managed\Unity.Properties.Reflection.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Unity.Properties.Reflection.dll</HintPath>
</Reference>
<Reference Include="Unity.Properties.UI">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Unity.Properties.UI.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Unity.Properties.UI.dll</HintPath>
</Reference>
<Reference Include="Unity.RenderPipeline.Universal.ShaderLibrary">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Unity.RenderPipeline.Universal.ShaderLibrary.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Unity.RenderPipeline.Universal.ShaderLibrary.dll</HintPath>
@ -644,66 +751,62 @@
<HintPath>..\ref\GamecraftPreview_Data\Managed\Unity.Transforms.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Unity.Transforms.dll</HintPath>
</Reference>
<Reference Include="Unity.Transforms.Hybrid">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Unity.Transforms.Hybrid.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Unity.Transforms.Hybrid.dll</HintPath>
<Reference Include="UltimateDecals">
<HintPath>..\ref\GamecraftPreview_Data\Managed\UltimateDecals.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\UltimateDecals.dll</HintPath>
</Reference>
<Reference Include="Unity.VisualEffectGraph.Runtime">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Unity.VisualEffectGraph.Runtime.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Unity.VisualEffectGraph.Runtime.dll</HintPath>
<Reference Include="Unity.Addressables">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Unity.Addressables.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Unity.Addressables.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UI">
<HintPath>..\ref\GamecraftPreview_Data\Managed\UnityEngine.UI.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\UnityEngine.UI.dll</HintPath>
<Reference Include="Unity.Animation.Curves">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Unity.Animation.Curves.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Unity.Animation.Curves.dll</HintPath>
</Reference>
<Reference Include="uREPL">
<HintPath>..\ref\GamecraftPreview_Data\Managed\uREPL.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\uREPL.dll</HintPath>
<Reference Include="Unity.Animation.Curves.Hybrid">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Unity.Animation.Curves.Hybrid.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Unity.Animation.Curves.Hybrid.dll</HintPath>
</Reference>
<Reference Include="VisualProfiler">
<HintPath>..\ref\GamecraftPreview_Data\Managed\VisualProfiler.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\VisualProfiler.dll</HintPath>
<Reference Include="Unity.Animation.DefaultGraphPipeline">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Unity.Animation.DefaultGraphPipeline.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Unity.Animation.DefaultGraphPipeline.dll</HintPath>
</Reference>
<Reference Include="Accessibility">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Accessibility.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Accessibility.dll</HintPath>
<Reference Include="Unity.Animation.DefaultGraphPipeline.Hybrid">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Unity.Animation.DefaultGraphPipeline.Hybrid.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Unity.Animation.DefaultGraphPipeline.Hybrid.dll</HintPath>
</Reference>
<Reference Include="Facepunch.Steamworks.Win64">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Facepunch.Steamworks.Win64.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Facepunch.Steamworks.Win64.dll</HintPath>
<Reference Include="Unity.Animation">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Unity.Animation.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Unity.Animation.dll</HintPath>
</Reference>
<Reference Include="JWT">
<HintPath>..\ref\GamecraftPreview_Data\Managed\JWT.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\JWT.dll</HintPath>
<Reference Include="Unity.Animation.Graph">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Unity.Animation.Graph.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Unity.Animation.Graph.dll</HintPath>
</Reference>
<Reference Include="mscorlib">
<HintPath>..\ref\GamecraftPreview_Data\Managed\mscorlib.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\mscorlib.dll</HintPath>
<Reference Include="Unity.Animation.Hybrid">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Unity.Animation.Hybrid.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Unity.Animation.Hybrid.dll</HintPath>
</Reference>
<Reference Include="netstandard">
<HintPath>..\ref\GamecraftPreview_Data\Managed\netstandard.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\netstandard.dll</HintPath>
<Reference Include="Unity.Build.SlimPlayerRuntime">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Unity.Build.SlimPlayerRuntime.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Unity.Build.SlimPlayerRuntime.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Newtonsoft.Json.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="Novell.Directory.Ldap">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Novell.Directory.Ldap.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Novell.Directory.Ldap.dll</HintPath>
</Reference>
<Reference Include="Rewired_Core">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Rewired_Core.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Rewired_Core.dll</HintPath>
</Reference>
<Reference Include="Rewired_Windows">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Rewired_Windows.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Rewired_Windows.dll</HintPath>
<Reference Include="Unity.Burst">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Unity.Burst.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Unity.Burst.dll</HintPath>
</Reference>
<Reference Include="Unity.Burst.Unsafe">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Unity.Burst.Unsafe.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Unity.Burst.Unsafe.dll</HintPath>
</Reference>
<Reference Include="Unity.Collections">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Unity.Collections.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Unity.Collections.dll</HintPath>
</Reference>
<Reference Include="Unity.VisualEffectGraph.Runtime">
<HintPath>..\ref\GamecraftPreview_Data\Managed\Unity.VisualEffectGraph.Runtime.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\Unity.VisualEffectGraph.Runtime.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.AccessibilityModule">
<HintPath>..\ref\GamecraftPreview_Data\Managed\UnityEngine.AccessibilityModule.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\UnityEngine.AccessibilityModule.dll</HintPath>
@ -756,10 +859,6 @@
<HintPath>..\ref\GamecraftPreview_Data\Managed\UnityEngine.DirectorModule.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\UnityEngine.DirectorModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine">
<HintPath>..\ref\GamecraftPreview_Data\Managed\UnityEngine.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\UnityEngine.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.DSPGraphModule">
<HintPath>..\ref\GamecraftPreview_Data\Managed\UnityEngine.DSPGraphModule.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\UnityEngine.DSPGraphModule.dll</HintPath>
@ -812,10 +911,6 @@
<HintPath>..\ref\GamecraftPreview_Data\Managed\UnityEngine.Physics2DModule.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\UnityEngine.Physics2DModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.PhysicsModule">
<HintPath>..\ref\GamecraftPreview_Data\Managed\UnityEngine.PhysicsModule.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\UnityEngine.PhysicsModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.ProfilerModule">
<HintPath>..\ref\GamecraftPreview_Data\Managed\UnityEngine.ProfilerModule.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\UnityEngine.ProfilerModule.dll</HintPath>
@ -868,9 +963,9 @@
<HintPath>..\ref\GamecraftPreview_Data\Managed\UnityEngine.TilemapModule.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\UnityEngine.TilemapModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.TLSModule">
<HintPath>..\ref\GamecraftPreview_Data\Managed\UnityEngine.TLSModule.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\UnityEngine.TLSModule.dll</HintPath>
<Reference Include="UnityEngine.UI">
<HintPath>..\ref\GamecraftPreview_Data\Managed\UnityEngine.UI.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\UnityEngine.UI.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UIElementsModule">
<HintPath>..\ref\GamecraftPreview_Data\Managed\UnityEngine.UIElementsModule.dll</HintPath>
@ -944,6 +1039,14 @@
<HintPath>..\ref\GamecraftPreview_Data\Managed\UnityEngine.XRModule.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\UnityEngine.XRModule.dll</HintPath>
</Reference>
<Reference Include="uREPL">
<HintPath>..\ref\GamecraftPreview_Data\Managed\uREPL.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\uREPL.dll</HintPath>
</Reference>
<Reference Include="VisualProfiler">
<HintPath>..\ref\GamecraftPreview_Data\Managed\VisualProfiler.dll</HintPath>
<HintPath>..\..\ref\GamecraftPreview_Data\Managed\VisualProfiler.dll</HintPath>
</Reference>
</ItemGroup>
<!--End Dependencies-->
</Project>

View file

@ -17,12 +17,13 @@ namespace GamecraftModdingAPI
public EGID Id { get; }
/// <summary>
/// The cluster this chunk belongs to, or null if the chunk doesn't exist. Get the SimBody from a Block if possible for good performance here.
/// The cluster this chunk belongs to, or null if no cluster destruction manager present or the chunk doesn't exist.
/// Get the SimBody from a Block if possible for good performance here.
/// </summary>
public Cluster Cluster => cluster ?? (cluster = clusterId == uint.MaxValue ? Block.BlockEngine.GetCluster(Id.entityID) : new Cluster(clusterId));
private Cluster cluster;
private uint clusterId;
private readonly uint clusterId = uint.MaxValue;
public SimBody(EGID id)
{
@ -120,6 +121,15 @@ namespace GamecraftModdingAPI
return Block.BlockEngine.GetConnectedSimBodies(Id.entityID);
}
/// <summary>
/// The blocks that form this rigid body.
/// </summary>
/// <returns></returns>
public Block[] GetBlocks()
{
return Block.BlockEngine.GetBodyBlocks(Id.entityID);
}
private ref RigidBodyEntityStruct GetStruct()
{
return ref Block.BlockEngine.GetBlockInfo<RigidBodyEntityStruct>(Id);