private void HandleClickingStuff() { if (Input.GetKeyDown(KeyCode.Escape)) { FSM.SetTrigger("Deselect"); } if (Input.GetMouseButtonDown(0)) { RaycastHit hit; Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hit, 100.0f)) { if (hit.transform.gameObject.CompareTag("Unit")) { SelectedUnit = hit.transform.gameObject.GetComponent <UnitRenderer>(); FSM.SetTrigger("UnitClicked"); } else if (hit.transform.gameObject.CompareTag("Target")) { if (OnTargetClick != null) { OnTargetClick(this, hit.transform.position); } } else { FSM.SetTrigger("Deselect"); //TODO: let FSM handle this stuff } } } }
/// <summary> /// Occurs when this scene is entered /// </summary> public override void Enter() { // setup graphics resources sbGUI = new SpriteBatch(GraphicsManager.Instance.Device); sbFore = new SpriteBatch(GraphicsManager.Instance.Device); sbBack = new SpriteBatch(GraphicsManager.Instance.Device); font = Engine.Instance.Content.GetAsset <Font>(Constants.ASSET_FONT_CONSOLE); camera = new Camera2(); boardRenderer = new BoardRenderer(manager.Client, camera); unitRenderer = new UnitRenderer(boardRenderer, camera, manager.Client); camera.Translation = boardRenderer.GetTileCentre(manager.Client.GetMyUnits()[0].Location); camera.TranslationTarget = camera.Translation; // set up gui elements canvas = new Canvas(GraphicsManager.Instance.Viewport.Bounds); ConsoleForm consoleForm = new ConsoleForm(canvas); GUI_Map map = new GUI_Map(camera, manager.Client, boardRenderer, canvas); GUI_StatusBar statusBar = new GUI_StatusBar(manager.Client, this, canvas); GUI_EndTurn endTurn = new GUI_EndTurn(manager.Client, canvas); CityList = new GUI_CityList(manager.Client, this, canvas); UnitList = new GUI_UnitList(manager.Client, this, canvas); UnitActions = new GUI_UnitActions(manager.Client, this, camera, boardRenderer, canvas); CityManagment = new GUI_CityManagment(manager.Client, this, canvas); GUI_NamePlates namePlates = new GUI_NamePlates(manager.Client, canvas, camera, boardRenderer); TechTree = new GUI_Tech(manager.Client, this, canvas); GameMenu = new GUI_GameMenu(manager.Client, this, canvas); SocialPolicy = new GUI_SocialPolicy(manager.Client, this, canvas); }
public void CreateUnitRenderer(Unit unit) { UnitRenderer unitRenderer = Instantiate(unitRendererPrefab, transform); unitRenderer.Setup(unit); unitRenderers.Add(unitRenderer); }
public void RemoveVisual() { if (visual != null) { ObjectPool.Destroy(visual); visual = null; } }
/// <summary> /// Creates and presents the Preferences dialog to the user. /// </summary> /// <param name="mapRenderer">The map to render as a minimap.</param> /// <param name="unitRenderer">The units to render to the minimap.</param> /// <param name="onCloseCB">The callback fired when the dialog closes.</param> public static MinimapDialog Create(MapRenderer mapRenderer, UnitRenderer unitRenderer, OnCloseCallback onCloseCB = null) { GameObject goDialog = Instantiate(Resources.Load <GameObject>("Dialogs/MinimapDialog")); MinimapDialog dialog = goDialog.GetComponent <MinimapDialog>(); dialog.Initialize(mapRenderer, unitRenderer, onCloseCB); return(dialog); }
/// <summary> /// Creates and presents the Mission Variants dialog to the user. /// </summary> public static MissionVariantsDialog Create(UnitRenderer unitRenderer) { GameObject goDialog = Instantiate(Resources.Load <GameObject>("Dialogs/MissionVariantsDialog")); MissionVariantsDialog dialog = goDialog.GetComponent <MissionVariantsDialog>(); dialog.Initialize(unitRenderer); return(dialog); }
public void ClearHighlights() { foreach (var unit in _unitRegistry.GetAllUnits()) { // TODO: Maybe expose UnitRenderer only to the interested parties instead of using "GetComponent" UnitRenderer unitRenderer = _unitTransformRegistry .GetTransformableUnit(unit.UnitId).Transform.GetComponent <UnitRenderer>(); unitRenderer.SetSelected(true); } }
private void Initialize(MapRenderer mapRenderer, UnitRenderer unitRenderer, OnCloseCallback onCloseCB) { m_MapRenderer = mapRenderer; m_UnitRenderer = unitRenderer; m_OnCloseCB = onCloseCB; mapRenderer.onMapRefreshedCB += OnMapRefreshed; m_UnitRenderer.onRefreshedCB += OnUnitRendererRefreshed; OnMapRefreshed(mapRenderer); }
public static void Set(PerformerTask newTask) { if (!newTask.Enabled) { return; } task = newTask; roadTask = task is ConstructRoad; bool seedTask = task is PlantSeed; System.Type[] taskTypes; if (roadTask) { taskTypes = new [] { typeof(Road) }; } else if (seedTask) { taskTypes = new [] { typeof(Seed) }; } else { taskTypes = task.GetType().GetGenericArguments(); } if (taskTypes.Length > 0) { string renderer = UnitRenderer.GetRenderer(DataManager.GetUnitSymbol(taskTypes[0])); visual = ObjectPool.Instantiate(renderer) as UnitRenderer; visual.SetAlpha(0.33f); GameCursor.Instance.SetVisual(task, visual); } GameCursor.Instance.onClick += OnClick; if (roadTask) { Events.instance.AddListener <ClickConnectionEvent> (OnClickConnectionEvent); Events.instance.AddListener <MouseEnterConnectionEvent> (OnMouseEnterConnectionEvent); Events.instance.AddListener <MouseExitConnectionEvent> (OnMouseExitConnectionEvent); } else { Events.instance.AddListener <ClickPointEvent> (OnClickPointEvent); Events.instance.AddListener <MouseEnterPointEvent> (OnMouseEnterPointEvent); Events.instance.AddListener <MouseExitPointEvent> (OnMouseExitPointEvent); } }
private void Initialize(UnitRenderer unitRenderer) { m_UnitRenderer = unitRenderer; UserData.current.onChangedValuesCB += OnChanged_UserData; // Initialize display m_DropdownMissionVariant.value = UserData.current.selectedVariantIndex >= 0 ? UserData.current.selectedVariantIndex + 1 : 0; m_InputVariantName.SetTextWithoutNotify(UserData.current.selectedVariant.name); m_InputVariantName.interactable = UserData.current.selectedVariantIndex >= 0; m_DropdownDifficulty.value = UserData.current.selectedDifficultyIndex >= 0 ? UserData.current.selectedDifficultyIndex + 1 : 0; RefreshVariantDropdown(); RefreshDifficultyDropdown(); }
private void OnUnitRemoved(UnitRemovedFromMap e) { UnitRenderer removedRenderer = null; foreach (UnitRenderer unitRenderer in unitRenderers) { if (unitRenderer.unit == e.unit) { removedRenderer = unitRenderer; break; } } if (removedRenderer != null) { unitRenderers.Remove(removedRenderer); removedRenderer.OnRemoval(); } }
private void Awake() { unitRendererPrefab = Resources.Load <UnitRenderer>("Prefabs/UnitRenderer"); }
public void SetVisual(PerformerTask task, UnitRenderer newVisual) { RemoveVisual(); this.visual = newVisual; StartCoroutine(CoVisualFollowCursor(task)); }