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);
        }
Esempio n. 2
0
 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;
 }
Esempio n. 3
0
        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);
        }