internal TilePlacementData(PreProcessTileData preProcessData, bool isOnMainPath, DungeonArchetype archetype, TileSet tileSet, Dungeon dungeon) { root = (GameObject)GameObject.Instantiate(preProcessData.Prefab); Bounds = preProcessData.Proxy.GetComponent <Collider>().bounds; IsOnMainPath = isOnMainPath; tile = Root.GetComponent <Tile>(); if (tile == null) { tile = Root.AddComponent <Tile>(); } tile.Placement = this; tile.Archetype = archetype; tile.TileSet = tileSet; tile.Dungeon = dungeon; foreach (var doorway in Root.GetComponentsInChildren <Doorway>(true)) { doorway.Dungeon = dungeon; doorway.Tile = tile; AllDoorways.Add(doorway); } UnusedDoorways.AddRange(AllDoorways); root.SetActive(false); }
public DoorwayPair(Tile previousTile, Doorway previousDoorway, PreProcessTileData nextTemplate, Doorway nextDoorway, TileSet nextTileSet, float tileWeight, float doorwayWeight) { PreviousTile = previousTile; PreviousDoorway = previousDoorway; NextTemplate = nextTemplate; NextDoorway = nextDoorway; NextTileSet = nextTileSet; TileWeight = tileWeight; DoorwayWeight = doorwayWeight; }
protected PreProcessTileData GetTileTemplate(GameObject prefab) { var template = preProcessData.Where(x => { return(x.Prefab == prefab); }).FirstOrDefault(); // No proxy has been loaded yet, we should create one if (template == null) { template = new PreProcessTileData(prefab, IgnoreSpriteBounds, UpVector); preProcessData.Add(template); } return(template); }