Get/Set FixedRotation in play mode

This commit is contained in:
Simon Lübeß
2024-01-26 12:51:29 +01:00
parent d4d6cc8e38
commit bc535ddc26
6 changed files with 58 additions and 5 deletions
+14
View File
@@ -574,6 +574,20 @@ static class ScriptGlue
rigidBody.SetAngularVelocity(velocity);
}
[RegisterCall("ScriptGlue::Rigidbody2D_IsFixedRotation")]
static void Rigidbody2D_IsFixedRotation(UUID entityId, out bool isFixedRotation)
{
Rigidbody2DComponent* rigidBody = GetComponentSafe<Rigidbody2DComponent>(entityId);
isFixedRotation = rigidBody.FixedRotation;
}
[RegisterCall("ScriptGlue::Rigidbody2D_SetFixedRotation")]
static void Rigidbody2D_SetFixedRotation(UUID entityId, in bool isFixedRotation)
{
Rigidbody2DComponent* rigidBody = GetComponentSafe<Rigidbody2DComponent>(entityId);
rigidBody.FixedRotation = isFixedRotation;
}
#endregion Rigidbody2D
#region Camera
@@ -353,7 +353,7 @@ namespace GlitchyEngine.World
public BodyType BodyType = .Static;
public bool FixedRotation = false;
public bool _fixedRotation = false;
private int _runtimeBody = 0;
@@ -367,6 +367,20 @@ namespace GlitchyEngine.World
[Inline]
set mut => _runtimeBody = (int)(void*)value;
}
public bool FixedRotation
{
get => _fixedRotation;
set mut
{
_fixedRotation = value;
if (RuntimeBody != null)
{
Box2D.Body.SetFixedRotation(RuntimeBody, _fixedRotation);
}
}
}
/*public float LinearDamping
{
+3 -1
View File
@@ -587,7 +587,9 @@ class SceneSerializer
Deserialize.Value(reader, "BodyType", out component.BodyType);
reader.EntryEnd();
Deserialize.Value(reader, "FixedRotation", out component.FixedRotation);
bool fixedRotation = false;
Deserialize.Value(reader, "FixedRotation", out fixedRotation);
component.FixedRotation = fixedRotation;
return .Ok;
}));