private void HandleDestroyIdle() { RaycastHit2D hit; if (bRaycastHit(m_moveMask, out hit)) { IngameBuilding buildingHit = hit.transform.GetComponentInParent <IngameBuilding>(); if (buildingHit != m_buildingCurrent) { DeHighlightCurrentBuilding(); m_buildingCurrent = buildingHit; m_buildingCurrent.Visual.Highlight(Colors.Instance.BuildingDestroy); } if (m_buildingCurrent != null) { if (Input.GetMouseButtonDown(0)) { EnterDestroyConfirm(); } } } else { DeHighlightCurrentBuilding(); m_buildingCurrent = null; } if (Input.GetMouseButtonDown(1)) { EnterIdleMode(); } }
private void CancelDestroyBuilding() { DeHighlightCurrentBuilding(); m_buildingCurrent = null; m_destroyMenu.gameObject.SetActive(false); EnterDestroyMode(); }
public void AddMathSignBuildingPair(IngameBuilding a, IngameBuilding b) { if (MathSignPairs.Count == 0) { MathSignPairs.Add(new IngameBuildingPair(a, b)); } else { bool hasPair = false; for (int i = MathSignPairs.Count - 1; i >= 0; i--) { IngameBuildingPair buildingPair = MathSignPairs[i]; if (buildingPair.HasPair(a, b)) { hasPair = true; break; } } if (!hasPair) { MathSignPairs.Add(new IngameBuildingPair(a, b)); } } ReDrawAllMathSigns(); }
public List <IngameBuilding> GetAdjacentBuildings() { List <IngameBuilding> adjacentBuildings = new List <IngameBuilding>(); Index positionIndex = m_tile.PositionIndex; foreach (GridTile adjacentTile in m_tile.GetAdjacentTiles()) { //Abbruchbedingungen if (adjacentTile.ContainedObject == null) { continue; } if (adjacentTile.ContainedObject.GetComponent <IngameBuilding>() == null) { continue; } IngameBuilding building = adjacentTile.ContainedObject.GetComponent <IngameBuilding>(); if (!adjacentBuildings.Contains(building)) { adjacentBuildings.Add(building); } } return(adjacentBuildings); }
private IngameBuilding CreateBuilding() { IngameBuilding building = Instantiate(ShopItemManager.Instance.ingameBuildingPrefab); building.Initialize(m_dataCurrent); return(building); }
private void ConfirmDestroyBuilding() { m_buildingCurrent.OnDestroyBuilding(); m_buildingCurrent.Tile.ContainedObject = null; DeHighlightCurrentBuilding(); Destroy(m_buildingCurrent.gameObject); m_buildingCurrent = null; EnterDestroyIdle(); }
private void EnterIdleMode() { DeHighlightCurrentBuilding(); m_placementVisual.gameObject.SetActive(false); EnterState(ControlState.Idle); m_dataCurrent = null; m_currentBuildTile = null; m_buildingCurrent = null; }
public void RemoveMathSignBuildingPair(IngameBuilding a, IngameBuilding b) { for (int i = MathSignPairs.Count - 1; i >= 0; i--) { IngameBuildingPair buildingPair = MathSignPairs[i]; if (buildingPair.HasPair(a, b)) { MathSignPairs.RemoveAt(i); } } }
public bool HasPair(IngameBuilding a, IngameBuilding b) { if (BuildingA == a || BuildingA == b) { if (BuildingB == a || BuildingB == b) { return(true); } } return(false); }
public void RemoveMathSignBuilding(IngameBuilding building) { for (int i = MathSignPairs.Count - 1; i >= 0; i--) { IngameBuildingPair buildingPair = MathSignPairs[i]; if (buildingPair.BuildingA == building || buildingPair.BuildingB == building) { MathSignPairs.RemoveAt(i); } } }
private bool bTryPlaceBuilding(GridTile _tile) { if (!bCanPlaceBuilding(m_dataCurrent.eType, _tile)) { return(false); } if (!bCanBuyBuilding(m_dataCurrent.iWorkerCost)) { return(false); } IngameBuilding building = CreateBuilding(); PlaceBuilding(building, _tile); BuyBuilding(); return(true); }
public MathSign CreateMathSign(MathSigns _eType, IngameBuilding _buildingA, IngameBuilding _buildingB) { Vector3 v3PosA = _buildingA.transform.position; Vector3 v3PosB = _buildingB.transform.position; Vector3 v3DirAB = v3PosB - v3PosA; Vector3 v3PosMidAB = v3PosA + v3DirAB * .5f; Vector3 v3TargetWorldPos = v3PosMidAB; Vector2 v2TargetViewportPos = Camera.main.WorldToViewportPoint(v3TargetWorldPos); Vector2 v2CanvasSize = GetComponent <RectTransform>().sizeDelta; Vector2 v2TargetGuiPos = new Vector2(v2CanvasSize.x * v2TargetViewportPos.x, v2CanvasSize.y * v2TargetViewportPos.y); MathSign sign = Instantiate(p_mathSign, transform, false); sign.GetComponent <RectTransform>().anchoredPosition = v2TargetGuiPos; sign.transform.SetAsFirstSibling(); sign.Initialize(_eType); return(sign); }
private void PlaceBuilding(IngameBuilding _building, GridTile _tile) { _building.transform.position = _tile.transform.position; _building.SetTile(_tile); _tile.ContainedObject = _building.gameObject; }
private void Close() { m_building = null; gameObject.SetActive(false); }
public void Initialize(IngameBuilding _building, OnConfirmDestroyCallback _confirmCallback, OnCancelDestroyCallback _cancelCallback) { m_building = _building; m_onConfirmCallback = _confirmCallback; m_onCancelCallback = _cancelCallback; }
public IngameBuildingPair(IngameBuilding buildingA, IngameBuilding buildingB) { BuildingA = buildingA; BuildingB = buildingB; }
private void MoveBuilding(IngameBuilding _building, GridTile _targetTile) { m_tileBeginMove.ContainedObject = null; PlaceBuilding(m_buildingCurrent, _targetTile); }