feat(radar state): radar state is now being read from DCS and displayed as a dot (subject to change)

This commit is contained in:
MarcoJayUsai
2025-03-19 14:36:40 +01:00
parent ee15106be1
commit 18960ca51e
4 changed files with 33 additions and 3 deletions

View File

@@ -257,7 +257,7 @@ void Unit::getData(stringstream& ss, unsigned long long time)
switch (datumIndex) {
case DataIndex::category: appendString(ss, datumIndex, category); break;
case DataIndex::alive: appendNumeric(ss, datumIndex, alive); break;
case DataIndex::radarState: appendNumeric(ss, datumIndex, radarState); break;
case DataIndex::radarState: appendString(ss, datumIndex, radarState); break;
case DataIndex::human: appendNumeric(ss, datumIndex, human); break;
case DataIndex::controlled: appendNumeric(ss, datumIndex, controlled); break;
case DataIndex::coalition: appendNumeric(ss, datumIndex, coalition); break;

View File

@@ -620,6 +620,27 @@
display: inline;
}
/* Unit Radar State */
.unit-radar-state {
height: 10px;
width: 10px;
position: absolute;
border-radius: 50%;
border: none;
background: transparent;
left: 35px;
bottom: 8px;
}
.unit[data-radar-state="GREEN"] .unit-radar-state {
border: 1px solid white;
background: rgb(0, 226, 0);
}
.unit[data-radar-state="RED"] .unit-radar-state {
border: 1px solid white;
background: red;
}
[todo-data-awacs-mode] [data-object|="unit"] .unit-selected-spotlight,
[todo-data-awacs-mode] [data-object|="unit"] .unit-short-label,
[todo-data-awacs-mode] [data-object|="unit"] .unit-state,

View File

@@ -1052,6 +1052,13 @@ export abstract class Unit extends CustomMarker {
el.append(healthIndicator);
}
/* Radar state indicator */
if (this.#radarState !== '') {
var radarStateIcon = document.createElement("div");
radarStateIcon.classList.add("unit-radar-state");
el.append(radarStateIcon);
}
/* Ammo indicator */
if (iconOptions.showAmmo) {
var ammoIndicator = document.createElement("div");

View File

@@ -1278,9 +1278,11 @@ function Olympus.setUnitsData(arg, time)
table["isAlive"] = unit:isExist() and unit:isActive() and unit:getLife() >= 1
table["radarState"] = "AUTO"
if unit:isActive() and unit:hasSensors(Unit.SensorType.RADAR) then
-- Olympus.log:info("Unit Has Sensor Radar " .. tostring(unit:hasSensors(Unit.SensorType.RADAR)));
if unit:isActive() then
table["radarState"] = "AUTO"
if unit:getRadar() then
-- Olympus.log:info("radarState: unit active and getRadar is true, setting RED.")
table["radarState"] = "RED"