void SetTarget(Guid targetID) { SetTargetFireControlOrder.CreateCommand(_uiState.Game, _uiState.PrimarySystemDateTime, _uiState.Faction.Guid, _orderEntity.Guid, _allFireControl[_fcIndex].ID, targetID); }
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(); } } }
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(); } }