using System; using RobocraftX.Blocks; using RobocraftX.Common; using Svelto.ECS; using Unity.Mathematics; using GamecraftModdingAPI; using GamecraftModdingAPI.Utility; namespace GamecraftModdingAPI.Blocks { public class ConsoleBlock : SignalingBlock { public ConsoleBlock(EGID id): base(id) { } public ConsoleBlock(uint id): base(new EGID(id, CommonExclusiveGroups.BUILD_CONSOLE_BLOCK_GROUP)) { } // custom console block properties /// /// Setting a nonexistent command will crash the game when switching to simulation /// public string Command { get { return BlockEngine.GetBlockInfo(this, (ConsoleBlockEntityStruct st) => st.commandName); } set { BlockEngine.SetBlockInfo(this, (ref ConsoleBlockEntityStruct st, string val) => st.commandName.Set(val), value); } } public string Arg1 { get => BlockEngine.GetBlockInfo(this, (ConsoleBlockEntityStruct st) => st.arg1); set { BlockEngine.SetBlockInfo(this, (ref ConsoleBlockEntityStruct st, string val) => st.arg1.Set(val), value); } } public string Arg2 { get => BlockEngine.GetBlockInfo(this, (ConsoleBlockEntityStruct st) => st.arg2); set { BlockEngine.SetBlockInfo(this, (ref ConsoleBlockEntityStruct st, string val) => st.arg2.Set(val), value); } } public string Arg3 { get => BlockEngine.GetBlockInfo(this, (ConsoleBlockEntityStruct st) => st.arg3); set { BlockEngine.SetBlockInfo(this, (ref ConsoleBlockEntityStruct st, string val) => st.arg3.Set(val), value); } } } }