public Entity AddHexTileDefinition(HexTileDefinitionComponent.TileType newType, bool newIsBlocked)
 {
     var component = _hexTileDefinitionComponentPool.Count > 0 ? _hexTileDefinitionComponentPool.Pop() : new HexTileDefinitionComponent();
     component.type = newType;
     component.isBlocked = newIsBlocked;
     return AddComponent(ComponentIds.HexTileDefinition, component);
 }
 public Entity ReplaceHexTileDefinition(HexTileDefinitionComponent.TileType newType, bool newIsBlocked)
 {
     var previousComponent = hasHexTileDefinition ? hexTileDefinition : null;
     var component = _hexTileDefinitionComponentPool.Count > 0 ? _hexTileDefinitionComponentPool.Pop() : new HexTileDefinitionComponent();
     component.type = newType;
     component.isBlocked = newIsBlocked;
     ReplaceComponent(ComponentIds.HexTileDefinition, component);
     if (previousComponent != null) {
         _hexTileDefinitionComponentPool.Push(previousComponent);
     }
     return this;
 }