예제 #1
0
        private void Start()
        {
            mySelector = SelectionHandler.GetUsedSelector();

            if (associatedTaskEditMenu != null)
                associatedTaskEditMenu.SetActiveRecursivelyExt(false);
        }
예제 #2
0
        private void RegisterUnitToOrdob_Aux(Unit u)
        {
            var tve = AddTreeViewElement(u);

            var binder = new MultiEventObserver();

            BindSelectionEvent(binder,
                               (sender, args) => {
                //Debug.Log("Triggered by direct selection status change.");
                if (sender is Unit)
                {
                    tve.ActualOnPointerDown(null);
                }
            }, u);

            tve.BindPressEvent(binder,
                               (sender, args) => {
                //Debug.Log("Triggered by direct button status change (click)");
                if (args is SimpleEventArgs)
                {
                    if ((bool)(args as SimpleEventArgs).args[0])
                    {
                        SelectionHandler.GetUsedSelector().SelectEntity(u);
                    }
                    else
                    {
                        SelectionHandler.GetUsedSelector().DeselectEntity(u);
                    }
                }
            });

            trackedUnitsTVEs.Add(tve);
        }
예제 #3
0
        private void OnPointerClickDelegate(PointerEventData data)
        {
            if (!paused)
            {
                if (isEditing)
                {
                    if (UIHandler.EventSystemPointedGameObjects().Count > 1)
                    {
                        ExitPlacementUIMode();
                        ConfirmPositioning(false);
                        DestroyThis();
                    }
                    else
                    {
                        AddTargetMarker(FirePositionMarker.CreateFirePositionMarker(GetWorldPosition(), 10f));

                        if (!Input.GetKey(KeyCode.LeftShift))
                        {
                            ExitPlacementUIMode();
                            ConfirmPositioning(true);
                        }
                    }
                }
                else
                {
                    if (expanded)
                    {
                        SelectionHandler.GetUsedSelector().DeselectEntity(this);
                        expanded = false;
                        //Contract();
                    }
                    else
                    {
                        SelectionHandler.GetUsedSelector().SelectEntity(this);
                        expanded = true;
                        //Expand();
                    }
                }
            }
        }
예제 #4
0
        private void UITaskMarkerCreationAndTaskBuilding<T>(List<ISelectable> selected) where T : TaskMarker
        {
            if (selected.Count > 0)
            {

                //if (_taskSubject == null)
                //    _taskSubject = PrepareAndGetSubjectFromSelected(selected);

                T taskMarker = TaskMarker.CreateInstanceAtScreenPosition<T>(UIHandler.GetPointedScreenPosition());
                taskMarker.InitBinderForTask(associatedTaskEditMenu);
                taskMarker.EnterPlacementUIMode();

                taskMarker.OnExitPlacementUIMode.SubscribeEventHandlerMethod("spawnerbuttondeactivate",// += SpawnerButtonDeactivate;
                    () =>
                    {
                        on = false;
                        taskMarker.OnExitPlacementUIMode.UnsubscribeEventHandlerMethod("spawnerbuttondeactivate");
                    });

                taskMarker.OnPlacementConfirmation.SubscribeEventHandlerMethod("onplacementconfirmationcallback",
                    (b) =>
                    {
                        if (b)
                        {
                            if (_actorGroup == null)
                                _actorGroup = UnitGroup.PrepareAndCreateGroupFromSelected(selected);

                            TaskPlan2 taskPlan = taskMarker.InsertAssociatedTaskIntoPlan(_actorGroup, _lastPlacedTaskMarkerWrapper?.Value);

                            if (!taskPlan.IsPlanBeingExecuted())
                                taskPlan.StartPlanExecution();

                            if (Input.GetKey(KeyCode.LeftShift))
                            {
                                /*if (_lastPlacedTaskMarkerWrapper == null)
                                {
                                    var tm = ITaskSubject.GetPlans().FirstOrDefault()?.GetCurrentTaskInPlan()?.GetTaskMarker();
                                    if (tm != null)
                                        _lastPlacedTaskMarkerWrapper = new MapMarkerWrapper<TaskMarker>(tm);
                                }
                                else
                                {
                                    _lastPlacedTaskMarkerWrapper = new MapMarkerWrapper<TaskMarker>(taskMarker);
                                }*/
                                _lastPlacedTaskMarkerWrapper = new MapMarkerWrapper<TaskMarker>(taskMarker);
                                OnButtonActivationOrNot(true);
                            }
                            else
                            {
                                _actorGroup = null;
                                _lastPlacedTaskMarkerWrapper = null;
                            }
                        }
                        else
                        {
                            _actorGroup = null;
                            _lastPlacedTaskMarkerWrapper = null;
                            taskMarker.OnPlacementConfirmation.UnsubscribeEventHandlerMethod("onplacementconfirmationcallback");
                            //editedTaskPlan = null;
                        }
                    });

                SelectionHandler.GetUsedSelector().SelectEntity(taskMarker);
            }
        }
예제 #5
0
 private Selector GetUsedSelector()
 {
     return(SelectionHandler.GetUsedSelector());
 }
예제 #6
0
 private void Start()
 {
     mySelector = SelectionHandler.GetUsedSelector();
 }
예제 #7
0
 protected Selector GetUsedSelector()
 {
     return(SelectionHandler.GetUsedSelector());
 }