Ejemplo n.º 1
0
    public static List <BaseTileData> GetNeighboursTilesOfRelay(BaseTileData baseTileData /*should be a relay tile */)
    {
        RelayTile           relayTile = (RelayTile)(baseTileData.structureTile);
        List <Vector3Int>   list      = GetNeighboursPositionsAtDistance(baseTileData.GridPosition, relayTile.GetActivationAreaRange());
        List <BaseTileData> neighbour = TilesDataManager.Instance.GetTilesAtPos(list).ToList();

        return(neighbour);
    }
Ejemplo n.º 2
0
    public StructureTile CreateStructureFromType(StructureType type, BaseTileData data)
    {
        StructureTile newTile = null;

        StructureBinding structureBinding = BuildingManager.Instance.StructuresTemplates.GetStructureBindingFromType(type);

        if (structureBinding != null)
        {
            switch (type)
            {
            case StructureType.PowerPlant:
                newTile = new PowerPlantTile();
                break;

            case StructureType.Sawmill:
                newTile = new SawmillTile();
                break;

            case StructureType.PumpingStation:
                newTile = new PumpingStationTile();
                WaterClusterManager.Instance.RegisterPumpingStation(data);
                break;

            case StructureType.Village:
                newTile = new VillageTile();
                break;

            case StructureType.Mine:
                newTile = new MineTile();
                break;

            case StructureType.Relay:
                newTile = new RelayTile();
                break;

            case StructureType.MainRelay:
                newTile = new MainRelayTile();
                break;

            default:
                throw new MissingStructureTypeDefinitionException();
            }
            data.structureTile = newTile;
            BuildingView building = Instantiate(structureBinding.building, data.worldPosition, Quaternion.identity, transform);
            building.dataTile    = newTile;
            newTile._building    = building;
            newTile.GridPosition = data.GridPosition;
            ResourcesManager.Instance.RegisterStructure(newTile);
            RelayManager.Instance.RegisterStructure(data);
        }
        return(newTile);
    }