diff --git a/GamecraftModdingAPI/Blocks/BlockEngine.cs b/GamecraftModdingAPI/Blocks/BlockEngine.cs
index a365d54..53a7254 100644
--- a/GamecraftModdingAPI/Blocks/BlockEngine.cs
+++ b/GamecraftModdingAPI/Blocks/BlockEngine.cs
@@ -227,7 +227,7 @@ namespace GamecraftModdingAPI.Blocks
for (int i = 0; i < joints.count; i++)
{
ref var joint = ref joints.buffer[i];
- if (joint.jointState == JointState.Broken) continue;
+ if (joint.isBroken) continue;
if (joint.connectedEntityA == id) list.Add(new SimBody(joint.connectedEntityB));
else if (joint.connectedEntityB == id) list.Add(new SimBody(joint.connectedEntityA));
}
diff --git a/GamecraftModdingAPI/Blocks/CustomBlock.cs b/GamecraftModdingAPI/Blocks/CustomBlock.cs
index af8f374..2f33035 100644
--- a/GamecraftModdingAPI/Blocks/CustomBlock.cs
+++ b/GamecraftModdingAPI/Blocks/CustomBlock.cs
@@ -20,6 +20,7 @@ using UnityEngine.AddressableAssets;
using BoxCollider = UnityEngine.BoxCollider;
using Material = UnityEngine.Material;
using Object = UnityEngine.Object;
+using ScalingPermission = DataLoader.ScalingPermission;
namespace GamecraftModdingAPI.Blocks
{
@@ -266,8 +267,15 @@ namespace GamecraftModdingAPI.Blocks
SelectableFaces = new[] {0, 1, 2, 3, 4, 5},
GridScale = new[] {1, 1, 1},
Mass = 1,
- JointBreakAngle = 1,
- Material = abd.Material
+ Material = abd.Material,
+ scalingPermission = ScalingPermission.NonUniform,
+ SortIndex = 12,
+ DefaultColour = (byte) BlockColors.Lime,
+ Volume = 1f,
+ timeRunningCollision = TimeRunningCollision.Enabled,
+ IsIsolator = false,
+ EdgeConnectingFaces = new[] {0, 1, 2, 3, 4, 5},
+ PointDataVolumeMultiplier = 1f
};
Console.WriteLine("Aluminium block data:\n" + abd);
Console.WriteLine("Material: " + abd.Material);
diff --git a/GamecraftModdingAPI/Blocks/DampedSpring.cs b/GamecraftModdingAPI/Blocks/DampedSpring.cs
index 5a5a936..51da25e 100644
--- a/GamecraftModdingAPI/Blocks/DampedSpring.cs
+++ b/GamecraftModdingAPI/Blocks/DampedSpring.cs
@@ -19,10 +19,10 @@ namespace GamecraftModdingAPI.Blocks
///
public float MaxForce
{
- get => BlockEngine.GetBlockInfo(this, (DampedSpringReadOnlyStruct dsrs) => dsrs.maxForce);
+ get => BlockEngine.GetBlockInfo(this, (DampedSpringReadOnlyStruct dsrs) => dsrs.springFrequency);
set => BlockEngine.SetBlockInfo(this,
- (ref DampedSpringReadOnlyStruct dsrs, float val) => dsrs.maxForce = val, value);
+ (ref DampedSpringReadOnlyStruct dsrs, float val) => dsrs.springFrequency = val, value);
}
///
@@ -39,10 +39,10 @@ namespace GamecraftModdingAPI.Blocks
///
public float Damping
{
- get => BlockEngine.GetBlockInfo(this, (LinearJointForcesReadOnlyStruct ljf) => ljf.dampingForceMagnitude);
+ get => BlockEngine.GetBlockInfo(this, (DampedSpringReadOnlyStruct ljf) => ljf.springDamping);
set => BlockEngine.SetBlockInfo(this,
- (ref LinearJointForcesReadOnlyStruct ljf, float val) => ljf.dampingForceMagnitude = val, value);
+ (ref DampedSpringReadOnlyStruct ljf, float val) => ljf.springDamping = val, value);
}
}
}
\ No newline at end of file
diff --git a/GamecraftModdingAPI/Blocks/Piston.cs b/GamecraftModdingAPI/Blocks/Piston.cs
index 04b3aeb..d05ac20 100644
--- a/GamecraftModdingAPI/Blocks/Piston.cs
+++ b/GamecraftModdingAPI/Blocks/Piston.cs
@@ -40,11 +40,11 @@ namespace GamecraftModdingAPI.Blocks
///
public float MaximumForce
{
- get => BlockEngine.GetBlockInfo(this, (PistonReadOnlyStruct st) => st.maxForce);
+ get => BlockEngine.GetBlockInfo(this, (PistonReadOnlyStruct st) => st.pistonVelocity);
set
{
- BlockEngine.SetBlockInfo(this, (ref PistonReadOnlyStruct st, float val) => st.maxForce = val, value);
+ BlockEngine.SetBlockInfo(this, (ref PistonReadOnlyStruct st, float val) => st.pistonVelocity = val, value);
}
}
}
diff --git a/GamecraftModdingAPI/Blocks/Servo.cs b/GamecraftModdingAPI/Blocks/Servo.cs
index 606a48a..a5dceec 100644
--- a/GamecraftModdingAPI/Blocks/Servo.cs
+++ b/GamecraftModdingAPI/Blocks/Servo.cs
@@ -52,11 +52,11 @@ namespace GamecraftModdingAPI.Blocks
///
public float MaximumForce
{
- get => BlockEngine.GetBlockInfo(this, (ServoReadOnlyStruct st) => st.maxForce);
+ get => BlockEngine.GetBlockInfo(this, (ServoReadOnlyStruct st) => st.servoVelocity);
set
{
- BlockEngine.SetBlockInfo(this, (ref ServoReadOnlyStruct st, float val) => st.maxForce = val, value);
+ BlockEngine.SetBlockInfo(this, (ref ServoReadOnlyStruct st, float val) => st.servoVelocity = val, value);
}
}
diff --git a/GamecraftModdingAPI/Blocks/TextBlock.cs b/GamecraftModdingAPI/Blocks/TextBlock.cs
index d7d620a..3d46611 100644
--- a/GamecraftModdingAPI/Blocks/TextBlock.cs
+++ b/GamecraftModdingAPI/Blocks/TextBlock.cs
@@ -35,10 +35,8 @@ namespace GamecraftModdingAPI.Blocks
BlockEngine.SetBlockInfo(this, (ref TextBlockDataStruct tbds, string val) =>
{
tbds.textCurrent.Set(val);
- tbds.textStored.Set(val);
+ tbds.textStored.Set(val, true);
}, value);
- BlockEngine.SetBlockInfo(this,
- (ref TextBlockNetworkDataStruct st, string val) => st.newTextBlockStringContent.Set(val), value);
}
}
@@ -54,8 +52,6 @@ namespace GamecraftModdingAPI.Blocks
if (value == null) value = "";
BlockEngine.SetBlockInfo(this, (ref TextBlockDataStruct tbds, string val) =>
tbds.textBlockID.Set(val), value);
- BlockEngine.SetBlockInfo(this,
- (ref TextBlockNetworkDataStruct st, string val) => st.newTextBlockID.Set(val), value);
}
}
}
diff --git a/GamecraftModdingAPI/GamecraftModdingAPI.csproj b/GamecraftModdingAPI/GamecraftModdingAPI.csproj
index c76ebd9..6324b9a 100644
--- a/GamecraftModdingAPI/GamecraftModdingAPI.csproj
+++ b/GamecraftModdingAPI/GamecraftModdingAPI.csproj
@@ -78,9 +78,9 @@
..\ref\Gamecraft_Data\Managed\Facepunch.Steamworks.Win64.dll
..\..\ref\Gamecraft_Data\Managed\Facepunch.Steamworks.Win64.dll
-
- ..\ref\Gamecraft_Data\Managed\FMOD.dll
- ..\..\ref\Gamecraft_Data\Managed\FMOD.dll
+
+ ..\ref\Gamecraft_Data\Managed\FMODUnity.dll
+ ..\..\ref\Gamecraft_Data\Managed\FMODUnity.dll
..\ref\Gamecraft_Data\Managed\FullGame.dll
@@ -266,6 +266,10 @@
..\ref\Gamecraft_Data\Managed\Gamecraft.Music.dll
..\..\ref\Gamecraft_Data\Managed\Gamecraft.Music.dll
+
+ ..\ref\Gamecraft_Data\Managed\Gamecraft.NetStrings.dll
+ ..\..\ref\Gamecraft_Data\Managed\Gamecraft.NetStrings.dll
+
..\ref\Gamecraft_Data\Managed\Gamecraft.PerformanceWarnings.dll
..\..\ref\Gamecraft_Data\Managed\Gamecraft.PerformanceWarnings.dll
@@ -286,6 +290,10 @@
..\ref\Gamecraft_Data\Managed\Gamecraft.Projectiles.dll
..\..\ref\Gamecraft_Data\Managed\Gamecraft.Projectiles.dll
+
+ ..\ref\Gamecraft_Data\Managed\Gamecraft.Serialization.dll
+ ..\..\ref\Gamecraft_Data\Managed\Gamecraft.Serialization.dll
+
..\ref\Gamecraft_Data\Managed\Gamecraft.Tweaks.dll
..\..\ref\Gamecraft_Data\Managed\Gamecraft.Tweaks.dll
@@ -510,6 +518,10 @@
..\ref\Gamecraft_Data\Managed\RobocraftX.Multiplayer.NetworkEntityStream.dll
..\..\ref\Gamecraft_Data\Managed\RobocraftX.Multiplayer.NetworkEntityStream.dll
+
+ ..\ref\Gamecraft_Data\Managed\RobocraftX.Multiplayer.Serializers.dll
+ ..\..\ref\Gamecraft_Data\Managed\RobocraftX.Multiplayer.Serializers.dll
+
..\ref\Gamecraft_Data\Managed\RobocraftX.MultiplayerInput.dll
..\..\ref\Gamecraft_Data\Managed\RobocraftX.MultiplayerInput.dll
@@ -554,10 +566,6 @@
..\ref\Gamecraft_Data\Managed\RobocraftX.SaveGameDialog.dll
..\..\ref\Gamecraft_Data\Managed\RobocraftX.SaveGameDialog.dll
-
- ..\ref\Gamecraft_Data\Managed\RobocraftX.Serializers.dll
- ..\..\ref\Gamecraft_Data\Managed\RobocraftX.Serializers.dll
-
..\ref\Gamecraft_Data\Managed\RobocraftX.Services.dll
..\..\ref\Gamecraft_Data\Managed\RobocraftX.Services.dll
diff --git a/GamecraftModdingAPI/Utility/Audio.cs b/GamecraftModdingAPI/Utility/Audio.cs
index 9d227a8..b2566f2 100644
--- a/GamecraftModdingAPI/Utility/Audio.cs
+++ b/GamecraftModdingAPI/Utility/Audio.cs
@@ -43,40 +43,24 @@ namespace GamecraftModdingAPI.Utility
{
get
{
- sound.getParameterValue(key, out float val, out float finalVal);
+ sound.getParameterByName(key, out float val, out float finalVal);
return val;
}
- set => sound.setParameterValue(key, value);
+ set => sound.setParameterByName(key, value);
}
- public float this[int index]
+ public float this[PARAMETER_ID index]
{
get
{
- sound.getParameterValueByIndex(index, out float val, out float finalVal);
+ sound.getParameterByID(index, out float val, out float finalVal);
return val;
}
- set => sound.setParameterValueByIndex(index, value);
+ set => sound.setParameterByID(index, value);
}
- public string[] Parameters
- {
- get
- {
- sound.getParameterCount(out int count);
- string[] parameters = new string[count];
- for (int i = 0; i < count; i++)
- {
- sound.getParameterByIndex(i, out ParameterInstance param);
- param.getDescription(out PARAMETER_DESCRIPTION desc);
- parameters[i] = desc.name;
- }
- return parameters;
- }
- }
-
public float3 Position
{
get