// Change specific tile type public void SetTileArrayType(Vector3 worldPosition, TileArrayObject.TileArrayType tileArrayType) { TileArrayObject tileArrayObject = grid.GetGridObject(worldPosition); if (tileArrayObject != null) { tileArrayObject.SetTileArrayType(tileArrayType); } grid.TriggerGridObjectChanged(worldPosition); }
// Change flag status public void SetFlagStatus(Vector3 worldPosition) { TileArrayObject tileArrayObject = grid.GetGridObject(worldPosition); if (tileArrayObject != null) { tileArrayObject.SetFlag(!tileArrayObject.IsFlagged()); } grid.TriggerGridObjectChanged(worldPosition); }
// Get specific tile type public TileArrayObject.TileArrayType GetTileArrayType(Vector3 worldPosition) { TileArrayObject tileArrayObject = grid.GetGridObject(worldPosition); if (tileArrayObject != null) { return(tileArrayObject.GetTileArrayType()); } else { return(new TileArrayObject.TileArrayType()); } }
// Update display public void UpdateVisual(GridArray <TileArrayObject> grid) { HideNodeVisuals(); for (int row = 0; row < grid.GetHeight(); row++) { for (int col = 0; col < grid.GetWidth(); col++) { TileArrayObject gridObject = grid.GetGridObject(row, col); Transform visualNode = visualNodeArray[row, col]; visualNode.gameObject.SetActive(true); SetupVisualNode(visualNode, gridObject); } } }
// Setup visual node according to different situation private void SetupVisualNode(Transform visualNodeTransform, TileArrayObject tileArrayObject) { SpriteRenderer iconSpriteRenderer = visualNodeTransform.Find("Icon").GetComponent <SpriteRenderer>(); TextMeshPro numberText = visualNodeTransform.Find("Number").GetComponent <TextMeshPro>(); Transform emptyTransform = visualNodeTransform.Find("Empty"); /* TODO */ // Node is hidden emptyTransform.gameObject.SetActive(true); numberText.gameObject.SetActive(false); if (tileArrayObject.IsFlagged()) { iconSpriteRenderer.gameObject.SetActive(true); iconSpriteRenderer.sprite = flagSprite; } else { iconSpriteRenderer.gameObject.SetActive(false); } }