- Fixed the crash on second time start - Tweaked more stuff about the block Breaking changes coming from FMOD 2.0: - Audio[int index] changed to Audio[PARAMETER_ID index] - Audio.Parameters removedtags/v1.8.0
@@ -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)); | |||
} | |||
@@ -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); | |||
@@ -19,10 +19,10 @@ namespace GamecraftModdingAPI.Blocks | |||
/// </summary> | |||
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); | |||
} | |||
/// <summary> | |||
@@ -39,10 +39,10 @@ namespace GamecraftModdingAPI.Blocks | |||
/// </summary> | |||
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); | |||
} | |||
} | |||
} |
@@ -40,11 +40,11 @@ namespace GamecraftModdingAPI.Blocks | |||
/// </summary> | |||
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); | |||
} | |||
} | |||
} | |||
@@ -52,11 +52,11 @@ namespace GamecraftModdingAPI.Blocks | |||
/// </summary> | |||
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); | |||
} | |||
} | |||
@@ -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); | |||
} | |||
} | |||
} | |||
@@ -78,9 +78,9 @@ | |||
<HintPath>..\ref\Gamecraft_Data\Managed\Facepunch.Steamworks.Win64.dll</HintPath> | |||
<HintPath>..\..\ref\Gamecraft_Data\Managed\Facepunch.Steamworks.Win64.dll</HintPath> | |||
</Reference> | |||
<Reference Include="FMOD"> | |||
<HintPath>..\ref\Gamecraft_Data\Managed\FMOD.dll</HintPath> | |||
<HintPath>..\..\ref\Gamecraft_Data\Managed\FMOD.dll</HintPath> | |||
<Reference Include="FMODUnity"> | |||
<HintPath>..\ref\Gamecraft_Data\Managed\FMODUnity.dll</HintPath> | |||
<HintPath>..\..\ref\Gamecraft_Data\Managed\FMODUnity.dll</HintPath> | |||
</Reference> | |||
<Reference Include="FullGame"> | |||
<HintPath>..\ref\Gamecraft_Data\Managed\FullGame.dll</HintPath> | |||
@@ -266,6 +266,10 @@ | |||
<HintPath>..\ref\Gamecraft_Data\Managed\Gamecraft.Music.dll</HintPath> | |||
<HintPath>..\..\ref\Gamecraft_Data\Managed\Gamecraft.Music.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Gamecraft.NetStrings"> | |||
<HintPath>..\ref\Gamecraft_Data\Managed\Gamecraft.NetStrings.dll</HintPath> | |||
<HintPath>..\..\ref\Gamecraft_Data\Managed\Gamecraft.NetStrings.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Gamecraft.PerformanceWarnings"> | |||
<HintPath>..\ref\Gamecraft_Data\Managed\Gamecraft.PerformanceWarnings.dll</HintPath> | |||
<HintPath>..\..\ref\Gamecraft_Data\Managed\Gamecraft.PerformanceWarnings.dll</HintPath> | |||
@@ -286,6 +290,10 @@ | |||
<HintPath>..\ref\Gamecraft_Data\Managed\Gamecraft.Projectiles.dll</HintPath> | |||
<HintPath>..\..\ref\Gamecraft_Data\Managed\Gamecraft.Projectiles.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Gamecraft.Serialization"> | |||
<HintPath>..\ref\Gamecraft_Data\Managed\Gamecraft.Serialization.dll</HintPath> | |||
<HintPath>..\..\ref\Gamecraft_Data\Managed\Gamecraft.Serialization.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Gamecraft.Tweaks"> | |||
<HintPath>..\ref\Gamecraft_Data\Managed\Gamecraft.Tweaks.dll</HintPath> | |||
<HintPath>..\..\ref\Gamecraft_Data\Managed\Gamecraft.Tweaks.dll</HintPath> | |||
@@ -510,6 +518,10 @@ | |||
<HintPath>..\ref\Gamecraft_Data\Managed\RobocraftX.Multiplayer.NetworkEntityStream.dll</HintPath> | |||
<HintPath>..\..\ref\Gamecraft_Data\Managed\RobocraftX.Multiplayer.NetworkEntityStream.dll</HintPath> | |||
</Reference> | |||
<Reference Include="RobocraftX.Multiplayer.Serializers"> | |||
<HintPath>..\ref\Gamecraft_Data\Managed\RobocraftX.Multiplayer.Serializers.dll</HintPath> | |||
<HintPath>..\..\ref\Gamecraft_Data\Managed\RobocraftX.Multiplayer.Serializers.dll</HintPath> | |||
</Reference> | |||
<Reference Include="RobocraftX.MultiplayerInput"> | |||
<HintPath>..\ref\Gamecraft_Data\Managed\RobocraftX.MultiplayerInput.dll</HintPath> | |||
<HintPath>..\..\ref\Gamecraft_Data\Managed\RobocraftX.MultiplayerInput.dll</HintPath> | |||
@@ -554,10 +566,6 @@ | |||
<HintPath>..\ref\Gamecraft_Data\Managed\RobocraftX.SaveGameDialog.dll</HintPath> | |||
<HintPath>..\..\ref\Gamecraft_Data\Managed\RobocraftX.SaveGameDialog.dll</HintPath> | |||
</Reference> | |||
<Reference Include="RobocraftX.Serializers"> | |||
<HintPath>..\ref\Gamecraft_Data\Managed\RobocraftX.Serializers.dll</HintPath> | |||
<HintPath>..\..\ref\Gamecraft_Data\Managed\RobocraftX.Serializers.dll</HintPath> | |||
</Reference> | |||
<Reference Include="RobocraftX.Services"> | |||
<HintPath>..\ref\Gamecraft_Data\Managed\RobocraftX.Services.dll</HintPath> | |||
<HintPath>..\..\ref\Gamecraft_Data\Managed\RobocraftX.Services.dll</HintPath> | |||
@@ -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 | |||