public void Init(TileDatas datas, Vector2 positionInGrid) { ResetListeners(); Type = datas.m_TileType; m_Renderer.RendererObject.SetActive(Type != TileType.EMPTY); if (Type == TileType.EMPTY) { IsActive = false; m_IsLock = true; return; } BoardManager.Instance.Spawner.TilesContainer.GetEventsDatasOfType(Type).Init(this); m_Renderer.Datas = datas; m_Renderer.ResetTile(); m_Renderer.IsBouncing = false; m_Renderer.IsGrowing = false; m_Renderer.IsShaking = false; Face.Init(datas); m_GridPosition = positionInGrid; IsMouseOver = false; IsEventMouseOver = false; IsLock = false; m_IsActive = false; m_OnMouseOver.AddListener(() => IsEventMouseOver = true); m_OnMouseExit.AddListener(() => IsEventMouseOver = false); }
public void ReceiveEventMessage(EventMessage message) { switch (message.m_MessageType) { case EventMessage.MessageType.IS_ACTIVE: IsActive = message.m_BoolParam; break; case EventMessage.MessageType.IS_GROWING: m_Renderer.IsGrowing = message.m_BoolParam; break; case EventMessage.MessageType.IS_SHAKING: m_Renderer.IsShaking = message.m_BoolParam; break; case EventMessage.MessageType.IS_LOCK: IsLock = message.m_BoolParam; break; case EventMessage.MessageType.SPAWN_TILE: if (Type == TileType.EMPTY) { TileDatas newDatas = BoardManager.Instance.Spawner.GetDataOfType(message.m_TileTypeParam); Init(newDatas, m_GridPosition); Type = newDatas.m_TileType; m_IsActive = true; BoardManager.Instance.Board.SetNewTile(this, (int)m_GridPosition.x, (int)m_GridPosition.y); } break; case EventMessage.MessageType.SWITCH_FACE: m_FaceManager.SwitchFace(message.m_FaceTypeParam); break; case EventMessage.MessageType.ACTIVATE_ON_MOUSE_OVER: if (IsActive && !IsEventMouseOver) { IsEventMouseOver = true; m_OnMouseOver.Invoke(); } break; case EventMessage.MessageType.ACTIVATE_ON_MOUSE_EXIT: m_OnMouseExit.Invoke(); break; case EventMessage.MessageType.FLEE: break; } }
private void SearchNextName(object sender, EventArgs e) { bool res = TileDatas.SearchName(textBoxItemName.Text, true, _land); if (res) { return; } DialogResult result = MessageBox.Show("No item found", "Result", MessageBoxButtons.OKCancel, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1); if (result == DialogResult.Cancel) { Close(); } }
public static void Draw(Texture2D text, Vector3Int center) { TileDatas wall = DataMap.GetWallTiles(); TileDatas back = DataMap.GetBackTiles(); if (tilemapCR == null) { Debug.Log("Null CR"); } if (tilemapN == null) { Debug.Log("Null N"); } Vector3Int StartPosition = center - new Vector3Int(text.width / 2, text.height / 2, 0) - new Vector3Int(1, 1, 0); for (int x = StartPosition.x; x < StartPosition.x + text.width + 2; x++) { for (int y = StartPosition.y; y < StartPosition.y + text.height + 2; y++) { Vector3Int pos = new Vector3Int(x, y, 0); if (x == StartPosition.x || x == StartPosition.x + text.width + 1 || y == StartPosition.y || y == StartPosition.y + text.height + 1) { if (wall != null) { tilemapCR.SetTile(pos, wall.GetTile()); } } else { Vector2Int pixelVector = (Vector2Int)(pos - StartPosition) - Vector2Int.one; TileDatas tiles = DataMap.GetBarrierTiles(text.GetPixel(pixelVector.x, pixelVector.y)); if (tiles != null) { tilemapCR.SetTile(pos, tiles.GetTile()); } if (back != null) { tilemapN.SetTile(pos, back.GetTile()); } } } } }
private void OnClickApplyFilterLand(object sender, EventArgs e) { LandData land = new LandData(); string name = textBoxNameLand.Text; if (name.Length > 20) { name = name.Substring(0, 20); } land.Name = name; if (short.TryParse(textBoxTexID.Text, out short shortres)) { land.TextureID = shortres; } land.Flags = TileFlag.None; if (checkedListBox2.GetItemChecked(0)) { land.Flags |= TileFlag.Damaging; } if (checkedListBox2.GetItemChecked(1)) { land.Flags |= TileFlag.Wet; } if (checkedListBox2.GetItemChecked(2)) { land.Flags |= TileFlag.Impassable; } if (checkedListBox2.GetItemChecked(3)) { land.Flags |= TileFlag.Wall; } if (checkedListBox2.GetItemChecked(4)) { land.Flags |= TileFlag.Unknown3; } TileDatas.ApplyFilterLand(land); }
public void SpawnTile(TileManager.TileType currentTileType, int posX, int posY) { TileDatas datas = GetDataOfType(currentTileType); TileManager.TileType tileOnBoard = m_BoardManager.Board.GetTileType(posX, posY); GameObject tileSpawned = m_TileGetter.GetTileAvailable(); tileSpawned.SetActive(true); tileSpawned.transform.parent = m_CurrentLevelContainer; tileSpawned.transform.localPosition = new Vector2(posX * m_Settings.COLUMN_DISPLACEMENT, posY * m_Settings.RAW_DISPLACEMENT); TileManager tile = tileSpawned.GetComponent <TileManager>(); if (datas == null) { datas = GetDataOfType(TileManager.TileType.EMPTY); } tile.Init(datas, new Vector2(posX, posY)); m_BoardManager.Board.InitTile(tile, posX, posY); }
private void SearchGraphic(object sender, EventArgs e) { if (!Utils.ConvertStringToInt(textBoxGraphic.Text, out int graphic, 0, Ultima.Art.GetMaxItemID())) { return; } bool res = TileDatas.SearchGraphic(graphic, _land); if (res) { return; } DialogResult result = MessageBox.Show("No item found", "Result", MessageBoxButtons.OKCancel, MessageBoxIcon.Error, MessageBoxDefaultButton.Button2); if (result == DialogResult.Cancel) { Close(); } }
private void OnClickApplyFilterItem(object sender, EventArgs e) { ItemData item = new ItemData(); string name = textBoxName.Text; if (name.Length > 20) { name = name.Substring(0, 20); } item.Name = name; if (short.TryParse(textBoxAnim.Text, out short shortres)) { item.Animation = shortres; } if (byte.TryParse(textBoxWeight.Text, out byte byteres)) { item.Weight = byteres; } if (byte.TryParse(textBoxQuality.Text, out byteres)) { item.Quality = byteres; } if (byte.TryParse(textBoxQuantity.Text, out byteres)) { item.Quantity = byteres; } if (byte.TryParse(textBoxHue.Text, out byteres)) { item.Hue = byteres; } if (byte.TryParse(textBoxStackOff.Text, out byteres)) { item.StackingOffset = byteres; } if (byte.TryParse(textBoxValue.Text, out byteres)) { item.Value = byteres; } if (byte.TryParse(textBoxHeigth.Text, out byteres)) { item.Height = byteres; } if (short.TryParse(textBoxUnk1.Text, out shortres)) { item.MiscData = shortres; } if (byte.TryParse(textBoxUnk2.Text, out byteres)) { item.Unk2 = byteres; } if (byte.TryParse(textBoxUnk3.Text, out byteres)) { item.Unk3 = byteres; } item.Flags = TileFlag.None; Array enumValues = Enum.GetValues(typeof(TileFlag)); for (int i = 0; i < checkedListBox1.Items.Count; ++i) { if (checkedListBox1.GetItemChecked(i)) { item.Flags |= (TileFlag)enumValues.GetValue(i + 1); } } TileDatas.ApplyFilterItem(item); }
public void Init(TileDatas datas) { m_FaceDatas = datas.m_FaceDatas; SwitchFace(FaceType.NEUTRAL); }
// Hãy gọi hàm này sau khi Draw hết tất cả cá Round public static void DrawConnect(Vector3Int start, Vector3Int end) { //Vertical if (start.x == end.x) { // Xóa Tile đễ làm cầu dẫn for (int i = start.x - 2; i < start.x + 2; i++) { Vector3Int pos = new Vector3Int(i, start.y - 1, 0); tilemapCR.SetTile(pos, null); pos = new Vector3Int(i, end.y, 0); tilemapCR.SetTile(pos, null); } // Xây Cầu dẫn TileDatas wall = DataMap.GetWallTiles(); if (wall == null) { Debug.Log("Chưa có dữ liệu TileWall cho " + MAP_GamePlay.CodeMapcurent.ToString() + " mà đã chạy rồi, chán thanh niên"); return; } for (int i = start.y; i < end.y; i++) { Vector3Int pos = new Vector3Int(start.x - 3, i, 0); Tile tile = wall.GetTile(); tilemapCR.SetTile(pos, tile); pos = new Vector3Int(start.x + 2, i, 0); tile = wall.GetTile(); tilemapCR.SetTile(pos, tile); } // Xây Back TileDatas back = DataMap.GetBackTiles(); for (int x = start.x - 2; x < start.x + 2; x++) { for (int y = start.y - 1; y < end.y + 1; y++) { Vector3Int pos = new Vector3Int(x, y, 0); tilemapN.SetTile(pos, back.GetTile()); } } } // Horizotal else if (start.y == end.y) { // Xóa Tile đễ làm cầu dẫn for (int i = start.y - 2; i < start.y + 2; i++) { Vector3Int pos = new Vector3Int(start.x - 1, i, 0); tilemapCR.SetTile(pos, null); pos = new Vector3Int(end.x, i, 0); tilemapCR.SetTile(pos, null); } // Xây Cầu dẫn TileDatas wall = DataMap.GetWallTiles(); if (wall == null) { Debug.Log("Chưa có dữ liệu TileWall cho " + MAP_GamePlay.CodeMapcurent.ToString() + " mà đã chạy rồi, chán thanh niên"); return; } for (int i = start.x; i < end.x; i++) { Vector3Int pos = new Vector3Int(i, start.y - 3, 0); Tile tile = wall.GetTile(); tilemapCR.SetTile(pos, tile); pos = new Vector3Int(i, start.y + 2, 0); tile = wall.GetTile(); tilemapCR.SetTile(pos, tile); } // Xây Back TileDatas back = DataMap.GetBackTiles(); for (int x = start.x - 1; x < end.x + 1; x++) { for (int y = start.y - 2; y < start.y + 2; y++) { Vector3Int pos = new Vector3Int(x, y, 0); tilemapN.SetTile(pos, back.GetTile()); } } } else { Debug.Log(start + " & " + end + " thế này rồi làm cầu dẫn kiểu gì?"); } }