private void Awake() { BuildingsManagerBehaviour.Self = this; BuildingsManagerBehaviour.Visibles = new List <GameObject>(); BuildingsManagerBehaviour.Buildings = new List <GameObject>(); }
/** * <summary> * Unselect and set the slot inactive * </summary> * * <returns> * void * </returns> */ public void Unselect() { if (BuilderActionComponentUI.ActiveSlot == null) { return; } this.outline.effectColor = this.defaultColor; GameObject previewGameObject = BuilderActionComponentUI.ActiveSlot.GetComponent <BuildingSlotUI>().GetPreview(); previewGameObject.transform.localPosition = Vector3.zero; BuilderActionComponentUI.PreviewFollow = false; BuilderActionComponentUI.ActiveSlot = null; // For better alignment, may change in the future? this.preview.GetComponent <BuildingPreviewBehaviour>().TurnRenderer(false); MouseBehaviour.Mode = MouseMode.Default; // Show all visible renderers and hide placement (buildings, and resources) BuildingsManagerBehaviour.TurnRenderers(true); ResourcesManagerBehaviour.TurnRenderers(true); BuildingsManagerBehaviour.TurnPlacementIndicator(false); ResourcesManagerBehaviour.TurnPlacementIndicator(false); this.select = false; }
public void OnPointerClick(PointerEventData pointerEventData) { if (pointerEventData.button == PointerEventData.InputButton.Left) { GameObject selectedObject = BuildingsManagerBehaviour.SelectedBuilding; BuildingsManagerBehaviour.UnselectBuilding(); MonoBehaviour.Destroy(selectedObject); NavMeshSurfacesManager.BuildNavMesh(); } }
/** * <summary> * Select a given building * </summary> * * <param name="building"></param> * * <returns> * void * </returns> */ public static void SelectBuilding(GameObject building) { // Unselect previous building BuildingsManagerBehaviour.UnselectBuilding(); // Unselect units if (UnitsManagerBehaviour.SelectedUnits != null) { UnitsManagerBehaviour.UnselectGameObjects(); } // Unselect previous resource if (ResourcesManagerBehaviour.SelectedResource != null) { ResourcesManagerBehaviour.UnselectResource(); } BuildingBehaviour buildingBehaviour = building.GetComponent <BuildingBehaviour>(); buildingBehaviour.SetSelect(true); // Show info component panel Self.infoComponentPanel.SetActive(true); Self.infoComponentPanel .transform .Find("Single") .gameObject .SetActive(true); BuildingUI buildingUI = buildingBehaviour.GetUI() .GetComponent <BuildingUI>(); InfoComponentPanelUI infoComponentPanelUI = Self.infoComponentPanel.GetComponent <InfoComponentPanelUI>(); infoComponentPanelUI.SetName(building.name); infoComponentPanelUI.SetHealth(buildingBehaviour.GetHealth(), buildingBehaviour.GetMaxHealth()); infoComponentPanelUI.SetIcon(buildingUI.GetIcon()); // Show action component panel Self.actionComponentPanel.SetActive(true); // Set selected building BuildingsManagerBehaviour.SelectedBuilding = building; }
/** * <summary> * On mouse over * </summary> * * <returns> * void * </returns> */ private void OnMouseOver() { if (MouseBehaviour.Mode == MouseMode.Build) { return; } // Prevent selectino through the bottom UI if (ComponentPanelsUI.OnUI) { return; } MouseBehaviour.Mode = MouseMode.OverBuilding; // Right clicked if (Input.GetMouseButtonDown(1)) { if (this.IsActivated() || UnitsManagerBehaviour.SelectedUnits.Count == 0) { return; } GameObject unit = UnitsManagerBehaviour.SelectedUnits[0]; UnitBehaviour unitBehaviour = unit.GetComponent <UnitBehaviour>(); if (unitBehaviour is BuilderBehaviour) { ((BuilderBehaviour)unitBehaviour).StartConstruction(this.gameObject); } } // Left clicked else if (Input.GetMouseButtonDown(0)) { BuildingBehaviour buildingBehaviour = this.gameObject.GetComponent <BuildingBehaviour>(); if (buildingBehaviour != null && buildingBehaviour.IsConstructed()) { BuildingsManagerBehaviour.SelectBuilding(this.gameObject); } } }
/** * <summary> * Select and set the slot active * </summary> * * <returns> * void * </returns> */ public void Select() { this.outline.effectColor = new Color((255 / 255), (0f / 255f), (0f / 255f), 1); BuilderActionComponentUI.PreviewFollow = true; BuilderActionComponentUI.ActiveSlot = this.gameObject; // For better alignment, may change in the future? this.preview.GetComponent <BuildingPreviewBehaviour>().TurnRenderer(false); MouseBehaviour.Mode = MouseMode.Build; // Hide all visible renderers and show placement (buildings, and resources) BuildingsManagerBehaviour.TurnRenderers(false); ResourcesManagerBehaviour.TurnRenderers(false); BuildingsManagerBehaviour.TurnPlacementIndicator(true); ResourcesManagerBehaviour.TurnPlacementIndicator(true); this.select = true; }
/** * <summary> * On unit selected * </summary> */ public virtual void OnSelected() { // Stop selection through the UI. if (ComponentPanelsUI.OnUI) { return; } // Unselect resources if (ResourcesManagerBehaviour.SelectedResource != null) { ResourcesManagerBehaviour.UnselectResource(); } // Unselect building if (BuildingsManagerBehaviour.SelectedBuilding != null) { BuildingsManagerBehaviour.UnselectBuilding(); } this.UI.SetActive(true); }
/** * <summary> * On left mouse up * </summary> * * <returns> * void * </returns> */ private void OnLeftMouseUp() { // Stop scrolling, if the mouse is over UI or in build mode. if (!this.drag) { return; } // Is pointer up on the component panels UI, stop the selection if (ComponentPanelsUI.OnUI) { this.drag = false; this.HideSelectionArea(); return; } RectTransform areaRect = this.area.GetComponent <RectTransform>(); // Set final mouse position this.mousePosition.SetFinalPosition(this.transform.position); Bounds cameraViewportBounds = MouseScreenBehaviour.GetViewportBounds( this.mousePosition.GetInitialPosition(), this.mousePosition.GetFinalPosition() ); ResourcesManagerBehaviour.UnselectResource(); BuildingsManagerBehaviour.UnselectBuilding(); UnitsManagerBehaviour.UnselectGameObjects(); this.mouseSelectionBehaviour.SelectGameObjects(UnitsManagerBehaviour.Visibles, cameraViewportBounds); this.drag = false; this.HideSelectionArea(); }