stable
This commit is contained in:
parent
fbdac9ebf1
commit
86226ccc94
97 changed files with 5790 additions and 2307 deletions
|
|
@ -174,14 +174,8 @@ function bindUI() {
|
|||
const id = node.getAttribute("data-family-tarinai-id");
|
||||
const t = world.tarinai.find(x => (x.id === id || x.familyKey === id) && !x.dead);
|
||||
if (!t) { showToast("\u305d\u306e\u500b\u4f53\u306f\u3082\u3046\u9078\u629e\u3067\u304d\u307e\u305b\u3093\u3002"); return; }
|
||||
world.selected = t;
|
||||
t.focusPulseTimer = Math.max(t.focusPulseTimer || 0, 1.15);
|
||||
window.TarinaiCommands?.dispatch?.(world, { type: "selection.focus", target: t, options: { pulse: 1.15 } });
|
||||
selectTool("observe");
|
||||
if (Number.isFinite(t.x) && Number.isFinite(t.y)) {
|
||||
world.cameraX = t.x - (world.visibleWorldW ? world.visibleWorldW() : (world.viewportW || world.w)) / 2;
|
||||
world.cameraY = t.y - (world.visibleWorldH ? world.visibleWorldH() : (world.viewportH || world.h)) / 2;
|
||||
world.clampCamera?.();
|
||||
}
|
||||
renderStats();
|
||||
showToast(`${t.name}\u3092\u9078\u629e\u3057\u307e\u3057\u305f\u3002`);
|
||||
});
|
||||
|
|
@ -216,11 +210,12 @@ function bindUI() {
|
|||
}
|
||||
const btn = e.target.closest("[data-selected-action=\"favorite\"]");
|
||||
if (!btn || !world.selected || world.selected.dead) return;
|
||||
world.selected.favorite = !world.selected.favorite;
|
||||
const favResult = window.TarinaiCommands?.dispatch?.(world, { type: "selection.favorite.toggle" });
|
||||
if (!favResult?.ok) return;
|
||||
uiCache.selectedSnapshot = "";
|
||||
renderSelected();
|
||||
render();
|
||||
showToast(world.selected.favorite ? "\u304a\u6c17\u306b\u5165\u308a\u306b\u3057\u307e\u3057\u305f\u3002" : "\u304a\u6c17\u306b\u5165\u308a\u3092\u89e3\u9664\u3057\u307e\u3057\u305f\u3002");
|
||||
showToast(favResult.favorite ? "\u304a\u6c17\u306b\u5165\u308a\u306b\u3057\u307e\u3057\u305f\u3002" : "\u304a\u6c17\u306b\u5165\u308a\u3092\u89e3\u9664\u3057\u307e\u3057\u305f\u3002");
|
||||
});
|
||||
ui.selectedInfo?.addEventListener("change", (e) => {
|
||||
const input = e.target.closest("[data-selected-name]");
|
||||
|
|
@ -234,7 +229,7 @@ function bindUI() {
|
|||
if (e.key === "Escape") { e.preventDefault(); input.value = world.selected?.name || ""; input.blur(); }
|
||||
});
|
||||
ui.selectedCloseBtn?.addEventListener("click", () => {
|
||||
world.selected = null;
|
||||
window.TarinaiCommands?.dispatch?.(world, { type: "selection.clear" });
|
||||
uiCache.showSelectedEmpty = false;
|
||||
uiCache.selectedSnapshot = "";
|
||||
uiCache.selectedEmpty = false;
|
||||
|
|
@ -244,9 +239,10 @@ function bindUI() {
|
|||
|
||||
ui.pauseBtn?.addEventListener("click", () => {
|
||||
audio.uiClick?.();
|
||||
world.paused = !world.paused;
|
||||
const pauseResult = window.TarinaiCommands?.dispatch?.(world, { type: "simulation.paused.toggle" });
|
||||
const paused = pauseResult?.ok ? pauseResult.paused : world.paused;
|
||||
const archiveStale = uiCache.archiveFamilyVersion !== (world.familyVersion || 0);
|
||||
if (archiveAutoUpdateEnabled() && world.paused && (uiCache.archivePendingWhileRunning || archiveStale)) {
|
||||
if (archiveAutoUpdateEnabled() && paused && (uiCache.archivePendingWhileRunning || archiveStale)) {
|
||||
uiCache.archivePendingWhileRunning = false;
|
||||
scheduleArchiveWindowRender();
|
||||
}
|
||||
|
|
@ -254,9 +250,7 @@ function bindUI() {
|
|||
});
|
||||
ui.speedBtn?.addEventListener("click", () => {
|
||||
audio.uiClick?.();
|
||||
const speeds = [1, 2, 4];
|
||||
const i = speeds.indexOf(world.speed);
|
||||
world.speed = speeds[(i + 1) % speeds.length];
|
||||
window.TarinaiCommands?.dispatch?.(world, { type: "simulation.speed.cycle", speeds: [1, 2, 4] });
|
||||
syncTopButtons();
|
||||
});
|
||||
ui.ecologyBtn?.addEventListener("click", () => { audio.uiClick?.(); openEcologyDialog(); });
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue