Show edit marker dialog instead deleting marker
This commit is contained in:
parent
d0d8314d81
commit
8acefda778
|
@ -169,7 +169,7 @@ export class HUDWaypoints extends BaseHUDPart {
|
||||||
|
|
||||||
if (this.isWaypointDeletable(waypoint)) {
|
if (this.isWaypointDeletable(waypoint)) {
|
||||||
const deleteButton = makeDiv(element, null, ["deleteButton"]);
|
const deleteButton = makeDiv(element, null, ["deleteButton"]);
|
||||||
this.trackClicks(deleteButton, () => this.deleteWaypoint(waypoint));
|
this.trackClicks(deleteButton, () => this.requestEditMarker(waypoint));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!waypoint.label) {
|
if (!waypoint.label) {
|
||||||
|
@ -284,6 +284,59 @@ export class HUDWaypoints extends BaseHUDPart {
|
||||||
this.rerenderWaypointList();
|
this.rerenderWaypointList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Requests to edit a marker.
|
||||||
|
* @param {Waypoint} waypoint
|
||||||
|
*/
|
||||||
|
requestEditMarker(waypoint) {
|
||||||
|
// Construct dialog with input field
|
||||||
|
const markerNameInput = new FormElementInput({
|
||||||
|
id: "markerName",
|
||||||
|
label: null,
|
||||||
|
placeholder: "",
|
||||||
|
defaultValue: waypoint.label,
|
||||||
|
validator: val =>
|
||||||
|
val.length > 0 && (val.length < MAX_LABEL_LENGTH || ShapeDefinition.isValidShortKey(val)),
|
||||||
|
});
|
||||||
|
const dialog = new DialogWithForm({
|
||||||
|
app: this.root.app,
|
||||||
|
title: T.dialogs.editMarker.title,
|
||||||
|
desc: T.dialogs.editMarker.desc,
|
||||||
|
formElements: [markerNameInput],
|
||||||
|
extraButton: "delete:bad",
|
||||||
|
});
|
||||||
|
this.root.hud.parts.dialogs.internalShowDialog(dialog);
|
||||||
|
|
||||||
|
dialog.buttonSignals.ok.add(() => {
|
||||||
|
// Actually rename the waypoint
|
||||||
|
this.renameWaypoint(waypoint, markerNameInput.getValue());
|
||||||
|
});
|
||||||
|
dialog.buttonSignals.delete.add(() => {
|
||||||
|
// Actually delete the waypoint
|
||||||
|
this.deleteWaypoint(waypoint);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Renames a waypoint with the given label
|
||||||
|
* @param {Waypoint} waypoint
|
||||||
|
* @param {string} label
|
||||||
|
*/
|
||||||
|
renameWaypoint(waypoint, label) {
|
||||||
|
waypoint.label = label;
|
||||||
|
|
||||||
|
this.sort();
|
||||||
|
|
||||||
|
// Show notification about renamed
|
||||||
|
this.root.hud.signals.notification.dispatch(
|
||||||
|
T.ingame.waypoints.creationSuccessNotification,
|
||||||
|
enumNotificationType.success
|
||||||
|
);
|
||||||
|
|
||||||
|
// Re-render the list and thus add it
|
||||||
|
this.rerenderWaypointList();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called every frame to update stuff
|
* Called every frame to update stuff
|
||||||
*/
|
*/
|
||||||
|
@ -387,7 +440,7 @@ export class HUDWaypoints extends BaseHUDPart {
|
||||||
} else if (button === enumMouseButton.right) {
|
} else if (button === enumMouseButton.right) {
|
||||||
if (this.isWaypointDeletable(waypoint)) {
|
if (this.isWaypointDeletable(waypoint)) {
|
||||||
this.root.soundProxy.playUiClick();
|
this.root.soundProxy.playUiClick();
|
||||||
this.deleteWaypoint(waypoint);
|
this.requestEditMarker(waypoint);
|
||||||
} else {
|
} else {
|
||||||
this.root.soundProxy.playUiError();
|
this.root.soundProxy.playUiError();
|
||||||
}
|
}
|
||||||
|
|
|
@ -284,6 +284,10 @@ dialogs:
|
||||||
title: New Marker
|
title: New Marker
|
||||||
desc: Give it a meaningful name, you can also include a <strong>short key</strong> of a shape (Which you can generate <a href="https://viewer.shapez.io" target="_blank">here</a>)
|
desc: Give it a meaningful name, you can also include a <strong>short key</strong> of a shape (Which you can generate <a href="https://viewer.shapez.io" target="_blank">here</a>)
|
||||||
|
|
||||||
|
editMarker:
|
||||||
|
title: Edit Marker
|
||||||
|
desc: Give it a new meaningful name, you can also include a <strong>short key</strong> of a shape (Which you can generate <a href="https://viewer.shapez.io" target="_blank">here</a>)
|
||||||
|
|
||||||
markerDemoLimit:
|
markerDemoLimit:
|
||||||
desc: You can only create two custom markers in the demo. Get the standalone for unlimited markers!
|
desc: You can only create two custom markers in the demo. Get the standalone for unlimited markers!
|
||||||
|
|
||||||
|
|
|
@ -255,6 +255,10 @@ dialogs:
|
||||||
title: マーカーを設置
|
title: マーカーを設置
|
||||||
desc: わかりやすい名前をつけてください。形を表す<strong>短いキー</strong>を含めることもできます。(<a href="https://viewer.shapez.io" target="_blank">ここ</a>から生成できます)
|
desc: わかりやすい名前をつけてください。形を表す<strong>短いキー</strong>を含めることもできます。(<a href="https://viewer.shapez.io" target="_blank">ここ</a>から生成できます)
|
||||||
|
|
||||||
|
editMarker:
|
||||||
|
title: マーカーを編集
|
||||||
|
desc: わかりやすい名前をつけてください。形を表す<strong>短いキー</strong>を含めることもできます。(<a href="https://viewer.shapez.io" target="_blank">ここ</a>から生成できます)
|
||||||
|
|
||||||
markerDemoLimit:
|
markerDemoLimit:
|
||||||
desc: デモ版ではマーカー設置は2つまでに制限されています。スタンドアローン版は無制限です!
|
desc: デモ版ではマーカー設置は2つまでに制限されています。スタンドアローン版は無制限です!
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue