Esempio n. 1
0
 void SetTarget(Guid targetID)
 {
     SetTargetFireControlOrder.CreateCommand(_uiState.Game, _uiState.PrimarySystemDateTime, _uiState.Faction.Guid, _orderEntity.Guid, _allFireControl[_fcIndex].ID, targetID);
 }
Esempio n. 2
0
        internal override void Display()
        {
            if (_sysState != null)
            {
                PreFrameSetup();
            }
            if (IsActive)
            {
                var size = new System.Numerics.Vector2(200, 100);
                var pos  = new System.Numerics.Vector2(_state.MainWinSize.X / 2 - size.X / 2, _state.MainWinSize.Y / 2 - size.Y / 2);

                ImGui.SetNextWindowSize(size, ImGuiCond.FirstUseEver);
                ImGui.SetNextWindowPos(pos, ImGuiCond.FirstUseEver);

                if (ImGui.Begin("Weapon Targeting", ref IsActive, _flags))
                {
                    int  selectable = 0;
                    bool selected   = false;
                    ImGui.BeginGroup();
                    foreach (var fc in _shipFCDB.FireControlInstances)
                    {
                        var fcAbility = fc.GetAbilityState <FireControlAbilityState>();
                        if (ImGui.Selectable("FC " + selectable, selected, ImGuiSelectableFlags.None, _selectableBtnSize))
                        {
                            _selectedItemIndex         = selectable;
                            _selectedFCGuid            = fc.ID;
                            _selectedFCAssignedWeapons = new List <Guid>();
                            foreach (var item in fcAbility.AssignedWeapons)
                            {
                                _selectedFCAssignedWeapons.Add(item.ID);
                            }
                        }

                        /*
                         * ImGui.Text("Assigned Weapons: ");
                         * foreach (var weapon in fc.AssignedWeapons)
                         * {
                         *  bool isEnabled = weapon.GetDataBlob<ComponentInstanceInfoDB>().IsEnabled;
                         *  if (ImGui.Checkbox(weaponNames[weapon.Guid], ref isEnabled))
                         *  {
                         *      //give an enable/disable order.
                         *  }
                         * }*/
                        ImGui.Text("Target: ");
                        ImGui.SameLine();
                        if (fcAbility.Target == null || !fcAbility.Target.IsValid)
                        {
                            ImGui.Text("No Target");
                        }
                        else
                        {
                            ImGui.Text(fcAbility.Target.GetDataBlob <NameDB>().GetName(_state.Faction));
                        }
                        selectable++;

                        if (fcAbility.IsEngaging)
                        {
                            if (ImGui.Button("Cease Fire"))
                            {
                                OpenFire(fc.ID, SetOpenFireControlOrder.FireModes.CeaseFire);
                            }
                        }
                        else
                        {
                            if (ImGui.Button("Open Fire"))
                            {
                                OpenFire(fc.ID, SetOpenFireControlOrder.FireModes.OpenFire);
                            }
                        }
                    }
                    ImGui.EndGroup();
                    if (_selectedItemIndex > -1)
                    {
                        ImGui.SameLine();
                        ImGui.BeginGroup();
                        {
                            ImGui.BeginGroup();
                            //ImGui.BeginChild("AssignedWeapons", true);

                            ImGui.Text("Assigned Weapons");
                            foreach (var wpn in _selectedFCAssignedWeapons.ToArray())
                            {
                                if (ImGui.Button(_weaponNames[wpn]))
                                {
                                    _unAssignedWeapons.Add(wpn);
                                    _selectedFCAssignedWeapons.Remove(wpn);
                                    SetWeaponsFireControlOrder.CreateCommand(_state.Game, _state.PrimarySystemDateTime, _state.Faction.Guid, _orderingEntity.Guid, _selectedFCGuid, _selectedFCAssignedWeapons);
                                }
                            }
                            ImGui.EndGroup();
                            ImGui.BeginGroup();
                            //ImGui.EndChild();
                            //ImGui.BeginChild("Un Assigned Weapons", true);

                            ImGui.Text("Un Assigned Weapons");
                            foreach (var wpn in _unAssignedWeapons.ToArray())
                            {
                                if (ImGui.Button(_weaponNames[wpn]))
                                {
                                    _selectedFCAssignedWeapons.Add(wpn);
                                    _unAssignedWeapons.Remove(wpn);
                                    SetWeaponsFireControlOrder.CreateCommand(_state.Game, _state.PrimarySystemDateTime, _state.Faction.Guid, _orderingEntity.Guid, _selectedFCGuid, _selectedFCAssignedWeapons);
                                }
                            }
                            ImGui.EndGroup();
                            //ImGui.EndChild();
                        }
                        ImGui.EndGroup();
                        ImGui.SameLine();
                        ImGui.BeginGroup();
                        {
                            ImGui.Text("Set Target");
                            foreach (var item in _systemEntityNames)
                            {
                                if (ImGui.SmallButton(item.Value))
                                {
                                    SetTargetFireControlOrder.CreateCommand(_state.Game, _state.PrimarySystemDateTime, _state.Faction.Guid, _orderingEntity.Guid, _selectedFCGuid, item.Key);
                                }
                            }
                        }
                        ImGui.EndGroup();
                        ImGui.SameLine();
                        ImGui.BeginGroup();
                        {
                            ImGui.Text("Range in AU");
                            foreach (var item in _sensorContacts)
                            {
                                var    targetEntity = _sensorContacts[item.Key];
                                double distance     = _orderingEntity.GetDataBlob <PositionDB>().GetDistanceTo_AU(targetEntity.Position);
                                ImGui.Text(distance.ToString());
                            }
                        }
                        ImGui.EndGroup();
                    }
                }
                ImGui.End();
                if (!IsActive)
                {
                    OnClose();
                }
            }
        }
Esempio n. 3
0
        internal override void Display()
        {
            if (IsActive)
            {
                ImVec2 size = new ImVec2(200, 100);
                ImVec2 pos  = new ImVec2(_state.MainWinSize.x / 2 - size.x / 2, _state.MainWinSize.y / 2 - size.y / 2);

                ImGui.SetNextWindowSize(size, ImGuiCond.FirstUseEver);
                ImGui.SetNextWindowPos(pos, ImGuiCond.FirstUseEver);

                if (ImGui.Begin("Weapon Targeting", ref IsActive, _flags))
                {
                    int  selectable = 0;
                    bool selected   = false;
                    ImGui.BeginGroup();
                    foreach (var fc in _shipFCDB.FireControlInsances)
                    {
                        if (ImGui.Selectable("FC " + selectable, selected, ImGuiSelectableFlags.Default, _selectableBtnSize))
                        {
                            _selectedItemIndex         = selectable;
                            _selectedFC                = fc.OwningEntity.Guid;
                            _selectedFCAssignedWeapons = new List <Guid>();
                            foreach (var item in fc.AssignedWeapons)
                            {
                                _selectedFCAssignedWeapons.Add(item.Guid);
                            }
                        }

                        /*
                         * ImGui.Text("Assigned Weapons: ");
                         * foreach (var weapon in fc.AssignedWeapons)
                         * {
                         *  bool isEnabled = weapon.GetDataBlob<ComponentInstanceInfoDB>().IsEnabled;
                         *  if (ImGui.Checkbox(weaponNames[weapon.Guid], ref isEnabled))
                         *  {
                         *      //give an enable/disable order.
                         *  }
                         * }*/
                        ImGui.Text("Target: ");
                        ImGui.SameLine();
                        if (fc.Target == null)
                        {
                            ImGui.Text("No Target");
                        }
                        else
                        {
                            ImGui.Text(fc.Target.GetDataBlob <NameDB>().GetName(_state.Faction));
                        }
                        selectable++;
                    }
                    ImGui.EndGroup();
                    if (_selectedItemIndex > -1)
                    {
                        ImGui.SameLine();
                        ImGui.BeginGroup();
                        {
                            ImGui.BeginGroup();
                            //ImGui.BeginChild("AssignedWeapons", true);

                            ImGui.Text("Assigned Weapons");
                            foreach (var wpn in _selectedFCAssignedWeapons.ToArray())
                            {
                                if (ImGui.Button(_weaponNames[wpn]))
                                {
                                    _unAssignedWeapons.Add(wpn);
                                    _selectedFCAssignedWeapons.Remove(wpn);
                                    SetWeaponsFireControlOrder.CreateCommand(_state.Game, _state.CurrentSystemDateTime, _state.Faction.Guid, _orderingEntity.Guid, _selectedFC, _selectedFCAssignedWeapons);
                                }
                            }
                            ImGui.EndGroup();
                            ImGui.BeginGroup();
                            //ImGui.EndChild();
                            //ImGui.BeginChild("Un Assigned Weapons", true);

                            ImGui.Text("Un Assigned Weapons");
                            foreach (var wpn in _unAssignedWeapons.ToArray())
                            {
                                if (ImGui.Button(_weaponNames[wpn]))
                                {
                                    _selectedFCAssignedWeapons.Add(wpn);
                                    _unAssignedWeapons.Remove(wpn);
                                    SetWeaponsFireControlOrder.CreateCommand(_state.Game, _state.CurrentSystemDateTime, _state.Faction.Guid, _orderingEntity.Guid, _selectedFC, _selectedFCAssignedWeapons);
                                }
                            }
                            ImGui.EndGroup();
                            //ImGui.EndChild();
                        }
                        ImGui.EndGroup();
                        ImGui.SameLine();
                        ImGui.BeginGroup();
                        {
                            ImGui.Text("Set Target");
                            foreach (var item in _systemEntityNames)
                            {
                                if (ImGui.SmallButton(item.Value))
                                {
                                    SetTargetFireControlOrder.CreateCommand(_state.Game, _state.CurrentSystemDateTime, _state.Faction.Guid, _orderingEntity.Guid, _selectedFC, item.Key);
                                }
                            }
                        }
                        ImGui.EndGroup();
                        ImGui.SameLine();
                        ImGui.BeginGroup();
                        {
                            ImGui.Text("Range in AU");
                            foreach (var item in _systemEntityNames)
                            {
                                Entity targetEntity = _systemEntites[item.Key];
                                double distance     = _orderingEntity.GetDataBlob <PositionDB>().GetDistanceTo(targetEntity.GetDataBlob <PositionDB>());
                                ImGui.Text(distance.ToString());
                            }
                        }
                        ImGui.EndGroup();
                    }
                }
                ImGui.End();
            }
        }