public static bool Prefix(ref GameObject __result, Enums.StructureType structureType) { IPlaceableStructureCreator placeableStructureCreator = ActivePlaceableStructureCreators.GetCreatorFromEnum(structureType); if (placeableStructureCreator != null) { __result = placeableStructureCreator.Prefab; return(false); } return(true); }
// Sets selected tile to structure with desired type public void SetTileToStructureAt(int x, int y, Enums.StructureType sType) { // Check if tile is empty if (_tileData[x, y]._state == Enums.MapTileState.Empty) { _tileData[x, y]._state = Enums.MapTileState.Struture; _tileData[x, y]._structure = StoreService.GetStructureData(sType); const float offset = .33f; // TODO : fix for aligning tiles correctly because of sprite pivot is middle var tileLoc = new Vector3(transform.position.x + (offset * x) - .33f, transform.position.y + (offset * y) - .33f, 0); var go = Instantiate(_tilePrefab, tileLoc, Quaternion.identity, transform); go.GetComponent <TileControllerScript>().SetTileData(_tileData[x, y]); // If player tile, set appropriate tag if (sType == Enums.StructureType.Warfare) { go.tag = Constants.TAG_PLAYER_TILE; } } }
public StructureData(Enums.StructureType type, float hp) { _type = type; _hp = hp; }
public static StructureData GetStructureData(Enums.StructureType type) { return(_structuresData[(int)type]); }
protected abstract void PatchedStructureTypeEnum(Enums.StructureType structureType);
protected override void PatchedStructureTypeEnum(Enums.StructureType structureType) { }
internal static IPlaceableStructureCreator GetCreatorFromEnum(Enums.StructureType structureType) { return(HasCreatorFromEnum(structureType) ? ActiveEnums[structureType] : null); }
internal static bool HasCreatorFromEnum(Enums.StructureType structureType) { return(ActiveEnums.ContainsKey(structureType)); }
internal static void Add <T>(IPlaceableStructureCreator o, Enums.StructureType structureType) where T : IPlaceableStructureCreator { PlaceableStructureCreators.Add(typeof(T), o); ActiveEnums.Add(structureType, o); }