public void addTileSwap(TileBase swapTile, float swapTime, Vector3Int position) { TileSwapInfo info = new TileSwapInfo(swapTile, swapTime, position); swaps.Add(info); positionToSwapInfo.Add(position, info); }
public void moveSwap(Vector3Int from, Vector3Int to) { if (!positionToSwapInfo.ContainsKey(from)) { return; } TileSwapInfo swap = positionToSwapInfo[from]; removeSwap(swap.position); addTileSwap(swap.swapTile, swap.swapTime, to); }
void Update() { while (true) { if (swaps.Count == 0) { return; } TileSwapInfo swap = swaps[0]; if (swap.swapTime <= Time.time) { positionToSwapInfo.Remove(swap.position); swaps.RemoveAt(0); tilemap.SetTile(swap.position, swap.swapTile); } else { break; } } }