using System; using Gamecraft.Blocks.GUI; using RobocraftX.Common; using Svelto.ECS; using Unity.Mathematics; using GamecraftModdingAPI; using GamecraftModdingAPI.Utility; namespace GamecraftModdingAPI.Blocks { public class TextBlock : SignalingBlock { public TextBlock(EGID id) : base(id) { } public TextBlock(uint id) : base(new EGID(id, CommonExclusiveGroups.BUILD_TEXT_BLOCK_GROUP)) { } // custom text block properties /// /// The text block's current text. /// public string Text { get => BlockEngine.GetBlockInfo(this, (TextBlockDataStruct st) => st.textCurrent); set { BlockEngine.SetBlockInfo(this, (ref TextBlockDataStruct tbds, string val) => { tbds.textCurrent.Set(val); tbds.textStored.Set(val); }, value); BlockEngine.SetBlockInfo(this, (ref TextBlockNetworkDataStruct st, string val) => st.newTextBlockStringContent.Set(val), value); } } /// /// The text block's current text block ID (used in ChangeTextBlockCommand). /// public string TextBlockId { get => BlockEngine.GetBlockInfo(this, (TextBlockDataStruct st) => st.textBlockID); set { BlockEngine.SetBlockInfo(this, (ref TextBlockDataStruct tbds, string val) => tbds.textBlockID.Set(val), value); BlockEngine.SetBlockInfo(this, (ref TextBlockNetworkDataStruct st, string val) => st.newTextBlockID.Set(val), value); } } } }