using System; using RobocraftX.Blocks; using RobocraftX.Common; using Gamecraft.CharacterVulnerability; using Svelto.ECS; using Unity.Mathematics; using TechbloxModdingAPI; using TechbloxModdingAPI.Utility; namespace TechbloxModdingAPI.Blocks { public class SpawnPoint : Block { public SpawnPoint(EGID id) : base(id) { } public SpawnPoint(uint id) : base(new EGID(id, CommonExclusiveGroups.SPAWNPOINT_BLOCK_GROUP)) { } // custom spawn point properties /// /// The lives the player spawns in with. /// public uint Lives { get => BlockEngine.GetBlockInfo(this, (SpawnPointStatsEntityStruct st) => st.lives); set { BlockEngine.SetBlockInfo(this, (ref SpawnPointStatsEntityStruct st, uint val) => st.lives = val, value); } } /// /// Whether the spawned player can take damage. /// public bool Damageable { get => BlockEngine.GetBlockInfo(this, (SpawnPointStatsEntityStruct st) => st.canTakeDamage); set { BlockEngine.SetBlockInfo(this, (ref SpawnPointStatsEntityStruct st, bool val) => st.canTakeDamage = val, value); } } /// /// Whether the game over screen will be displayed /// public bool GameOverEnabled { get => BlockEngine.GetBlockInfo(this, (SpawnPointStatsEntityStruct st) => st.gameOverScreen); set { BlockEngine.SetBlockInfo(this, (ref SpawnPointStatsEntityStruct st, bool val) => st.gameOverScreen = val, value); } } /// /// The team id for players who spawn here. /// public byte Team { get => BlockEngine.GetBlockInfo(this, (SpawnPointIdsEntityStruct st) => st.teamId); set { BlockEngine.SetBlockInfo(this, (ref SpawnPointIdsEntityStruct st, byte val) => st.teamId = val, value); } } } }