feat: improved ops-strip with faction and stations
This commit is contained in:
@@ -150,7 +150,7 @@ export class ViewerInteractionController {
|
||||
this.context.updatePanels();
|
||||
};
|
||||
|
||||
readonly onShipStripClick = (event: MouseEvent) => {
|
||||
readonly onOpsStripClick = (event: MouseEvent) => {
|
||||
const target = event.target;
|
||||
if (!(target instanceof HTMLElement)) {
|
||||
return;
|
||||
@@ -163,18 +163,25 @@ export class ViewerInteractionController {
|
||||
return;
|
||||
}
|
||||
|
||||
const card = target.closest<HTMLElement>("[data-ship-id]");
|
||||
const shipId = card?.dataset.shipId;
|
||||
if (!shipId) {
|
||||
const shipCard = target.closest<HTMLElement>("[data-ship-id]");
|
||||
const shipId = shipCard?.dataset.shipId;
|
||||
if (shipId) {
|
||||
this.context.setSelectedItems([{ kind: "ship", id: shipId }]);
|
||||
this.context.syncFollowStateFromSelection();
|
||||
this.context.updatePanels();
|
||||
return;
|
||||
}
|
||||
|
||||
this.context.setSelectedItems([{ kind: "ship", id: shipId }]);
|
||||
this.context.syncFollowStateFromSelection();
|
||||
this.context.updatePanels();
|
||||
const stationCard = target.closest<HTMLElement>("[data-station-id]");
|
||||
const stationId = stationCard?.dataset.stationId;
|
||||
if (stationId) {
|
||||
this.context.setSelectedItems([{ kind: "station", id: stationId }]);
|
||||
this.context.syncFollowStateFromSelection();
|
||||
this.context.updatePanels();
|
||||
}
|
||||
};
|
||||
|
||||
readonly onShipStripDoubleClick = (event: MouseEvent) => {
|
||||
readonly onOpsStripDoubleClick = (event: MouseEvent) => {
|
||||
const target = event.target;
|
||||
if (!(target instanceof HTMLElement)) {
|
||||
return;
|
||||
@@ -184,18 +191,28 @@ export class ViewerInteractionController {
|
||||
return;
|
||||
}
|
||||
|
||||
const card = target.closest<HTMLElement>("[data-ship-id]");
|
||||
const shipId = card?.dataset.shipId;
|
||||
if (!shipId) {
|
||||
const shipCard = target.closest<HTMLElement>("[data-ship-id]");
|
||||
const shipId = shipCard?.dataset.shipId;
|
||||
if (shipId) {
|
||||
this.context.setSelectedItems([{ kind: "ship", id: shipId }]);
|
||||
this.context.syncFollowStateFromSelection();
|
||||
this.context.focusOnSelection({ kind: "ship", id: shipId });
|
||||
this.toggleCameraMode("follow");
|
||||
this.context.updatePanels();
|
||||
this.context.updateGamePanel("Live");
|
||||
return;
|
||||
}
|
||||
|
||||
this.context.setSelectedItems([{ kind: "ship", id: shipId }]);
|
||||
this.context.syncFollowStateFromSelection();
|
||||
this.context.focusOnSelection({ kind: "ship", id: shipId });
|
||||
this.toggleCameraMode("follow");
|
||||
this.context.updatePanels();
|
||||
this.context.updateGamePanel("Live");
|
||||
const stationCard = target.closest<HTMLElement>("[data-station-id]");
|
||||
const stationId = stationCard?.dataset.stationId;
|
||||
if (stationId) {
|
||||
this.context.setSelectedItems([{ kind: "station", id: stationId }]);
|
||||
this.context.syncFollowStateFromSelection();
|
||||
this.toggleCameraMode("tactical");
|
||||
this.context.focusOnSelection({ kind: "station", id: stationId });
|
||||
this.context.updatePanels();
|
||||
this.context.updateGamePanel("Live");
|
||||
}
|
||||
};
|
||||
|
||||
readonly onHistoryLayerClick = (event: MouseEvent) => this.context.historyController.onHistoryLayerClick(event);
|
||||
|
||||
Reference in New Issue
Block a user