From 58534b3796fb493324ade78f26f4f7b9e79bd638 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 29 Jun 2023 07:26:28 +0200 Subject: [PATCH] Split AI <=> NPC --- src/components/Editor/Editor.svelte | 18 ++- src/components/Editor/EditorInfoPane.svelte | 15 +- src/components/Npc.svelte | 19 +++ src/components/Script.svelte | 5 + src/index.d.ts | 15 +- src/lib/AI.ts | 8 + src/lib/Level.ts | 9 +- src/lib/Npc.ts | 27 ++++ src/lib/maps/level-1.json | 154 ++++---------------- src/stores/dialogs.ts | 44 ++++++ src/stores/editor.ts | 16 +- static/textures/npc-1.png | Bin 1160 -> 1369 bytes 12 files changed, 199 insertions(+), 131 deletions(-) create mode 100644 src/components/Npc.svelte create mode 100644 src/lib/Npc.ts create mode 100644 src/stores/dialogs.ts diff --git a/src/components/Editor/Editor.svelte b/src/components/Editor/Editor.svelte index 9d2fcd8..b792276 100644 --- a/src/components/Editor/Editor.svelte +++ b/src/components/Editor/Editor.svelte @@ -8,7 +8,10 @@ isToolActivated, currentAI, currentTexture, - currentDoodad + currentDoodad, + + currentNpc + } from '$stores/editor' import type { Script, Tile } from '../..'; import EditorTile from './EditorTile.svelte'; @@ -106,6 +109,19 @@ }); } + if($activatedTool === 'npc' && e.type === 'mousedown') { + store.update((store) => { + const ai = store.levels[$currentLevelNumber].getScriptAt(x, y); + if(ai) { + store.levels[$currentLevelNumber].removeScriptAt(x, y); + } else { + store.levels[$currentLevelNumber].addNpcAt(x, y , $currentNpc) + } + + return store; + }); + } + if($activatedTool === 'doodad' && e.type === 'mousedown') { store.update((store) => { const doodad = store.levels[$currentLevelNumber].getScriptAt(x, y); diff --git a/src/components/Editor/EditorInfoPane.svelte b/src/components/Editor/EditorInfoPane.svelte index cd7b9f6..58b88ff 100644 --- a/src/components/Editor/EditorInfoPane.svelte +++ b/src/components/Editor/EditorInfoPane.svelte @@ -1,10 +1,10 @@ @@ -148,6 +150,15 @@ + + NPC + + + Doodad