From 97c78292fef34a39552a4d983413b01e185a49aa Mon Sep 17 00:00:00 2001 From: Tyler Murphy Date: Sat, 17 Jun 2023 22:48:56 -0400 Subject: [PATCH] export and load maps --- client/css/editor.css | 30 ++- client/img/atlas.png | Bin 8168 -> 8495 bytes client/index.html | 1 - client/mapeditor.html | 6 + client/src/editor.ts | 56 ++-- client/src/lib/lz-string.ts | 505 ++++++++++++++++++++++++++++++++++++ client/src/logic/logic.ts | 50 +--- client/src/main.ts | 5 +- client/src/map.ts | 76 +++--- client/src/renderer.ts | 24 +- client/src/types.ts | 26 +- client/tsconfig.json | 2 +- 12 files changed, 672 insertions(+), 109 deletions(-) create mode 100644 client/src/lib/lz-string.ts diff --git a/client/css/editor.css b/client/css/editor.css index cc3bb88..51c7571 100644 --- a/client/css/editor.css +++ b/client/css/editor.css @@ -7,15 +7,43 @@ canvas { position: absolute; display: flex; flex-direction: column; - border: 1px solid; + border: 1px solid #fff; padding: 1rem; } #mapgen { display: flex; flex-direction: column; + position: absolute; } #export { margin-top: 1rem; } + +#popup { + background-color: #191919; + position: absolute; + flex-direction: column; + padding: .5rem; + border: 1px solid #fff; +} + +#popup textarea { + margin: .5rem 0; + height: 5rem; + background-color: transparent; + color: white; + border: 1px solid #fff; +} + +#popup input { + margin: 0; +} + +#close { + width: .3rem; + height: .3rem; + font-size: .6rem; + line-height: 0; +} diff --git a/client/img/atlas.png b/client/img/atlas.png index cb9e802a5056f67bb1097f06d37c43458f113793..ebb467efb8b0a908fdc9ef29ef809c971cff8ad4 100644 GIT binary patch delta 3987 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 delta 3797 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 LNkvXXu0mjf1K}OW diff --git a/client/index.html b/client/index.html index 5e76fbc..251c33d 100644 --- a/client/index.html +++ b/client/index.html @@ -2,7 +2,6 @@ - diff --git a/client/mapeditor.html b/client/mapeditor.html index 5df8c38..6fbb158 100644 --- a/client/mapeditor.html +++ b/client/mapeditor.html @@ -15,10 +15,16 @@ +