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.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.springFrequency); set => BlockEngine.SetBlockInfo(this, (ref DampedSpringReadOnlyStruct dsrs, float val) => dsrs.springFrequency = 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, (DampedSpringReadOnlyStruct ljf) => ljf.springDamping); set => BlockEngine.SetBlockInfo(this, (ref DampedSpringReadOnlyStruct ljf, float val) => ljf.springDamping = val, value); } /// /// The spring's maximum extension. /// public float MaxExtension { get => BlockEngine.GetBlockInfo(this, (DampedSpringReadOnlyStruct ljf) => ljf.maxExtent); set => BlockEngine.SetBlockInfo(this, (ref DampedSpringReadOnlyStruct ljf, float val) => ljf.maxExtent = val, value); } } }