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)) { } /// /// The spring's maximum force. This is known as Stiffness in-game /// public float MaxForce { get => BlockEngine.GetBlockInfo(this, (DampedSpringReadOnlyStruct dsrs) => dsrs.maxForce); set => BlockEngine.SetBlockInfo(this, (ref DampedSpringReadOnlyStruct dsrs, float val) => dsrs.maxForce = val, value); } /// /// Alias of MaxForce. /// public float Stiffness { get => MaxForce; set => MaxForce = value; } /// /// The spring's maximum damping force. /// public float Damping { get => BlockEngine.GetBlockInfo(this, (LinearJointForcesReadOnlyStruct ljf) => ljf.dampingForceMagnitude); set => BlockEngine.SetBlockInfo(this, (ref LinearJointForcesReadOnlyStruct ljf, float val) => ljf.dampingForceMagnitude = val, value); } } }