private void DrawRoomObjects(string type, DungeonRoom room, Vector3 offset) { List <DungeonRoomObject> objs = room.roomObjects; PlanetVisualData dataSet = GetVisualDataSet(type); //GameObject puzzleHolder = new GameObject("Block push puzzle holder"); //Rigidbody2D rb = puzzleHolder.AddComponent<Rigidbody2D>(); //rb.gravityScale = 0f; //rb.bodyType = RigidbodyType2D.Static; //puzzleHolder.AddComponent<CompositeCollider2D>(); //puzzleHolder.transform.parent = objectParent; for (int i = 0; i < objs.Count; i++) { DungeonRoomObject obj = objs[i]; if (obj.IsCreated) { continue; } string objName = obj.ObjectName; Vector3 pos = obj.RoomSpacePosition + offset; DungeonRoomObjectComponent newObj = GetObjectToSpawn(objName); if (newObj == null) { continue; } newObj.Setup(this, obj); newObj.transform.parent = obj.IsPersistent ? null : objectParent; if (obj.IsPersistent) { obj.IsCreated = true; } } }
private void DrawTiles(string type, DungeonRoom room, Vector2 offset) { PlanetVisualData dataSet = GetVisualDataSet(type); List <DungeonRoomTile> tiles = room.Tiles; for (int i = 0; i < tiles.Count; i++) { CreateTile(tiles[i].Position.x + (int)offset.x, tiles[i].Position.y + (int)offset.y, tiles[i].type, dataSet); } }
private void CreateTile(int x, int y, DungeonRoomTileType tileType, PlanetVisualData dataSet) { Vector3Int position = new Vector3Int(x, y, 0); switch (tileType) { case DungeonRoomTileType.Wall: wallMap.SetTile(position, dataSet.wallTile); break; case DungeonRoomTileType.Floor: floorMap.SetTile(position, dataSet.floorTile); float randomVal = UnityEngine.Random.value; if (randomVal <= dataSet.detailChance) { floorDetailMap.SetTile(position, dataSet.floorDetailTile); } break; } }