You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
- using System;
-
- using RobocraftX.Blocks;
- using Svelto.ECS;
- using Unity.Mathematics;
-
- using GamecraftModdingAPI.Utility;
- using RobocraftX.Common;
-
- namespace GamecraftModdingAPI.Blocks
- {
- public class Piston : Block
- {
- public Piston(EGID id) : base(id)
- {
- if (!BlockEngine.GetBlockInfoExists<PistonReadOnlyStruct>(this.Id))
- {
- throw new BlockTypeException($"Block is not a {this.GetType().Name} block");
- }
- }
-
- public Piston(uint id) : base(new EGID(id, CommonExclusiveGroups.BUILD_PISTON_BLOCK_GROUP))
- {
- if (!BlockEngine.GetBlockInfoExists<PistonReadOnlyStruct>(this.Id))
- {
- throw new BlockTypeException($"Block is not a {this.GetType().Name} block");
- }
- }
-
- // custom piston properties
-
- /// <summary>
- /// The piston's max extension distance.
- /// </summary>
- public float MaximumExtension
- {
- get => BlockEngine.GetBlockInfo<PistonReadOnlyStruct>(Id).maxDeviation;
-
- set
- {
- ref PistonReadOnlyStruct piston = ref BlockEngine.GetBlockInfo<PistonReadOnlyStruct>(Id);
- piston.maxDeviation = value;
- }
- }
-
- /// <summary>
- /// The piston's max extension force.
- /// </summary>
- public float MaximumForce
- {
- get => BlockEngine.GetBlockInfo<PistonReadOnlyStruct>(Id).maxForce;
-
- set
- {
- ref PistonReadOnlyStruct piston = ref BlockEngine.GetBlockInfo<PistonReadOnlyStruct>(Id);
- piston.maxForce = value;
- }
- }
- }
- }
|