// Start is called before the first frame update void Start() { if (TileCreator.tileCreator == null) { TileCreator.tileCreator = this; } else { Destroy(this.gameObject); } tiles = new Dictionary <Vector2, Tile> [tileMap.Length]; tilePositions = new Dictionary <Vector2, int> [tileMap.Length]; for (int i = 0; i < tileMap.Length; i++) { tiles[i] = new Dictionary <Vector2, Tile>(); tilePositions[i] = new Dictionary <Vector2, int>(); } pathTiles = new Dictionary <Vector2, Tile> [pathTileMap.Length]; for (int i = 0; i < pathTileMap.Length; i++) { pathTiles[i] = new Dictionary <Vector2, Tile>(); } moveRangeTiles = new Dictionary <Vector2, Tile> [moveRangeTileMap.Length]; for (int i = 0; i < moveRangeTileMap.Length; i++) { moveRangeTiles[i] = new Dictionary <Vector2, Tile>(); } selectableTilePositions = new List <Vector2>(); }
/// <summary> /// 将新的剧情图tile写入ROM,并且刷新对应的Nametable /// </summary> /// <param name="ROMFileName">ROM文件名</param> /// <param name="imgFileName">剧情图文件名</param> /// <param name="is1P">1P还是2P?</param> private static void Patch(string ROMFileName, string imgFileName, bool is1P) { Byte[] chrData = Common.GetCHRData(ROMFileName); bool isSucceeded = GenerateTilesAndNameTableFromImage(imgFileName); if (isSucceeded) { // 刷新NameTable for (int i = 0; i < 256 / 8 * 240 / 8; ++i) { chrData[ADDRESSES[is1P ? 0 : 1] + i] = s_NewNameTable[i]; } // 创建新tileImg Bitmap newTileImg = CreateNewTileImage(); // 刷新PatternTable Byte[] patternTable = TileCreator.Bitmap2Data(newTileImg); for (int i = 0; i < patternTable.Length; ++i) { chrData[PAT_ADDR[is1P ? 0 : 1] + i] = patternTable[i]; } } else { Console.WriteLine("Fatal ERROR! Too many tiles!"); return; } Common.PatchROM(ROMFileName, null, chrData); }
private void CreateMap(Bitmap input, ShaderProgram prog) { Color[] data = new Color[input.Height * input.Width]; map = new bool[input.Width, input.Height]; for (int w = 0; w < input.Width; w++) { for (int h = 0; h < input.Height; h++) { map[w, h] = input.GetPixel(w, h).R >= 128; data[w * input.Height + h] = input.GetPixel(w, h); } } foreach (GameObject gameObject in objects) { gameObject.Destroy(); } objects = TileCreator.CreateTileMap(TileCreator.CreateObject_Box, data, input.Width, input.Height, 3, 4, new Vector2(input.Width * 4, input.Height * 4), prog); foreach (GameObject gameObject in objects) { Add(gameObject); } groundObj?.Destroy(); Vector3 scale = new Vector3(input.Width * 4, 2, input.Height * 4 + 50) / 2; Size size = new Size(input.Width, input.Height); groundObj = CreateGround(input, scale, size); Add(groundObj); }
static void DrawGizmoFor(TileCreator target, GizmoType gizmoType) { //沒有設定tileData就不畫 if (target.tileData == null) return; float scaleX = target.transform.localScale.x; float scaleY = target.transform.localScale.y; //draw grid Vector3 origin = target.transform.position; Vector3 top = origin + scaleY * target.transform.up * target.getHeight(); Vector3 right = origin + scaleX * target.transform.right * target.getWidth(); for (int i = 0; i <= target.getWidth(); i++) { Vector3 offsetFrom = origin + scaleX * target.transform.right * i; Vector3 offsetTo = top + scaleX * target.transform.right * i; Gizmos.DrawLine(offsetFrom, offsetTo); } for (int i = 0; i <= target.getHeight(); i++) { Vector3 offsetFrom = origin + scaleY * target.transform.up * i; Vector3 offsetTo = right + scaleY * target.transform.up * i; Gizmos.DrawLine(offsetFrom, offsetTo); } }
void Awake() { tileCreator = GetComponentInChildren <TileCreator>(); burger = GameObject.Find("BurgerObject"); witch = GameObject.Find("Player_Isometric_Witch"); witchPathfinding = witch.GetComponent <Pathfinding>(); }
public PunchableTile(string name, int textureX, int textureY, int durability, ItemStack drop, int amount, TileCreator replacementTile) : base(name, textureX, textureY) { this.Durability = durability; this.CurrDurability = durability; this.Drop = drop; this.DropAmount = amount; this.ReplacementTile = replacementTile; }
private static GameObject CreateGoal(Vector3 position) { GameObject ret = TileCreator.CreateCube(position, Vector3.One, Quaternion.Identity, TextureLoader.ColorToTexture(Color.Red), DefaultFilepaths.DefaultLitShader, TextureLoader.ColorToTexture(Color.White)); ret.AddComponent(new MapEndTrigger()); return(ret); }
private void CreateTiles(CubeModel model) { int widthFace; int heightFace; for (int faceNumber = 0; faceNumber < 6; faceNumber++) { GameObject face = new GameObject(faceNumber + ""); face.transform.SetParent(transform); face.transform.localRotation = GetFaceRotation((CubeFace)faceNumber); face.transform.localPosition = GetFacePosition((CubeFace)faceNumber); switch (faceNumber) { case (int)CubeFace.X: case (int)CubeFace.MX: widthFace = model.Z_SIZE; heightFace = model.Y_SIZE; break; case (int)CubeFace.Y: case (int)CubeFace.MY: widthFace = model.X_SIZE; heightFace = model.Z_SIZE; break; case (int)CubeFace.Z: case (int)CubeFace.MZ: widthFace = model.X_SIZE; heightFace = model.Y_SIZE; break; default: throw new UnhandledSwitchCaseException(faceNumber); } exterior[faceNumber] = new TileController[widthFace, heightFace]; for (int x = 0; x < widthFace; x++) { for (int y = 0; y < heightFace; y++) { TileData tileData = model.faces[faceNumber][x, y]; TileController tile = TileCreator.CreateTile(tileData, GetTilePosition((CubeFace)faceNumber, x, y), SizeRatio); tile.transform.SetParent(face.transform, false); // if (GameObjects.GetGameState().LevelEditor) { EditorTile editorTile = tile.Mesh.AddComponent <EditorTile>(); editorTile.Init((CubeFace)faceNumber, x, y); editorTile.GridTileClickEvent += GameObjects.GetLevelCreatorController().OnTileClick; } model.objectivesFilled.TryFillTile(tile); // exterior[faceNumber][x, y] = tile; } } } }
// Use this for initialization void Start() { tc = this.GetComponent <TileCreator>(); tileObjectList = new List <TileClass>(); createInitTile(); createInitTile(); move_cool_time = move_cool_tile_max; refreshScore(); }
public void AddTile(string name, int food, int minerals, int gold, bool ground) { TileCreator newObject = new TileCreator(name, food, minerals, gold, ground, tiles[tiles.Length - 1].id); AssetDatabase.MoveAsset("Assets/Resources/Sprites/NewTiles/" + name + ".png", "Assets/Resources/Sprites/TileSprites/" + name + ".png"); string objjson = JsonUtility.ToJson(newObject); AddObjectToJson(json, objjson); ObjectsFromJson(); WriteJson(path, aPath); }
protected virtual void Initialize(int level, Point?startTile) { CurrentLevelIndex = level; CurrentMap = Data.Maps[level]; TileCreator.Reset(); ItemCreator.Reset(); InitializeMapTextures(); TileInitializers = new List <TileInitializer>(); start = startTile ?? new Point(Data.StartPosition.Position.X, Data.StartPosition.Position.Y); TilePositions = new Dictionary <Point, Tile>(); }
private void Awake() { if (Instance == null) { Instance = this; } else { Debug.LogError("Too many Instances!"); Destroy(gameObject); } }
protected void CreateTiles(TileGrid grid, TileType[,] tiles) { for (int x = 0; x < grid.GridSize.x; x++) { for (int y = 0; y < grid.GridSize.y; y++) { var tilePrefab = tiles[x, y] == TileType.land1 ? landPrefab1 : tiles[x, y] == TileType.land2 ? landPrefab2 : tiles[x, y] == TileType.water ? waterPrefab : null; TileCreator.CreateTile(grid, x, y, () => tilePrefab); } } }
private GameObject CreateGround(Bitmap mapLayout, Vector3 scale, Size size) { Texture tex = TextureLoader.BitmapToTexture(new Bitmap(mapLayout, 512, 512), "GroundTexture"); Texture texS = TextureLoader.BitmapToTexture(new Bitmap(mapLayout, 512, 512), "GroundSpecular"); TextureGenerator.CreateGroundTexture(tex, texS); GameObject ret = TileCreator.CreateCube(Vector3.Zero, scale, Quaternion.Identity, tex, DefaultFilepaths.DefaultLitShader, new Vector2(size.Height, size.Width), Vector2.Zero, texS); ret.Name = "Ground"; Collider groundColl = ret.GetComponent <Collider>(); groundColl.PhysicsCollider.Material = new Material(10, 10, 0); return(ret); }
public void CreateBoard(int levelId) { string levelPath = levelId == Exporter.EditorLevelNum ? Exporter.EditorLevelPath : $"Text/level{levelId.ToString()}"; TextAsset levelJson = Resources.Load <TextAsset>(levelPath); LevelData levelData = JsonUtility.FromJson <LevelData>(levelJson.text); List <LevelInfo> levelInfo = levelData.data; _boardInfo.GetBoardSpecs(levelInfo, out int tilesCount); _boardTiles = new Tile.Tile[(int)BoardSize.x, (int)BoardSize.y, (int)BoardSize.z]; _floors = new GameObject[(int)BoardSize.z]; _middleTilePos = new Vector2((int)Math.Floor(BoardSize.x / 2), (int)Math.Floor(BoardSize.y / 2)); _tileCreator = GetComponent <TileCreator>(); _tileCreator.BoardSize = BoardSize; _tileCreator.BoardTiles = BoardTiles; _tileCreator.Floors = _floors; for (int i = 0; i < levelInfo.Count; i++) { int f = levelInfo[i].floor; List <LevelTiles> levelTiles = levelInfo[i].rows; for (int j = 0; j < levelTiles.Count; j++) { List <int> tiles = levelTiles[j].tiles; for (int k = 0; k < tiles.Count; k++) { bool isMiddleTile = IsMiddleTile(k, j, f); TileCreator.TileTypes type = (TileCreator.TileTypes)tiles[k]; if (type == TileCreator.TileTypes.Empty) { _boardTiles[k, j, f] = null; } else { _boardTiles[k, j, f] = _tileCreator.CreateTile(new Vector3(k, j, f), isMiddleTile, type); } SelectMiddleTile(isMiddleTile, k, j, f); } } } _boardImages = new BoardImages(tilesCount); _boardImages.AddImagesToTiles(_floors, levelData.fillMethod); GetComponent <BoardMatcher>().GetAvailableMoves(); }
/// <summary> /// Asynchronously gets histogram data from whole file /// </summary> /// <param name="tiles">Image tiles</param> /// <returns>Histogram data</returns> public async Task<long[]> GetHistogramAsync(TileCreator.Tile[] tiles) { return await Task.Factory.StartNew(() => { Array.Clear(histogram, 0, histogram.Length); foreach (var tile in tiles) { var tileBytes = tile.ReadData(); for (int i = 0; i < tileBytes.Length; i++) { histogram[tileBytes[i]]++; } } return histogram; }); }
// Start is called before the first frame update void Start() { if (TileCreator.tileCreator == null) { TileCreator.tileCreator = this; } else { Destroy(this.gameObject); } tiles = new Dictionary <Vector2, Tile> [tileMap.Length]; tilePositions = new Dictionary <Vector2, int> [tileMap.Length]; for (int i = 0; i < tileMap.Length; i++) { tiles[i] = new Dictionary <Vector2, Tile>(); tilePositions[i] = new Dictionary <Vector2, int>(); } }
public override void SetData(BoardData data) { boardData = data; board = new BoardPosition[boardData.X_SIZE, boardData.Y_SIZE]; for (int x = 0; x < boardData.X_SIZE; x++) { for (int y = 0; y < boardData.Y_SIZE; y++) { Vector3 position = GetWorldPosition(x, y); TileController tile = TileCreator.CreateTile(boardData.tiles[x, y], position, SizeRatio); tile.transform.SetParent(transform, false); IBallController ball = BallCreator.GetBall(boardData.balls[x, y], SizeRatio); ball.Init(x, y, this); board[x, y] = new BoardPosition(tile, ball); } } }
private void ProcessMapData() { var offset = new Point(CurrentMap.OffsetX, CurrentMap.OffsetY); for (int y = 0; y < CurrentMap.Height; y++) { for (int x = 0; x < CurrentMap.Width; x++) { var pos = new Point(x, y) + offset; var tile = TileCreator.GetTile(new TileInfo <TileData> { Position = pos, Tile = CurrentMap.GetTileData(pos) }); if (tile != null) { TilePositions.Add(pos, tile); } } } }
/// <summary> /// 给ROM打补丁 /// </summary> /// <param name="fileName">ROM文件名</param> private static void Patch(string fileName) { Byte[] prgData = Common.GetPRGData(fileName); Byte[] chrData = Common.GetCHRData(fileName); foreach (TranslationInfo info in s_TranslationInfos) { int addrLo = TableOrganizer.GetAbsoluteAddress(info.addrLo); int addrHi = TableOrganizer.GetAbsoluteAddress(info.addrHi); int addr = TableOrganizer.GetAbsoluteAddress(info.addr); prgData[addrLo] = (Byte)((info.addr >> 0) & 0xFF); prgData[addrHi] = (Byte)((info.addr >> 8) & 0xFF); int offset = 0; foreach (TextBlockInfo ti in info.textBlocks) { for (int i = 0; i < ti.data.Count; ++i) { // 因为ASCII占据了最刚开始的若干个tile,所以这里要对汉字的idx进行偏移 int offs = 0; if (ti.data[i] >= 0x60 && ti.data[i] <= 0x7F) { offs = (int)Math.Ceiling(s_DicUniqueASCII[ti.bankNo].Length / 4.0); } prgData[addr + offset + i] = (Byte)(ti.data[i] + offs); } offset += ti.data.Count; } } foreach (KeyValuePair <int, string> kv in s_DicUniqueChars) { int bankNo = kv.Key; string uniqueChars = kv.Value; string uniqueASCII = s_DicUniqueASCII[bankNo]; TileCreator.GeneratePatternTable(ref chrData, bankNo, uniqueChars, uniqueASCII); } Common.PatchROM(fileName, prgData, chrData); }
public static void Start(string ROMFileName) { Byte[] prgData = Common.GetPRGData(ROMFileName); Byte[] chrData = Common.GetCHRData(ROMFileName); int absoluteAddr = TableOrganizer.GetAbsoluteAddress(startAddr, hataageBank); int curText = 0; int offset = 0; while (curText < cnTexts.Length) { prgData[absoluteAddr + offset] = opCodes[curText]; offset++; char[] chars = cnTexts[curText].ToCharArray(); for (int i = 0; i < chars.Length; ++i) { prgData[absoluteAddr + offset] = findChar(chars[i]); offset++; } prgData[absoluteAddr + offset] = 0xCC; offset++; prgData[absoluteAddr + offset] = 0xFF; offset++; curText++; } Byte[] data = TileCreator.CreateGiantFont(cnChars); for (int i = 0; i < data.Length; ++i) { chrData[0x10000 + i] = data[i]; } Common.PatchROM(ROMFileName, prgData, chrData); }
private void Awake() { TC = this; }
void Update() { // Look at which tile the player is on int i = 0; bool moving = true; for (; i < tilePool.Length; i++) { if (tilePool[i] != null && InRegion(tilePool[i])) { moving = false; break; } } // Check if the tile is the center tile (tilePool index 4) if (i != 4) { // Checks to make sure the player didn't just exit the for-loop because the player was moving if (!moving) { x = tilePool[i].transform.position.x; y = tilePool[i].transform.position.z; ULVector = new Vector3(x - size, 0, y + size); UVector = new Vector3(x, 0, y + size); URVector = new Vector3(x + size, 0, y + size); LVector = new Vector3(x - size, 0, y); RVector = new Vector3(x + size, 0, y); DLVector = new Vector3(x - size, 0, y - size); DVector = new Vector3(x, 0, y - size); DRVector = new Vector3(x + size, 0, y - size); // The player is not in the center region // Make new region the center and move tiles around that GameObject newCenter = tilePool[i]; GameObject pastUL = tilePool[0]; GameObject pastU = tilePool[1]; GameObject pastUR = tilePool[2]; GameObject pastL = tilePool[3]; GameObject pastC = tilePool[4]; GameObject pastR = tilePool[5]; GameObject pastDL = tilePool[6]; GameObject pastD = tilePool[7]; GameObject pastDR = tilePool[8]; // New C tile tilePool[4] = newCenter; TileCreator[] toChange; switch (i) { // Player on UL tile case 0: toChange = new TileCreator[] { pastDR.GetComponent <TileCreator>(), pastR.GetComponent <TileCreator>(), pastUR.GetComponent <TileCreator>(), pastD.GetComponent <TileCreator>(), pastDL.GetComponent <TileCreator>() }; // Remove NPCs on tiles to be moved. foreach (TileCreator tile in toChange) { tile.DeactivateNPCs(); } // New UL tile tilePool[0] = pastDR; // New U tile tilePool[1] = pastR; // New UR tile same // pastUR // New L tile tilePool[3] = pastD; // New DL tile same // pastDL // Move to the correct location tilePool[0].transform.position = ULVector; tilePool[1].transform.position = UVector; tilePool[2].transform.position = URVector; tilePool[3].transform.position = LVector; tilePool[6].transform.position = DLVector; // Add image texture to blank ground. foreach (TileCreator tile in toChange) { StartCoroutine(tile.SetTexture()); } // Place new NPCs on moved tiles. foreach (TileCreator tile in toChange) { tile.ActivateNPCs(); } //Rename tiles // New R tile tilePool[5] = pastU; // New D tile tilePool[7] = pastL; // New DR tile tilePool[8] = pastC; break; // Player on U tile case 1: toChange = new TileCreator[] { pastDL.GetComponent <TileCreator>(), pastD.GetComponent <TileCreator>(), pastDR.GetComponent <TileCreator>() }; // Remove NPCs on tiles to be moved. foreach (TileCreator tile in toChange) { tile.DeactivateNPCs(); } // New UL tile tilePool[0] = pastDL; // New U tile tilePool[1] = pastD; // New UR tile tilePool[2] = pastDR; // Move to the correct location tilePool[0].transform.position = ULVector; tilePool[1].transform.position = UVector; tilePool[2].transform.position = URVector; // Add image texture to blank ground. foreach (TileCreator tile in toChange) { StartCoroutine(tile.SetTexture()); } // Place new NPCs on moved tiles. foreach (TileCreator tile in toChange) { tile.ActivateNPCs(); } //Rename tiles // New L tile tilePool[3] = pastUL; // New R tile tilePool[5] = pastUR; // New DL tile tilePool[6] = pastL; // New D tile tilePool[7] = pastC; // New DR tile tilePool[8] = pastR; break; // Player on UR tile case 2: toChange = new TileCreator[] { pastUL.GetComponent <TileCreator>(), pastL.GetComponent <TileCreator>(), pastDL.GetComponent <TileCreator>(), pastD.GetComponent <TileCreator>(), pastDR.GetComponent <TileCreator>() }; // Remove NPCs on tiles to be moved. foreach (TileCreator tile in toChange) { tile.DeactivateNPCs(); } // New UL tile same // pastUL // New U tile tilePool[1] = pastL; // New UR tile tilePool[2] = pastDL; // New R tile tilePool[5] = pastD; // New DR tile same // pastDR // Move to the correct location tilePool[0].transform.position = ULVector; tilePool[1].transform.position = UVector; tilePool[2].transform.position = URVector; tilePool[5].transform.position = RVector; tilePool[8].transform.position = DRVector; // Add image texture to blank ground. foreach (TileCreator tile in toChange) { StartCoroutine(tile.SetTexture()); } // Place new NPCs on moved tiles. foreach (TileCreator tile in toChange) { tile.ActivateNPCs(); } //Rename tiles // New L tile tilePool[3] = pastU; // New DL tile tilePool[6] = pastC; // New D tile tilePool[7] = pastR; break; // Player on L tile case 3: toChange = new TileCreator[] { pastUR.GetComponent <TileCreator>(), pastR.GetComponent <TileCreator>(), pastDR.GetComponent <TileCreator>() }; // Remove NPCs on tiles to be moved. foreach (TileCreator tile in toChange) { tile.DeactivateNPCs(); } // New UL tile tilePool[0] = pastUR; // New L tile tilePool[3] = pastR; // New DL tile tilePool[6] = pastDR; // Move to the correct location tilePool[0].transform.position = ULVector; tilePool[3].transform.position = LVector; tilePool[6].transform.position = DLVector; // Add image texture to blank ground. foreach (TileCreator tile in toChange) { StartCoroutine(tile.SetTexture()); } // Place new NPCs on moved tiles. foreach (TileCreator tile in toChange) { tile.ActivateNPCs(); } //Rename tiles // New U tile tilePool[1] = pastUL; // New UR tile tilePool[2] = pastU; // New R tile tilePool[5] = pastC; // New D tile tilePool[7] = pastDL; // New DR tile tilePool[8] = pastD; break; // Player on R tile case 5: toChange = new TileCreator[] { pastUL.GetComponent <TileCreator>(), pastL.GetComponent <TileCreator>(), pastDL.GetComponent <TileCreator>() }; // Remove NPCs on tiles to be moved. foreach (TileCreator tile in toChange) { tile.DeactivateNPCs(); } // New UR tile tilePool[2] = pastUL; // New R tile tilePool[5] = pastL; // New DR tile tilePool[8] = pastDL; // Move to the correct location tilePool[2].transform.position = URVector; tilePool[5].transform.position = RVector; tilePool[8].transform.position = DRVector; // Add image texture to blank ground. foreach (TileCreator tile in toChange) { StartCoroutine(tile.SetTexture()); } // Place new NPCs on moved tiles. foreach (TileCreator tile in toChange) { tile.ActivateNPCs(); } //Rename tiles // New UL tile tilePool[0] = pastU; // New U tile tilePool[1] = pastUR; // New L tile tilePool[3] = pastC; // New DL tile tilePool[6] = pastD; // New D tile tilePool[7] = pastDR; break; // Player on DL tile case 6: toChange = new TileCreator[] { pastUL.GetComponent <TileCreator>(), pastU.GetComponent <TileCreator>(), pastUR.GetComponent <TileCreator>(), pastR.GetComponent <TileCreator>(), pastDR.GetComponent <TileCreator>() }; // Remove NPCs on tiles to be moved. foreach (TileCreator tile in toChange) { tile.DeactivateNPCs(); } // New UL tile // past UL // New L tile tilePool[3] = pastU; // New DL tile same tilePool[6] = pastUR; // New D tile tilePool[7] = pastR; // New DR tile same // pastDR // Move to the correct location tilePool[0].transform.position = ULVector; tilePool[3].transform.position = LVector; tilePool[6].transform.position = DLVector; tilePool[7].transform.position = DVector; tilePool[8].transform.position = DRVector; // Add image texture to blank ground. foreach (TileCreator tile in toChange) { StartCoroutine(tile.SetTexture()); } // Place new NPCs on moved tiles. foreach (TileCreator tile in toChange) { tile.ActivateNPCs(); } //Rename tiles // New U tile tilePool[1] = pastL; // New UR tile tilePool[2] = pastC; // New R tile tilePool[5] = pastD; break; // Player on D tile case 7: toChange = new TileCreator[] { pastUL.GetComponent <TileCreator>(), pastU.GetComponent <TileCreator>(), pastUR.GetComponent <TileCreator>() }; // Remove NPCs on tiles to be moved. foreach (TileCreator tile in toChange) { tile.DeactivateNPCs(); } // New DL tile tilePool[6] = pastUL; // New D tile tilePool[7] = pastU; // New DR tile tilePool[8] = pastUR; // Move to the correct location tilePool[6].transform.position = DLVector; tilePool[7].transform.position = DVector; tilePool[8].transform.position = DRVector; // Add image texture to blank ground. foreach (TileCreator tile in toChange) { StartCoroutine(tile.SetTexture()); } // Place new NPCs on moved tiles. foreach (TileCreator tile in toChange) { tile.ActivateNPCs(); } //Rename tiles // New U tile tilePool[0] = pastL; // New UR tile tilePool[1] = pastC; // New L tile tilePool[2] = pastR; // New R tile tilePool[3] = pastDL; // New DL tile tilePool[5] = pastDR; break; // Player on DR tile case 8: toChange = new TileCreator[] { pastU.GetComponent <TileCreator>(), pastUL.GetComponent <TileCreator>(), pastL.GetComponent <TileCreator>(), pastUR.GetComponent <TileCreator>(), pastDL.GetComponent <TileCreator>() }; // Remove NPCs on tiles to be moved. foreach (TileCreator tile in toChange) { tile.DeactivateNPCs(); } // New UR tile // pastUR // New R tile tilePool[5] = pastU; // New DR tile tilePool[8] = pastUL; // New D tile tilePool[7] = pastL; // New DL tile same // pastDL // Move to the correct location tilePool[2].transform.position = URVector; tilePool[5].transform.position = RVector; tilePool[6].transform.position = DLVector; tilePool[7].transform.position = DVector; tilePool[8].transform.position = DRVector; // Add image texture to blank ground. foreach (TileCreator tile in toChange) { StartCoroutine(tile.SetTexture()); } // Place new NPCs on moved tiles. foreach (TileCreator tile in toChange) { tile.ActivateNPCs(); } //Rename tiles // New DL tile tilePool[0] = pastC; // New D tile tilePool[1] = pastR; // New DR tile tilePool[3] = pastD; break; default: break; } } } }
void Start() { Tc = GetComponent <TileCreator>(); y = 30; }
private void Awake() { instance = this; }
void OnEnable() { tileCreator = (TileCreator)target; }