using System; using RobocraftX.Blocks; using Svelto.ECS; using Unity.Mathematics; using TechbloxModdingAPI.Utility; using RobocraftX.Common; namespace TechbloxModdingAPI.Blocks { public class Piston : SignalingBlock { public Piston(EGID id) : base(id) { } public Piston(uint id) : base(new EGID(id, CommonExclusiveGroups.PISTON_BLOCK_GROUP)) { } // custom piston properties /// /// The piston's max extension distance. /// public float MaximumExtension { get => BlockEngine.GetBlockInfo(this, (PistonReadOnlyStruct st) => st.maxDeviation); set { BlockEngine.SetBlockInfo(this, (ref PistonReadOnlyStruct st, float val) => st.maxDeviation = val, value); } } /// /// The piston's max extension force. /// public float MaximumForce { get => BlockEngine.GetBlockInfo(this, (PistonReadOnlyStruct st) => st.pistonVelocity); set { BlockEngine.SetBlockInfo(this, (ref PistonReadOnlyStruct st, float val) => st.pistonVelocity = val, value); } } } }