From 830864aa8adf1dbb706fe9a77ff80a8cf9f679ce Mon Sep 17 00:00:00 2001 From: Dominic Masters Date: Tue, 11 Aug 2026 12:52:38 -0500 Subject: [PATCH] Gating network behind compile flag --- CMakeLists.txt | 13 +- assets/chunks/-1_0_0.dcf | Bin 2235 -> 0 bytes assets/chunks/0_0_0.dcf | Bin 2146 -> 0 bytes assets/chunks/0_1_0.dcf | Bin 2234 -> 0 bytes assets/chunks/1_0_0.dcf | Bin 2322 -> 0 bytes assets/chunks/1_1_0.dcf | Bin 2234 -> 0 bytes assets/chunks/2_0_0.dcf | Bin 2102 -> 0 bytes assets/meshes/buildings/house_1_1.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_1_2.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_1_3.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_1_4.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_1_5.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_1_6.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_1_7.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_1_8.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_2_1.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_2_2.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_2_3.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_2_4.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_2_5.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_2_6.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_2_7.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_2_8.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_3_1.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_3_2.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_3_3.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_3_4.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_3_5.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_3_6.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_3_7.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_3_8.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_4_1.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_4_2.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_4_3.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_4_4.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_4_5.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_4_6.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_4_7.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_4_8.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_5_1.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_5_2.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_5_3.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_5_4.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_5_5.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_5_6.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_5_7.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_5_8.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_6_1.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_6_2.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_6_3.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_6_4.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_6_5.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_6_6.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_6_7.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_6_8.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_7_1.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_7_2.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_7_3.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_7_4.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_7_5.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_7_6.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_7_7.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_7_8.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_8_1.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_8_2.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_8_3.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_8_4.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_8_5.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_8_6.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_8_7.dmf | Bin 1332 -> 0 bytes assets/meshes/buildings/house_8_8.dmf | Bin 1332 -> 0 bytes assets/meshes/chunks/chunk_-1_0_0_0.dmf | Bin 26172 -> 0 bytes assets/meshes/chunks/chunk_0_0_0_0.dmf | Bin 28932 -> 0 bytes assets/meshes/chunks/chunk_0_1_0_0.dmf | Bin 25332 -> 0 bytes assets/meshes/chunks/chunk_1_0_0_0.dmf | Bin 27492 -> 0 bytes assets/meshes/chunks/chunk_1_1_0_0.dmf | Bin 26652 -> 0 bytes assets/meshes/chunks/chunk_2_0_0_0.dmf | Bin 30252 -> 0 bytes assets/models/buildings/house_1_1.json | 4 - assets/models/buildings/house_1_2.json | 4 - assets/models/buildings/house_1_3.json | 4 - assets/models/buildings/house_1_4.json | 4 - assets/models/buildings/house_1_5.json | 4 - assets/models/buildings/house_1_6.json | 4 - assets/models/buildings/house_1_7.json | 4 - assets/models/buildings/house_1_8.json | 4 - assets/models/buildings/house_2_1.json | 4 - assets/models/buildings/house_2_2.json | 4 - assets/models/buildings/house_2_3.json | 4 - assets/models/buildings/house_2_4.json | 4 - assets/models/buildings/house_2_5.json | 4 - assets/models/buildings/house_2_6.json | 4 - assets/models/buildings/house_2_7.json | 4 - assets/models/buildings/house_2_8.json | 4 - assets/models/buildings/house_3_1.json | 4 - assets/models/buildings/house_3_2.json | 4 - assets/models/buildings/house_3_3.json | 4 - assets/models/buildings/house_3_4.json | 4 - assets/models/buildings/house_3_5.json | 4 - assets/models/buildings/house_3_6.json | 4 - assets/models/buildings/house_3_7.json | 4 - assets/models/buildings/house_3_8.json | 4 - assets/models/buildings/house_4_1.json | 4 - assets/models/buildings/house_4_2.json | 4 - assets/models/buildings/house_4_3.json | 4 - assets/models/buildings/house_4_4.json | 4 - assets/models/buildings/house_4_5.json | 4 - assets/models/buildings/house_4_6.json | 4 - assets/models/buildings/house_4_7.json | 4 - assets/models/buildings/house_4_8.json | 4 - assets/models/buildings/house_5_1.json | 4 - assets/models/buildings/house_5_2.json | 4 - assets/models/buildings/house_5_3.json | 4 - assets/models/buildings/house_5_4.json | 4 - assets/models/buildings/house_5_5.json | 4 - assets/models/buildings/house_5_6.json | 4 - assets/models/buildings/house_5_7.json | 4 - assets/models/buildings/house_5_8.json | 4 - assets/models/buildings/house_6_1.json | 4 - assets/models/buildings/house_6_2.json | 4 - assets/models/buildings/house_6_3.json | 4 - assets/models/buildings/house_6_4.json | 4 - assets/models/buildings/house_6_5.json | 4 - assets/models/buildings/house_6_6.json | 4 - assets/models/buildings/house_6_7.json | 4 - assets/models/buildings/house_6_8.json | 4 - assets/models/buildings/house_7_1.json | 4 - assets/models/buildings/house_7_2.json | 4 - assets/models/buildings/house_7_3.json | 4 - assets/models/buildings/house_7_4.json | 4 - assets/models/buildings/house_7_5.json | 4 - assets/models/buildings/house_7_6.json | 4 - assets/models/buildings/house_7_7.json | 4 - assets/models/buildings/house_7_8.json | 4 - assets/models/buildings/house_8_1.json | 4 - assets/models/buildings/house_8_2.json | 4 - assets/models/buildings/house_8_3.json | 4 - assets/models/buildings/house_8_4.json | 4 - assets/models/buildings/house_8_5.json | 4 - assets/models/buildings/house_8_6.json | 4 - assets/models/buildings/house_8_7.json | 4 - assets/models/buildings/house_8_8.json | 4 - assets/models/chunks/chunk_-1_0_0_0.json | 10 - assets/models/chunks/chunk_0_0_0_0.json | 10 - assets/models/chunks/chunk_0_1_0_0.json | 10 - assets/models/chunks/chunk_1_0_0_0.json | 10 - assets/models/chunks/chunk_1_1_0_0.json | 10 - assets/models/chunks/chunk_2_0_0_0.json | 10 - assets/scripts/Player.js | 4 + assets/scripts/PlayerCamera.js | 31 +- assets/scripts/TestPlane.js | 19 +- assets/scripts/init.js | 10 +- assets/scripts/overworldscene.js | 52 +- assets/tiles.png | Bin 110 -> 0 bytes assets/ui/minogram.dtf | Bin 24 -> 0 bytes assets/ui/minogram.png | Bin 1260 -> 0 bytes assetsraw/chunks/chunk_-1_0_0.json | 1992 ------------- assetsraw/chunks/chunk_0_0_0.json | 2183 -------------- assetsraw/chunks/chunk_0_1_0.json | 1929 ------------- assetsraw/chunks/chunk_1_0_0.json | 2107 -------------- assetsraw/chunks/chunk_1_1_0.json | 2028 ------------- assetsraw/chunks/chunk_2_0_0.json | 2543 ----------------- cmake/targets/linux.cmake | 1 - src/CMakeLists.txt | 3 + src/dusk/CMakeLists.txt | 1 - src/dusk/console/console.c | 16 +- src/dusk/console/console.h | 12 +- src/dusk/display/CMakeLists.txt | 6 + src/dusk/engine/engine.c | 32 +- src/dusk/script/module/CMakeLists.txt | 1 + src/dusk/script/module/console/CMakeLists.txt | 9 + .../script/module/console/moduleconsole.c | 46 + .../script/module/console/moduleconsole.h | 21 + src/dusk/script/module/modulelist.c | 3 + src/dusk/script/module/modulelist.h | 4 +- src/duskdolphin/CMakeLists.txt | 4 +- src/dusklinux/CMakeLists.txt | 4 +- src/dusknetwork/CMakeLists.txt | 13 + .../network/CMakeLists.txt | 0 .../network/http/CMakeLists.txt | 0 .../network/http/networkhttp.c | 0 .../network/http/networkhttp.h | 0 .../network/http/networkhttpheader.c | 0 .../network/http/networkhttpheader.h | 0 .../network/http/networkhttpprocess.c | 0 .../network/http/networkhttpprocess.h | 0 .../network/http/networkhttprequest.c | 0 .../network/http/networkhttprequest.h | 0 .../network/http/networkhttpthread.c | 0 .../network/http/networkhttpthread.h | 0 .../network/http/networkhttpurl.c | 0 .../network/http/networkhttpurl.h | 0 src/{dusk => dusknetwork}/network/network.c | 0 src/{dusk => dusknetwork}/network/network.h | 0 .../network/networkaddr.c | 0 .../network/networkaddr.h | 0 .../network/networkinfo.c | 0 .../network/networkinfo.h | 0 .../network/socket/CMakeLists.txt | 0 .../network/socket/client/CMakeLists.txt | 0 .../network/socket/client/client.c | 0 .../network/socket/client/client.h | 0 .../network/socket/client/clientroster.c | 0 .../network/socket/client/clientroster.h | 0 .../network/socket/client/clientthread.c | 0 .../network/socket/client/clientthread.h | 0 .../socket/client/handler/CMakeLists.txt | 0 .../client/handler/clientpackethandlerack.c | 0 .../client/handler/clientpackethandlerack.h | 0 .../handler/clientpackethandlerdisconnect.c | 0 .../handler/clientpackethandlerdisconnect.h | 0 .../clientpackethandlerhandshakeaccept.c | 0 .../clientpackethandlerhandshakeaccept.h | 0 .../clientpackethandlerhandshakereject.c | 0 .../clientpackethandlerhandshakereject.h | 0 .../client/handler/clientpackethandlerlist.c | 0 .../client/handler/clientpackethandlerlist.h | 0 .../client/handler/clientpackethandlerping.c | 0 .../client/handler/clientpackethandlerping.h | 0 .../handler/clientpackethandlerplayerjoined.c | 0 .../handler/clientpackethandlerplayerjoined.h | 0 .../handler/clientpackethandlerplayerleft.c | 0 .../handler/clientpackethandlerplayerleft.h | 0 .../handler/clientpackethandlerplayerstate.c | 0 .../handler/clientpackethandlerplayerstate.h | 0 .../network/socket/client/localclient.c | 0 .../network/socket/client/localclient.h | 0 .../network/socket/client/remoteclient.h | 0 .../network/socket/packet.c | 0 .../network/socket/packet.h | 0 .../network/socket/packetdata.h | 0 .../network/socket/packetinbox.c | 0 .../network/socket/packetinbox.h | 0 .../network/socket/packetregistry.c | 0 .../network/socket/packetregistry.h | 0 .../network/socket/packetreliable.c | 0 .../network/socket/packetreliable.h | 0 .../network/socket/packettype.h | 0 .../network/socket/payload/packetack.h | 0 .../network/socket/payload/packetdisconnect.h | 0 .../network/socket/payload/packethandshake.h | 0 .../socket/payload/packethandshakeaccept.h | 0 .../socket/payload/packethandshakereject.h | 0 .../network/socket/payload/packetping.h | 0 .../socket/payload/packetplayerjoined.h | 0 .../network/socket/payload/packetplayerleft.h | 0 .../socket/payload/packetplayerstate.h | 0 .../network/socket/server/CMakeLists.txt | 0 .../socket/server/handler/CMakeLists.txt | 0 .../server/handler/serverpackethandlerack.c | 0 .../server/handler/serverpackethandlerack.h | 0 .../handler/serverpackethandlerdisconnect.c | 0 .../handler/serverpackethandlerdisconnect.h | 0 .../handler/serverpackethandlerhandshake.c | 0 .../handler/serverpackethandlerhandshake.h | 0 .../server/handler/serverpackethandlerlist.c | 0 .../server/handler/serverpackethandlerlist.h | 0 .../server/handler/serverpackethandlerping.c | 0 .../server/handler/serverpackethandlerping.h | 0 .../handler/serverpackethandlerplayerstate.c | 0 .../handler/serverpackethandlerplayerstate.h | 0 .../network/socket/server/serverclient.c | 0 .../network/socket/server/serverclient.h | 0 .../network/socket/server/serverclientlocal.h | 0 .../socket/server/serverclientremote.h | 0 .../network/socket/server/serveroffline.c | 0 .../network/socket/server/serveroffline.h | 0 .../network/socket/server/serveronline.c | 0 .../network/socket/server/serveronline.h | 0 .../network/socket/server/serverthread.c | 0 .../network/socket/server/serverthread.h | 0 src/duskpsp/CMakeLists.txt | 4 +- src/duskrpg/item/CMakeLists.txt | 6 + test/CMakeLists.txt | 4 +- test/script/CMakeLists.txt | 2 + test/script/test_moduleconsole.c | 69 + tools/color.py | 7 +- tools/item.py | 7 +- tools/run_python/CMakeLists.txt | 9 +- tools/writeifchanged.py | 13 + types/console/console.d.ts | 13 + types/index.d.ts | 1 + 281 files changed, 334 insertions(+), 13204 deletions(-) delete mode 100644 assets/chunks/-1_0_0.dcf delete mode 100644 assets/chunks/0_0_0.dcf delete mode 100644 assets/chunks/0_1_0.dcf delete mode 100644 assets/chunks/1_0_0.dcf delete mode 100644 assets/chunks/1_1_0.dcf delete mode 100644 assets/chunks/2_0_0.dcf delete mode 100644 assets/meshes/buildings/house_1_1.dmf delete mode 100644 assets/meshes/buildings/house_1_2.dmf delete mode 100644 assets/meshes/buildings/house_1_3.dmf delete mode 100644 assets/meshes/buildings/house_1_4.dmf delete mode 100644 assets/meshes/buildings/house_1_5.dmf delete mode 100644 assets/meshes/buildings/house_1_6.dmf delete mode 100644 assets/meshes/buildings/house_1_7.dmf delete mode 100644 assets/meshes/buildings/house_1_8.dmf delete mode 100644 assets/meshes/buildings/house_2_1.dmf delete mode 100644 assets/meshes/buildings/house_2_2.dmf delete mode 100644 assets/meshes/buildings/house_2_3.dmf delete mode 100644 assets/meshes/buildings/house_2_4.dmf delete mode 100644 assets/meshes/buildings/house_2_5.dmf delete mode 100644 assets/meshes/buildings/house_2_6.dmf delete mode 100644 assets/meshes/buildings/house_2_7.dmf delete mode 100644 assets/meshes/buildings/house_2_8.dmf delete mode 100644 assets/meshes/buildings/house_3_1.dmf delete mode 100644 assets/meshes/buildings/house_3_2.dmf delete mode 100644 assets/meshes/buildings/house_3_3.dmf delete mode 100644 assets/meshes/buildings/house_3_4.dmf delete mode 100644 assets/meshes/buildings/house_3_5.dmf delete mode 100644 assets/meshes/buildings/house_3_6.dmf delete mode 100644 assets/meshes/buildings/house_3_7.dmf delete mode 100644 assets/meshes/buildings/house_3_8.dmf delete mode 100644 assets/meshes/buildings/house_4_1.dmf delete mode 100644 assets/meshes/buildings/house_4_2.dmf delete mode 100644 assets/meshes/buildings/house_4_3.dmf delete mode 100644 assets/meshes/buildings/house_4_4.dmf delete mode 100644 assets/meshes/buildings/house_4_5.dmf delete mode 100644 assets/meshes/buildings/house_4_6.dmf delete mode 100644 assets/meshes/buildings/house_4_7.dmf delete mode 100644 assets/meshes/buildings/house_4_8.dmf delete mode 100644 assets/meshes/buildings/house_5_1.dmf delete mode 100644 assets/meshes/buildings/house_5_2.dmf delete mode 100644 assets/meshes/buildings/house_5_3.dmf delete mode 100644 assets/meshes/buildings/house_5_4.dmf delete mode 100644 assets/meshes/buildings/house_5_5.dmf delete mode 100644 assets/meshes/buildings/house_5_6.dmf delete mode 100644 assets/meshes/buildings/house_5_7.dmf delete mode 100644 assets/meshes/buildings/house_5_8.dmf delete mode 100644 assets/meshes/buildings/house_6_1.dmf delete mode 100644 assets/meshes/buildings/house_6_2.dmf delete mode 100644 assets/meshes/buildings/house_6_3.dmf delete mode 100644 assets/meshes/buildings/house_6_4.dmf delete mode 100644 assets/meshes/buildings/house_6_5.dmf delete mode 100644 assets/meshes/buildings/house_6_6.dmf delete mode 100644 assets/meshes/buildings/house_6_7.dmf delete mode 100644 assets/meshes/buildings/house_6_8.dmf delete mode 100644 assets/meshes/buildings/house_7_1.dmf delete mode 100644 assets/meshes/buildings/house_7_2.dmf delete mode 100644 assets/meshes/buildings/house_7_3.dmf delete mode 100644 assets/meshes/buildings/house_7_4.dmf delete mode 100644 assets/meshes/buildings/house_7_5.dmf delete mode 100644 assets/meshes/buildings/house_7_6.dmf delete mode 100644 assets/meshes/buildings/house_7_7.dmf delete mode 100644 assets/meshes/buildings/house_7_8.dmf delete mode 100644 assets/meshes/buildings/house_8_1.dmf delete mode 100644 assets/meshes/buildings/house_8_2.dmf delete mode 100644 assets/meshes/buildings/house_8_3.dmf delete mode 100644 assets/meshes/buildings/house_8_4.dmf delete mode 100644 assets/meshes/buildings/house_8_5.dmf delete mode 100644 assets/meshes/buildings/house_8_6.dmf delete mode 100644 assets/meshes/buildings/house_8_7.dmf delete mode 100644 assets/meshes/buildings/house_8_8.dmf delete mode 100644 assets/meshes/chunks/chunk_-1_0_0_0.dmf delete mode 100644 assets/meshes/chunks/chunk_0_0_0_0.dmf delete mode 100644 assets/meshes/chunks/chunk_0_1_0_0.dmf delete mode 100644 assets/meshes/chunks/chunk_1_0_0_0.dmf delete mode 100644 assets/meshes/chunks/chunk_1_1_0_0.dmf delete mode 100644 assets/meshes/chunks/chunk_2_0_0_0.dmf delete mode 100644 assets/models/buildings/house_1_1.json delete mode 100644 assets/models/buildings/house_1_2.json delete mode 100644 assets/models/buildings/house_1_3.json delete mode 100644 assets/models/buildings/house_1_4.json delete mode 100644 assets/models/buildings/house_1_5.json delete mode 100644 assets/models/buildings/house_1_6.json delete mode 100644 assets/models/buildings/house_1_7.json delete mode 100644 assets/models/buildings/house_1_8.json delete mode 100644 assets/models/buildings/house_2_1.json delete mode 100644 assets/models/buildings/house_2_2.json delete mode 100644 assets/models/buildings/house_2_3.json delete mode 100644 assets/models/buildings/house_2_4.json delete mode 100644 assets/models/buildings/house_2_5.json delete mode 100644 assets/models/buildings/house_2_6.json delete mode 100644 assets/models/buildings/house_2_7.json delete mode 100644 assets/models/buildings/house_2_8.json delete mode 100644 assets/models/buildings/house_3_1.json delete mode 100644 assets/models/buildings/house_3_2.json delete mode 100644 assets/models/buildings/house_3_3.json delete mode 100644 assets/models/buildings/house_3_4.json delete mode 100644 assets/models/buildings/house_3_5.json delete mode 100644 assets/models/buildings/house_3_6.json delete mode 100644 assets/models/buildings/house_3_7.json delete mode 100644 assets/models/buildings/house_3_8.json delete mode 100644 assets/models/buildings/house_4_1.json delete mode 100644 assets/models/buildings/house_4_2.json delete mode 100644 assets/models/buildings/house_4_3.json delete mode 100644 assets/models/buildings/house_4_4.json delete mode 100644 assets/models/buildings/house_4_5.json delete mode 100644 assets/models/buildings/house_4_6.json delete mode 100644 assets/models/buildings/house_4_7.json delete mode 100644 assets/models/buildings/house_4_8.json delete mode 100644 assets/models/buildings/house_5_1.json delete mode 100644 assets/models/buildings/house_5_2.json delete mode 100644 assets/models/buildings/house_5_3.json delete mode 100644 assets/models/buildings/house_5_4.json delete mode 100644 assets/models/buildings/house_5_5.json delete mode 100644 assets/models/buildings/house_5_6.json delete mode 100644 assets/models/buildings/house_5_7.json delete mode 100644 assets/models/buildings/house_5_8.json delete mode 100644 assets/models/buildings/house_6_1.json delete mode 100644 assets/models/buildings/house_6_2.json delete mode 100644 assets/models/buildings/house_6_3.json delete mode 100644 assets/models/buildings/house_6_4.json delete mode 100644 assets/models/buildings/house_6_5.json delete mode 100644 assets/models/buildings/house_6_6.json delete mode 100644 assets/models/buildings/house_6_7.json delete mode 100644 assets/models/buildings/house_6_8.json delete mode 100644 assets/models/buildings/house_7_1.json delete mode 100644 assets/models/buildings/house_7_2.json delete mode 100644 assets/models/buildings/house_7_3.json delete mode 100644 assets/models/buildings/house_7_4.json delete mode 100644 assets/models/buildings/house_7_5.json delete mode 100644 assets/models/buildings/house_7_6.json delete mode 100644 assets/models/buildings/house_7_7.json delete mode 100644 assets/models/buildings/house_7_8.json delete mode 100644 assets/models/buildings/house_8_1.json delete mode 100644 assets/models/buildings/house_8_2.json delete mode 100644 assets/models/buildings/house_8_3.json delete mode 100644 assets/models/buildings/house_8_4.json delete mode 100644 assets/models/buildings/house_8_5.json delete mode 100644 assets/models/buildings/house_8_6.json delete mode 100644 assets/models/buildings/house_8_7.json delete mode 100644 assets/models/buildings/house_8_8.json delete mode 100644 assets/models/chunks/chunk_-1_0_0_0.json delete mode 100644 assets/models/chunks/chunk_0_0_0_0.json delete mode 100644 assets/models/chunks/chunk_0_1_0_0.json delete mode 100644 assets/models/chunks/chunk_1_0_0_0.json delete mode 100644 assets/models/chunks/chunk_1_1_0_0.json delete mode 100644 assets/models/chunks/chunk_2_0_0_0.json delete mode 100644 assets/tiles.png delete mode 100644 assets/ui/minogram.dtf delete mode 100644 assets/ui/minogram.png delete mode 100644 assetsraw/chunks/chunk_-1_0_0.json delete mode 100644 assetsraw/chunks/chunk_0_0_0.json delete mode 100644 assetsraw/chunks/chunk_0_1_0.json delete mode 100644 assetsraw/chunks/chunk_1_0_0.json delete mode 100644 assetsraw/chunks/chunk_1_1_0.json delete mode 100644 assetsraw/chunks/chunk_2_0_0.json create mode 100644 src/dusk/script/module/console/CMakeLists.txt create mode 100644 src/dusk/script/module/console/moduleconsole.c create mode 100644 src/dusk/script/module/console/moduleconsole.h create mode 100644 src/dusknetwork/CMakeLists.txt rename src/{dusk => dusknetwork}/network/CMakeLists.txt (100%) rename src/{dusk => dusknetwork}/network/http/CMakeLists.txt (100%) rename src/{dusk => dusknetwork}/network/http/networkhttp.c (100%) rename src/{dusk => dusknetwork}/network/http/networkhttp.h (100%) rename src/{dusk => dusknetwork}/network/http/networkhttpheader.c (100%) rename src/{dusk => dusknetwork}/network/http/networkhttpheader.h (100%) rename src/{dusk => dusknetwork}/network/http/networkhttpprocess.c (100%) rename src/{dusk => dusknetwork}/network/http/networkhttpprocess.h (100%) rename src/{dusk => dusknetwork}/network/http/networkhttprequest.c (100%) rename src/{dusk => dusknetwork}/network/http/networkhttprequest.h (100%) rename src/{dusk => dusknetwork}/network/http/networkhttpthread.c (100%) rename src/{dusk => dusknetwork}/network/http/networkhttpthread.h (100%) rename src/{dusk => dusknetwork}/network/http/networkhttpurl.c (100%) rename src/{dusk => dusknetwork}/network/http/networkhttpurl.h (100%) rename src/{dusk => dusknetwork}/network/network.c (100%) rename src/{dusk => dusknetwork}/network/network.h (100%) rename src/{dusk => dusknetwork}/network/networkaddr.c (100%) rename src/{dusk => dusknetwork}/network/networkaddr.h (100%) rename src/{dusk => dusknetwork}/network/networkinfo.c (100%) rename src/{dusk => dusknetwork}/network/networkinfo.h (100%) rename src/{dusk => dusknetwork}/network/socket/CMakeLists.txt (100%) rename src/{dusk => dusknetwork}/network/socket/client/CMakeLists.txt (100%) rename src/{dusk => dusknetwork}/network/socket/client/client.c (100%) rename src/{dusk => dusknetwork}/network/socket/client/client.h (100%) rename src/{dusk => dusknetwork}/network/socket/client/clientroster.c (100%) rename src/{dusk => dusknetwork}/network/socket/client/clientroster.h (100%) rename src/{dusk => dusknetwork}/network/socket/client/clientthread.c (100%) rename src/{dusk => dusknetwork}/network/socket/client/clientthread.h (100%) rename src/{dusk => dusknetwork}/network/socket/client/handler/CMakeLists.txt (100%) rename src/{dusk => dusknetwork}/network/socket/client/handler/clientpackethandlerack.c (100%) rename src/{dusk => dusknetwork}/network/socket/client/handler/clientpackethandlerack.h (100%) rename src/{dusk => dusknetwork}/network/socket/client/handler/clientpackethandlerdisconnect.c (100%) rename src/{dusk => dusknetwork}/network/socket/client/handler/clientpackethandlerdisconnect.h (100%) rename src/{dusk => dusknetwork}/network/socket/client/handler/clientpackethandlerhandshakeaccept.c (100%) rename src/{dusk => dusknetwork}/network/socket/client/handler/clientpackethandlerhandshakeaccept.h (100%) rename src/{dusk => dusknetwork}/network/socket/client/handler/clientpackethandlerhandshakereject.c (100%) rename src/{dusk => dusknetwork}/network/socket/client/handler/clientpackethandlerhandshakereject.h (100%) rename src/{dusk => dusknetwork}/network/socket/client/handler/clientpackethandlerlist.c (100%) rename src/{dusk => dusknetwork}/network/socket/client/handler/clientpackethandlerlist.h (100%) rename src/{dusk => dusknetwork}/network/socket/client/handler/clientpackethandlerping.c (100%) rename src/{dusk => dusknetwork}/network/socket/client/handler/clientpackethandlerping.h (100%) rename src/{dusk => dusknetwork}/network/socket/client/handler/clientpackethandlerplayerjoined.c (100%) rename src/{dusk => dusknetwork}/network/socket/client/handler/clientpackethandlerplayerjoined.h (100%) rename src/{dusk => dusknetwork}/network/socket/client/handler/clientpackethandlerplayerleft.c (100%) rename src/{dusk => dusknetwork}/network/socket/client/handler/clientpackethandlerplayerleft.h (100%) rename src/{dusk => dusknetwork}/network/socket/client/handler/clientpackethandlerplayerstate.c (100%) rename src/{dusk => dusknetwork}/network/socket/client/handler/clientpackethandlerplayerstate.h (100%) rename src/{dusk => dusknetwork}/network/socket/client/localclient.c (100%) rename src/{dusk => dusknetwork}/network/socket/client/localclient.h (100%) rename src/{dusk => dusknetwork}/network/socket/client/remoteclient.h (100%) rename src/{dusk => dusknetwork}/network/socket/packet.c (100%) rename src/{dusk => dusknetwork}/network/socket/packet.h (100%) rename src/{dusk => dusknetwork}/network/socket/packetdata.h (100%) rename src/{dusk => dusknetwork}/network/socket/packetinbox.c (100%) rename src/{dusk => dusknetwork}/network/socket/packetinbox.h (100%) rename src/{dusk => dusknetwork}/network/socket/packetregistry.c (100%) rename src/{dusk => dusknetwork}/network/socket/packetregistry.h (100%) rename src/{dusk => dusknetwork}/network/socket/packetreliable.c (100%) rename src/{dusk => dusknetwork}/network/socket/packetreliable.h (100%) rename src/{dusk => dusknetwork}/network/socket/packettype.h (100%) rename src/{dusk => dusknetwork}/network/socket/payload/packetack.h (100%) rename src/{dusk => dusknetwork}/network/socket/payload/packetdisconnect.h (100%) rename src/{dusk => dusknetwork}/network/socket/payload/packethandshake.h (100%) rename src/{dusk => dusknetwork}/network/socket/payload/packethandshakeaccept.h (100%) rename src/{dusk => dusknetwork}/network/socket/payload/packethandshakereject.h (100%) rename src/{dusk => dusknetwork}/network/socket/payload/packetping.h (100%) rename src/{dusk => dusknetwork}/network/socket/payload/packetplayerjoined.h (100%) rename src/{dusk => dusknetwork}/network/socket/payload/packetplayerleft.h (100%) rename src/{dusk => dusknetwork}/network/socket/payload/packetplayerstate.h (100%) rename src/{dusk => dusknetwork}/network/socket/server/CMakeLists.txt (100%) rename src/{dusk => dusknetwork}/network/socket/server/handler/CMakeLists.txt (100%) rename src/{dusk => dusknetwork}/network/socket/server/handler/serverpackethandlerack.c (100%) rename src/{dusk => dusknetwork}/network/socket/server/handler/serverpackethandlerack.h (100%) rename src/{dusk => dusknetwork}/network/socket/server/handler/serverpackethandlerdisconnect.c (100%) rename src/{dusk => dusknetwork}/network/socket/server/handler/serverpackethandlerdisconnect.h (100%) rename src/{dusk => dusknetwork}/network/socket/server/handler/serverpackethandlerhandshake.c (100%) rename src/{dusk => dusknetwork}/network/socket/server/handler/serverpackethandlerhandshake.h (100%) rename src/{dusk => dusknetwork}/network/socket/server/handler/serverpackethandlerlist.c (100%) rename src/{dusk => dusknetwork}/network/socket/server/handler/serverpackethandlerlist.h (100%) rename src/{dusk => dusknetwork}/network/socket/server/handler/serverpackethandlerping.c (100%) rename src/{dusk => dusknetwork}/network/socket/server/handler/serverpackethandlerping.h (100%) rename src/{dusk => dusknetwork}/network/socket/server/handler/serverpackethandlerplayerstate.c (100%) rename src/{dusk => dusknetwork}/network/socket/server/handler/serverpackethandlerplayerstate.h (100%) rename src/{dusk => dusknetwork}/network/socket/server/serverclient.c (100%) rename src/{dusk => dusknetwork}/network/socket/server/serverclient.h (100%) rename src/{dusk => dusknetwork}/network/socket/server/serverclientlocal.h (100%) rename src/{dusk => dusknetwork}/network/socket/server/serverclientremote.h (100%) rename src/{dusk => dusknetwork}/network/socket/server/serveroffline.c (100%) rename src/{dusk => dusknetwork}/network/socket/server/serveroffline.h (100%) rename src/{dusk => dusknetwork}/network/socket/server/serveronline.c (100%) rename src/{dusk => dusknetwork}/network/socket/server/serveronline.h (100%) rename src/{dusk => dusknetwork}/network/socket/server/serverthread.c (100%) rename src/{dusk => dusknetwork}/network/socket/server/serverthread.h (100%) create mode 100644 test/script/test_moduleconsole.c create mode 100644 tools/writeifchanged.py create mode 100644 types/console/console.d.ts diff --git a/CMakeLists.txt b/CMakeLists.txt index f3a57347..733e4995 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,6 +13,7 @@ cmake_policy(SET CMP0079 NEW) # set(FETCHCONTENT_UPDATES_DISCONNECTED ON) option(DUSK_BUILD_TESTS "Enable tests" OFF) +option(DUSK_NETWORKING "Enable networking support" ON) set(DUSK_GAME_NAME "Dusk" CACHE STRING "Game display name") set(DUSK_GAME_AUTHOR "YourWishes" CACHE STRING "Game author / coder") @@ -90,6 +91,12 @@ target_compile_definitions(${DUSK_LIBRARY_TARGET_NAME} DUSK_VERSION="${DUSK_VERSION}" ) +if(DUSK_NETWORKING) + target_compile_definitions(${DUSK_LIBRARY_TARGET_NAME} PUBLIC + DUSK_NETWORKING + ) +endif() + # Toolchains include(cmake/targets/${DUSK_TARGET_SYSTEM}.cmake) @@ -116,7 +123,11 @@ if(DUSK_BUILD_TESTS) endif() # Build assets -file(GLOB_RECURSE DUSK_ASSET_FILES CONFIGURE_DEPENDS "${DUSK_ASSETS_DIR}/*") +# Deliberately not CONFIGURE_DEPENDS: that reruns the full CMake configure +# step (which invalidates generated headers and forces a huge rebuild) on +# every single asset edit. Re-run cmake manually when assets are added or +# removed. +file(GLOB_RECURSE DUSK_ASSET_FILES "${DUSK_ASSETS_DIR}/*") add_custom_command( OUTPUT "${DUSK_ASSETS_ZIP}" COMMAND ${CMAKE_COMMAND} -E make_directory "${DUSK_ASSETS_DIR}" diff --git a/assets/chunks/-1_0_0.dcf b/assets/chunks/-1_0_0.dcf deleted file mode 100644 index 70bb62209e75de265f3e91e145eb939fa13cea15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2235 zcmZ>9c4J^+U|?VbVh|WCG{iNyNm{!Tx6KflQTyo=4zvzudYO-&p6F#S%$|X^ALb51 zG`c$p@d=qnsyre4(B(-rpOAWV^9k_@nKvpA3Bl2Dz#k4Qx%nxnImP9Mt*5=YP?Cj30$oM14Dy7ND~gVX7R=_wIFo@ Vj(F4>#T&uYIsnxj0GiFf003?mG?f4V diff --git a/assets/chunks/0_0_0.dcf b/assets/chunks/0_0_0.dcf deleted file mode 100644 index eccdb75949aa81127f031acf4528f6750656d4fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2146 zcmZ>9c4J^+U|?VbVh|W;8sZAVB(2;@*k*`|;c7pv{6#Hu*`N``L?X=&RZpoqn32o@ znMEvSMbZailIxC9c4J^+U|?VbVh|W;8sZA_NlM*MzReJw==S3>4_zIMk4rtV;xKbyG%kHGd2||= zdSb1w znwJfw;tk>rf!IJVt2jRoB_Ti+CzWRAq-5r$7wc!_mlmhSTg02d)Hc{NFn}-v0}i#u b@y0N<297{w4tUfW#T&uYIsnyy)iVG9`nfam diff --git a/assets/chunks/1_0_0.dcf b/assets/chunks/1_0_0.dcf deleted file mode 100644 index f9f7654c958f4a2fbe56df7be1117e7cf60ba87f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2322 zcmZ>9c4J^+U|?VbVh|W;8sZ8}l3wn@v>76T%YJnAxYW@~e5Bh?t8k^2x#;l)SYz@=fM&(n1(7&D$UGE$;?YH*3ZZ9c4J^+U|?VbVh|XmQNsbkBTUjN+z8u@>Ry;T(DlK@Nu|-v!No^67hN5?Jh6Oq zb8zv|%|lm*E>A2U-5gweV$B;>2MNK^a2TB7Fq*yxXS~olzp&)yr=;c->nCTF=4C^v zctapGh&Ry7D$dVCNf=PYNu`-NDVcfc#rhffrNyc7rtzjQwGIwI4Is>bL#i3=9AuWiz}0 diff --git a/assets/chunks/2_0_0.dcf b/assets/chunks/2_0_0.dcf deleted file mode 100644 index d26e7bb528801010fb62e7275a921da5084cf6c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2102 zcmZ>9c4J^+U|?VbVh|XmN5f&LqyuJXdL@>|=PyXCBS>QM0kQVN)D33)iSaM8`$1&} z6A%+ilWIO8^{_IFSelS|q{@Tr1p#7dQq3P#4+-DVaG+B-c`{LB?9hI(4{7NaW&wJd)7|;CH^?e+@pL?x-b&eq% zr#{z+cTBZ&s(HrDLN81{oUWHfx}Dp7;*}%+h;=S~iD|Vi0o9!q>z&+#x^-2{PhD_d zG`b5I_n!Iya$dU!ie)B%z&7*giP@91O_|aeb-E)s*U3Bb|GdYX0bDw19P1nu=50-3 zps^Z{Y$_WV>V0mad;{`X>eSn#CstnSeG6}@PE5Yt%O0}rF6BJ_56v`P^I0$>9GMt6 zeVPF!Jt!`I2f3IU^p16Z;YH-Xw_--pI-xtQ!dg=^G?VznT;lNRt_U_S+FsGse4E6W Nk(5r}ukwg7?+5NxZI1u| diff --git a/assets/meshes/buildings/house_1_2.dmf b/assets/meshes/buildings/house_1_2.dmf deleted file mode 100644 index c308143767f69062fbeedd4c1179f68347c01bd1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcmaiwYi;c+XPN z-hXtrK2|I*W$EAq-<bD*D2`sJKF9SIFO9#shH%FS5kO%tIb!dp=7ziTvd3Vb zW8R?$O#^?rD+#*kQR!@s-oSf`8_phQd+7->ocl@gh#TuBt##BDp$hZ}H3Iq$ZV+(J z=91AHiLU9~)xPpl#C{V!H@1CCN7^E?>sovNyo(Q9{44L$G$UNBZ=x5hbME`#K*TTd C7i%a0 diff --git a/assets/meshes/buildings/house_1_3.dmf b/assets/meshes/buildings/house_1_3.dmf deleted file mode 100644 index 2cef82ef397e17c7bed828d9200297a28e52b76d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcmaix?QH}h3<(_ADR{hTJH*RaUr@Fe?|D}A@>AmuMJ)&m9)u~w- zz2w*8g|TGLgxRm%npMY{Ft@1l$*5UZE}r>MJYo7yFEwF5>p^pmT=z_vI?l#?H$i3@ z{amXTMyza*-3vqes-NDTqh{iD24}+D-)*4UV;t42UKmSOrh2}1Yq(Q~XN#zcyY=0; NnR;}0KiHM)5x>|wcW3|r diff --git a/assets/meshes/buildings/house_1_4.dmf b/assets/meshes/buildings/house_1_4.dmf deleted file mode 100644 index 4c6a9fb1008ff36e6827799770ae31a07acbb3ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcma)&Q4Yf}2t%`z4NcSjcBdYFHqA>(muf?zfMXlf=lj)et+j`8jxF|iyC1b;#(A5S z!i#pryVBVQZT9T8pAxUE9n;GQv@0GvhjysCZydnT8&i(C-(!rZek-0a2etNR41EeB zzmtwzs>jZn{p)?auQXuw4zyrfh^1t{l#T=g}1`&1YWhN^Z&M& zlBj;o-aX-Yc2E<)z|PuTS-w$vT4CsNhi9c@+8JfeSAB#v?lqI~(#fGH%3pfA61IdbH4OH%v9qTjVes<|tdhs;X+LImk6h#QcK`dG zwK8$uR;SrF-G4sK!K)r!GH-YG!lWbcqESW1tidov-I?x#`MNi4!HA&?fKN5U8&f}6 z>34=-dhSb+0{I}S$*!5mL2S*TIfEaGc?sJri4}RDW9@yq8mD9iDh`N QQS^ov9ktFAyM^!YH-=Yv*Z=?k diff --git a/assets/meshes/buildings/house_1_6.dmf b/assets/meshes/buildings/house_1_6.dmf deleted file mode 100644 index 267305335aa0ac01c3cb2de77b751871121aa0a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcmaixQBDLw2nF$E5@Y=HP99~CGDnl@?wV$1*GR$u)$hSZKfk}?Eh0WDuW{s@f8KZP z4DQ?28S$U)FCTmK(yJRR=j>e>Izz7-sycU_OjFf6V?J44?+#lrmcjFh1xVD5{h={kCKqshJBw^)q1dxyS%O7|4S^xeJ8gumH&QXVSTO_(}*Kcf=*HX(!-XLl2X!^at!vfv9qTjVes<|tdjflVLxW}8@a~m?f$yW zTA4U+tJCb8?mwUA;8l+T?o9W=eBGP2V8qY`z^9twjj123 z^gF{Zy?LICPYe&WsV2{R=&oY-NVDt|a2<2r{`@!a_Ed(wdc~xz>}np~tUh;2%MNx@Ep#8z8Jg-9Q^KnEluy|;(G4B5#4^0s QD0;(-j#}r59pQWXA8dPu7ytkO diff --git a/assets/meshes/buildings/house_1_8.dmf b/assets/meshes/buildings/house_1_8.dmf deleted file mode 100644 index 9eea5b56e1cbacb3d8abdb13d53bdf45f4d5b94b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcma)4(GtQi2*WQEJ#TOR(>`sVCSe2%>zv%xHX#XX&)0jAn}|GZwR-G$y$}1qfoHEd zMJ{xwJ_Lmq$JBw-9p~KOpv#)g9lX$aX6WeaT%SSgI+&Esnm5zY!yQhZxswA;Lj{*w!<((kxqO4kTQMtV#SCEY&F+h)+KN1%Z+O!WS2S}` diff --git a/assets/meshes/buildings/house_2_1.dmf b/assets/meshes/buildings/house_2_1.dmf deleted file mode 100644 index 52187c10703c12310072ee5af5361bac7008025e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcmah^TaLp(2%|UIn-r~9{p+22^x6ayXOec2B7+|=`FlR%77@Srj`g~4voJD3J+XRl zSM{Gy`nN1K`E-luJ>TTz{?#YV|6{Vb-y(OF6;~Pfr_gIRarH^_w|?T*EN_gLL)whq zYxTLN{@`hn+=0(c5LXCJbH@h6%QpfVX(ui>W^}ya2i(l+g|w>&vc_xK;u2zW^i^g1 zfz(!C%`{SHrR_&w1*C7ywz>m+rvmpWJGbpW4tZolcPX@wt*UmUrVYgr)rVz^qt!TV ykbgY6?;s~VF0!?w{j0BL8lYDRdvtEReS`D5&ttA#W!*dXN#?$Ha^R|nr@LyQ=-G&?Vn%c^fHi;o-yLgqekXT+iaE$#<@yxMP5Xl966jU}BpStEQ%N zoD|=^rVWqwRjAL*? zd+kQ_5YI3!YH~Kv1D>f#ta`PNju|-DE&HUVZj0bjs|s?rcjZ&&_p&Wi4Y37h@<2eRqdK;MgX{*KDx*A|3)`3|LXzztPJi*)t_Rc#o zy3M;+3|=$pRJroP?*+3?J_^B9Sl=;m%vo+mwYFEyF9*SsHlG0e@n*Y^wSFtkp- RP28H?-=+yztJlE?N4tUX`F^!qYwdwG$7Q{~?!i%4<~%f^ z$nBRdd!}O~@{&mB%zCZ4V#B$=pLFWg*avG0)RnC>Sc|z2`V8dq?sV>>7&^s??PjEw zW{Z17&P}oE#Opq3;(%=8)(^z|ZD6XymYcYAd4R-O1!C5ry#6k*wRXP#|Gs$L&vW() z9jZ~2>AlRcsH<~9_rG)Kjx*fYy-IVpK4a&tv!}br3~$q&$xu^Q!|MZM|9|H0`mJ~K z*@u4Bf6~={u3zq4S=I7=tew%rntKVa4L~}cp(f8>WDN6f{~(t)bvoy+e$25h`vA4} BV_5(I diff --git a/assets/meshes/buildings/house_2_5.dmf b/assets/meshes/buildings/house_2_5.dmf deleted file mode 100644 index 76f6f45335c433d089812d6a5723cbc2317d52eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcma))(G9{d3`ET)Y(j((f9%8vjL=azJ9)0#rUFYP_RHNRMSZ-Ub}_TNo^36y&+psd znkx%FG((ZgFI{G)V{Py{K^Ls`nR8*QbACT`WSMe;RpXBB&+r)*HtDm}lQ+|a&&ASF zXKZ#xYTew{|D@*m)?VjqUmMNXbhhEGZ@}W+#F&RI7dX1yP!p^ISnCk)Rr5y=v#BR< z#@r3B-eB^=To={WJmY=E(2-?gQCiQ~=^4YC8O*-6o;UMy&fzZjH)y%gMOf#%{xu5aA+C)cI>XnhD9&hTz LqI@M!eb4&>sR(I# diff --git a/assets/meshes/buildings/house_2_6.dmf b/assets/meshes/buildings/house_2_6.dmf deleted file mode 100644 index b200e0b65cb843ba743a90a1f93b52c0de88881c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcma)&(TxHz3`9+3XCZWd^h7C?LTQYhJg;}j3M_@h&oh%OxBI_c%3K0a>Vh3>rT>$pZ^rmT!5+_llt-%fzy@pRvMxoEmSL diff --git a/assets/meshes/buildings/house_2_7.dmf b/assets/meshes/buildings/house_2_7.dmf deleted file mode 100644 index 5a5b54616b300c36a9a10af0b9bfff924cf54d5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcma))(G9{d3`EUjLQ9hJ9)0#rUFYP_RHNRMZG^Cb}_S?o^5?vpI_I( zHCGmVXoez}U%Jdp$J*d^f-YF=Gv~rq=lp)?$TH;wtHvGMpW!nsY|>|`CvT<;pNplV z&e-gX)VjH?|4GgBt-a3KzBZb%>1@MW-+;xti7^jbE^u_Yp(a=bu+|~oMe|z^v#BR< z#@r3B-eB^=To={WJmY=E(2-?gQCiQ~=^4YC8O*-6o;UMy&fzZjXnhD9&hTz LqI@M!eb4&>k1Tb$ diff --git a/assets/meshes/buildings/house_2_8.dmf b/assets/meshes/buildings/house_2_8.dmf deleted file mode 100644 index 38b1707c5b83a946cc4fab9e4dc991b5164f36b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcma)4K@P$&3@a}qAjFM7?P)v>JBy<>%YaC2Q^$^%YLC}*T*er8tP;2VzFh-1oD=3a zu`Yh_vga2qOUYwD+wbWc7|ftms<+a& w`Ak3hEqd$cUHVY~-XQ`LSM#3Dk$SyB^H%DW-0<)_^J%ukm>8D&A>Y5{19|0Q@&Et; diff --git a/assets/meshes/buildings/house_3_1.dmf b/assets/meshes/buildings/house_3_1.dmf deleted file mode 100644 index a36cffe899cefc502698e95655238bdeebb2745a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcma)&Q4Yc|3`4_BxCs$L{Bb9aPVB~AmUTd+t&RPhb$z^^b}_SiJo|dzMz7V~Ona<& zpsnf`C;wX(o;a>PdhF*}LaSBz&dHnE671S4D~&PV!Ziz~bLdgvRA*Yxf)~rIZ+)G& z;>fqxZdQ8GcDfHk8rRU&XKXIg#Z4nN@(!90W%_Z3YiR1{ot|h&i?x!4#(PN(9IDO( z-#PT+#%7z(c{GRCv*hc`Ym@uXkXvQ-ZOb#yUSlE)Z|cd(#!AntvT5+}^n3Ydo|t-n xXY+PnkF%_}I*)vChe}PX<^Qhc)hu~r^MC1;Y-J5xR{uB1yen?vmGh`^-Uln+WpDrh diff --git a/assets/meshes/buildings/house_3_2.dmf b/assets/meshes/buildings/house_3_2.dmf deleted file mode 100644 index b78ceb508a8daf699d57c875c28d4ba1c66eb9a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcmZ{gQ4Yf}2t%`z4NcSjcBdVEcEA+U1c?9-Lz=$7pYa%Dyx@zO*T1JnV@-#V(I<1% zPxJDm)6PB=Rm`$V9T~js3x>{R=IKtSUG*IrTp6{=u(R#s5ST1=06Sf~H-=7(eD0&p zTrBOZz*MKsWyz%r+=6B+Bx~Hfn~XI)Yj5Y792$LdHpx~q06I*wjC_x3=2LTE=%%*L z)_m@u5LWk%crRJir*0D+oHgGkw$7dz?pe81YQwe~=sqsOTGeY^v;Gjg&j z{^>OHmzO>1a$byDd&PW4wO2aL3eG`#>}=n`S}c9B-0rP(WDM#QSFGA0ZF*z<6Q9T4 zu1o#)IBAX^*@?$!h;`OT)uX$f;?k`SJn-$|I(c(Gw5o$=WODm|V(3h5YM`Z;890mK zltI>!hz;v|D$cwRzid=R}-^^qAjfP>l1K5ojWl<2d&i z1I}wc>#pnB#ZYiaQuRgNX{By5w z^E_(OrOo0WN6#y-YH+2W)ttF#vBzvK9KFo@z~LRWafWiV;_)6t^v*bG3US0ro6UeN zUOT=??5Enu6@GYh%wCh$=~fG9S-CIrT0NfVa7X3*omGn*-px|_`XV>q!_72r)7a=0 zD=(Tjg|zG|X@$Fli!+?)ey_YG{4H)ZW2fqjmh77gFSEz9v=;77;f~;1-8Wf`RtU7! zna8=o+WNtm9Wz$_qF-m3aj{?Fojb*@!ET=O-;k!Wpha(%Piyk6=;hTK#-{ee3un~z HKHd2b!_slN diff --git a/assets/meshes/buildings/house_3_6.dmf b/assets/meshes/buildings/house_3_6.dmf deleted file mode 100644 index bb150cf015061c0ce710584cd8cdddb9a20d5536..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcmah`!4bnC409)|uh;9ZJ9U(d!f3Ss5kZ{9cMe#VWCHK+#~x<(ikzc(tAEe7den*m z2bRShkDgar^vJ7z-fGSzrXJZ`^62H^Lmss&w$4CJtZKr8q1ucG3;`bF49jMaTeZI5 ziTa_p@+yD%Oq|{WHsRhH#0u(2)~&mLiIcZ?j`xh7@~Cw;+ak3lFT>!YIJLmwg#^Yx zT_O!BZwY*hRIgx6{|ioySiw7+(OGTADEj6?tF!ei!y>dMZ^Sc?eryUjNC{$RXI|%u xboeRf&QJ9?OEy>iDnEFK=$LZ1z%oD8@_d%u6}<+(&p_?5rV%t9Xx6l!K@$>wc>#pnB#ZYiaQuRgNX{By5w z^E_(OrOo0WN6#y-YH+2W)ttF#vBzvK9KFo@z~LRWafWiV;_)6t^v*bG3US0ro6UeN zUOT=??5Enu6@GYh%wCh$=~fG9S-CIrT0NfVa7X3*omGn*-px|_`XV>q!_72r)7a=0 zD=(Tjg|zG|X@$Fli!+?)ey_YG{4H)ZW2fqjmh77gFSEz9v=;77;f~;1-8Wf`RtU7! zna8=o+WNtm9Wz$_qF-m3aj{?Fojb*@!ET=O-;k!Wpha(%Piyk6=;hTK#-{ee3un~z HKHd2bsrG&O diff --git a/assets/meshes/buildings/house_3_8.dmf b/assets/meshes/buildings/house_3_8.dmf deleted file mode 100644 index 675c68de43860d4f838342de5dfe6c95601c0e28..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcma)3NfH7v2#hZiEz6sKny2|R(?B!8WYkn;q0>v2$Ll#RV~qRkt=+8Nt~QIzIbpyR zv+X+m;L)>+ymBq7-~kh>BiAwTqOEe17QB29>N?glPzR5s^ZeJs+O2A=-ypWM(TKb}qB;D=w) s%lf{>4}!@%G{?y0eNm(1EX0bIZ?JePdIjGzP{WV!N1kH3Ifp~;2b8aCG5`Po diff --git a/assets/meshes/buildings/house_4_1.dmf b/assets/meshes/buildings/house_4_1.dmf deleted file mode 100644 index c3349b074cf9b614855bc6a979a030b13a693241..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcmah_TXF+22%|U2P0D04{p+1_^dcFt+O3l?;|25puOGiZ@f8vGI_G$PuYPhyOkEu6 zXJNbeq!a(n3r;%b?47+=n9p!MYTQq{;e?rSbdBx2!YHX33indu?@~J7JD$=Y{QY)b zYFbM}?&s}v)L%Zji^JMGSguN1=EBsEt_$JPIWO)XmJ1oa{_$3r`gzkA7~Il^d4cgw z8-otv^Ps=#&`ZZ6kNKPju(7Kb)G6}Rt)?*gHuux+=sQoZG35m}c*)5 z^U?#0VQ3NLvNL+sox$^6Hr|rId@JqrH>KV`xf*GscW~#Mz0|`CO&x}L8(Arj?)q7+;`U~H34pRd2`ab4H1atoXN_=%gIRDgM! zx1UGgCtiAf3WbE0S@FP>i(g=xyu)UB$4jpPCwP-B-wktpV!9VUM9d<(_KvsgO-=u% z4XeFiHV3KqPFVK7cT)UJJb7(Y<-!RRY{6{~3Zqw6KgV?zE>6C=hG2V`08)`!ZnM^_ zcFqCQ^j3?{2n~K2VCi?o@9n&L2Ry=>ziJQN?tj=3thuL}D86WG_x26SLfU*Y7<>ck zVQR=8rbc;s^S-xB-7B=RTzr?^$t6VkJh7&l*Ne7(p5kj`I)5b^!|K|uQA3qp1mU0dfw`d zwKMWrnx*L9Pda6`qdR#?q)QfSt+`_Dygr|F%9_YYX2vr+&&ajk7a1z|Ug>=9;jwS( zOmmaP+L2#OYtHo&PZqw@{iZ2Qw(;_c<+lRUy3!wz zW2Cry$*2>fj!*t;3!#KDiQ8?f|UoKJIJr*CkW;T?5mGU?c>BGB=% z5@UWov3to_|K&+DWB)&{@-j?6(5Hs8(QAh1r4)OAs+hFyCG$M@>b|4y%RTqHc0{k3 QCol6^WLbPy9@)zK1u&0yi2wiq diff --git a/assets/meshes/buildings/house_4_4.dmf b/assets/meshes/buildings/house_4_4.dmf deleted file mode 100644 index c49548905919438e759ac7dd9860aead0c6ed30c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcmZ{iQEtO93`4z>O(=%_?M^-VBwEjAQpZ5zh<>ExqCbDX<78(qwSBXc|U7v56fq{Xc1i?*G69`6h1S>8i^Dmx$6y@%(C3CQWgd*Zw=t|v`? zvU`V>H#KT{O3xQM9J=oprVmQH=rIq_)F(CSwyg~vZXM*uea1R-4)2JmQx^kw(v;Kx zOZOJLe3`-WywUe{&U?rcnbY~=N^I?^Mw1=bAsckJTEivQj(cxtE#8;kQ~@7`jK5<--f7 Lx(@Sxy&P diff --git a/assets/meshes/buildings/house_4_5.dmf b/assets/meshes/buildings/house_4_5.dmf deleted file mode 100644 index a6501df9d6a9b7ee6605ee3d39a95ac3c7a9fa25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcmaiy>y5)O41?WGvdIaDqW^9ukI)e^>XEW(GmeW2a3XysCFk+{dzD8iVqU-L)N?v!CNGI}$)eSoD>j|`^GT;(6@8MKab@d_to?b>L*d??&gTw~ zy;EnJn=IOn{9>v(*F!v6_|D8PnvTgXynDs+U4f~d-C8Cto$n`efZTQR9#P60OLavq z-HxHn(7Kmedc~+?keyhCt3NNE4kmiFV$dS98|0$m(Y%lWy!I zIRh6i3$dKJc`xf+vyOh!)R;3q^>aVZveS9L)I)cR&ZIq1>lEp8hSvvK? SZi`TI{Wqkm+UNcDzx)H6w&Lw?BWs@rsCV5z1Lo`<=nrYbeh#LrF!gI%uf(PE^I{HAyH4KBhy$s9}T|K$zQu7DW; diff --git a/assets/meshes/buildings/house_4_7.dmf b/assets/meshes/buildings/house_4_7.dmf deleted file mode 100644 index 160e5e1f2c1e1ba30490d0266eb2d587fee68697..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcmaiy+pWVe3`5?O6EpGe#zS>{(pD^HW zU{n0yx#uMH8ps6?ezMO|*D&xRrn*TB9(y*P>pIqJ@SN`}uB?6&4;UiP>I|b^Naua2 zGd)qwP1=b^e*3sK!>rkA6u&mVtetoz-{#Dm`DHC;bLjH^;yq5VGcE4|jV}0kWWR-X z#L~R;N?nMMvzbtvu&za_gp|`hC`MhYi)5~I7!P=a=+1fu<~?H{k!ISlf9r-0oA&0M zLBi-MC%r(Aob?Q?_Y4d{KWqe_7P8Nodnh*f6{XK$n3a14U;RATOS&8I(%;uTKCgLm AasU7T diff --git a/assets/meshes/buildings/house_5_1.dmf b/assets/meshes/buildings/house_5_1.dmf deleted file mode 100644 index e01e4b0f4e8a7b9d7a5440b1424251d012b23da5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcma)3?F~XP2*gd?L}HBp+{sZKRgQ9$VxLM4N%*ymXct5x+~M=rg^*s-0LnA>!ks~4KC!;FHCb%b><^whdn=Unr4 zI@hta$1Ix02o+!WuU}Eyk>@*^ld6T$+4y9m4Km0;D3nRI@c->Zj&` z>GbGj58m8|j@b8&_}^WJzH~IU_D}D|p6)<0!=mm*4ByF{cT+8NyOp<$@WN9^Ut#LV zJxqfVJ$XfMa0M)DGAH_)XKL{7?6gmc6?VS2?L#fyzX+CEs)1n=_nlyKPMtinu6}q#Ihu(xj!G}QcAh`8evxJ_qFbu z*O`NdTj8HhnZLaBq>DVOwdRV;8LPR{DQoi_>ExZcc?Pw(@OXxhy(=9YKqs7Ws~OUU z*ZP~}JbJS(^wVe1v>x2RTWyFlYG0~rw|~V;*E`2|rk8c{?tX`t^% H`(f?}J@k92 diff --git a/assets/meshes/buildings/house_5_4.dmf b/assets/meshes/buildings/house_5_4.dmf deleted file mode 100644 index 7eaf2865f0698065f45a00c94ac37dfe7429b49f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcmaiwQ4Yf(3`5z;hNfwMyHk(CQD+AXE=#vaX~~P7&_3Uwb$A!<}}p47hIgKIsMq(?Zryp-<}KsSfjA54F~7~A80RrtMH3ku z$GOKCaD;ma=yjIO3!@&?CwsM%^CI*fr88*@G~AudbDQp0l7BU4$$)tZ-bG&N$Rhau G`i>9y?|1nC diff --git a/assets/meshes/buildings/house_5_5.dmf b/assets/meshes/buildings/house_5_5.dmf deleted file mode 100644 index eff99b288a07dec6b931e21f1fa9e348c94fad2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcmaiy?TrI52t>I~wv(Xflz-_dC2R>PH9Xs6vz((t@~#=)0QvZRKJ3TL?s2a1_MX3P z{Y{=Vbmg5`Pw6l_PCb`n-Q-0P*EH|B`bk^PwGT|?a<4oCKY7-6UTJM!@QUn(sT?^` z`|q^sg^{1T`O0%YN|i&aabZRg?V@`xNNaOKQ$B3-C0*Ps#HH>?Epzf7Zg$2|4kK=- zMVrZHFDyQ3a0D91IO#VMmuCdA|DL_i{5GTchIig|@$X*EuDi&ZcSaL8>v4H|JUA(& z(SNsdotvz)pBQ@m*Dw3oWj8nXYkY8jVrXKI$o1bqV-IQBi*B6pdE+)Y^+Idm;~g)2 Q@``IYNYvC1?TB;w2kZfU82|tP diff --git a/assets/meshes/buildings/house_5_6.dmf b/assets/meshes/buildings/house_5_6.dmf deleted file mode 100644 index 66cf599382ee5341cb0d26243d6df36a59bd2fd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcma)4(X9g^45O1Zs-F7SojMAmFk0gTL*T+|Bjq5D?I5_n*R$M8DG$vxnt1)b`&zY* z7;s=&eB;scKP`IXnV)#gxx}JJHkUklRrMi{+8x_xpeAM-^*fAF-xGv6 diff --git a/assets/meshes/buildings/house_5_7.dmf b/assets/meshes/buildings/house_5_7.dmf deleted file mode 100644 index d77782b777683ac16d6f44c64af82353dea70a79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcmaiy>kY#o420duimIyrxfgzAuBEjeHZ1Q-%Uv@LI2i6!Vl>Boq z_lVqU)TyoFAE%yIUe?6rexc-=E6w*<%@wC!5q-qTJ8Sa{=F+kUJrv%%;;1pmDR$aw zhS=;4{hj!Jtj%2Jr^~?98nr;vD-CTL z>%C;@l}3(1Enyj#` L&d9<0>6`xm(j|&n diff --git a/assets/meshes/buildings/house_5_8.dmf b/assets/meshes/buildings/house_5_8.dmf deleted file mode 100644 index eabf0f664a380859abce6bcc765d582de8e4cdff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcma)3TM_~>2&*R(9mhZKv`6tM9!)|C3v7Kb)9n%x($d@GK2BqdtF9K8nQ!O0KSlS1 z0XJ-x>-PtbJ*&tw*CGoZFqwJyItE_E$~S4j%lDwJW8DLJU=RtFwcm;d3}GJgH}2K3 zl?U}Em3<~zi(2OyzkLeFYrqOFvk+LDUu(H*zr07$Bpy9B^?d1KZg*?G8ACsEvlbY5 z#K1!oZF)=c*vohj$lkwWpFAM55a08r7<4Nwz57{0uG*2_h`gxdC(ShQG{1j*LznvT yY&L@*{fb`J_bvS(P~IUNBbWC@j)k)jD_YKAF)Q{8zIz}?KhBRl!%#%+;QI!=-glA! diff --git a/assets/meshes/buildings/house_6_1.dmf b/assets/meshes/buildings/house_6_1.dmf deleted file mode 100644 index 9eb483a1351ca2fa0481b8f0c2699ae4009c43cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcma)3?F~XP2*gd?L}HBp+{w`#O^$MuVxLM4N%*ymXct5x+~M=rg^*s-0LnA>!ks~4KC!;FHCb%b><^whdn=Unr4 zI@hta$1Ix02o+!WuU}Eyk>@*^ld6T$+4y9m4Km0;D3nRI@c->Zj&` z>GbGj58m8|j@b8&_}^WJzH~IU_D}D|p6)<0!=mm*4ByF{cT+8NyOp<$@WN9^Ut#LV zJxqfVJ$XfMa0M)DGAH_)XKL{7?6gmc6?VS2?L#fyzX+CEs)ax+7p&k_pfEtK3Q{53D`RTK&1Vy`s(> zd2%cK(kb)G%bs+eXRX#;aXDi(S2|@? zCOMD2S?Bucv(rS6+>W=_5NE8hRJZQ$wFZ+3ym5v-y&9}pyosC}CrgtGnZ@qd0^j6-O*tVF#f_cUotNU0Jh820# GwYgtQS%1j@ diff --git a/assets/meshes/buildings/house_6_4.dmf b/assets/meshes/buildings/house_6_4.dmf deleted file mode 100644 index cda4f39bf86d8348373d7f3620a46d2855ea7b67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcmaiwQ4Yf(3`5z;hNfwMyHk(G(Pjq>E=#vaX~~P7&_3Uwb$A!<}}p47hIgKIsMq(?Zryp-<}KsSfjA54F~7~A80RrtMH3ku z$GOKCaD;ma=yjIO3!@&?CwsM%^CI*fr88*@G~AudbDQp0l7BU4$$)tZ-bG&N$Rhau G`i>6kY#o420cHvPn@@^Boq z_k`SQ)TyoFAE%yIUe?6rexc-=E6w*<%@wC!34O%LJ8Sa{=F+kUJrv%%;;1pmDR$aw zhS=;4{hj!Jtj%2Jr^~?98nr%C;@l}3(1En*p$` L&d9<0>6`xm`DTJS diff --git a/assets/meshes/buildings/house_6_6.dmf b/assets/meshes/buildings/house_6_6.dmf deleted file mode 100644 index 75e4d9af7ef65051df4b11422a3fc25c53c60a94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcmaiyVXgu(2!!!u5@Y=5ojgj9vPY9?JMAp8k%VU%z5(L%`F`2W%pQ^FIDFKf`}jny z8g$l!*ng>msW{Huj{Tw+3c0TNs5y_?cJ6z?WKL)44){^4R(YxQeZe!-3np`@5qW;4 zWiJ@|@iyPJ&O!@Hy?iO3c~aZ9yV=XE}~pO_k1kGe%x^VG}xOn%SmRn}r213r4Wv)2Hk$9d2^ GviTS6c!*g5 diff --git a/assets/meshes/buildings/house_6_7.dmf b/assets/meshes/buildings/house_6_7.dmf deleted file mode 100644 index b02e05153b2391a7db49eaa1aeb77697c4e8de0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcmaiy>kY#o420duimIyrxfgzAuBEjeHZ1Q-%Uv@LI2i6!Vl>Boq z_lVqU)TyoFAE%yIUe?6rexc-=E6w*<%@wC!5q-qTJ8Sa{=F+kUJrv%%;;1pmDR$aw zhS=;4{hj!Jtj%2Jr^~?98nr;vD-CTL z>%C;@l}3(1Enyj#` L&d9<0>6`xm--?cT diff --git a/assets/meshes/buildings/house_6_8.dmf b/assets/meshes/buildings/house_6_8.dmf deleted file mode 100644 index 637bfa2126e3d2d4c3ac40d810767a8b81a1918e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcma)4Q5M252&*R(eLnxZ(~joRB+xLxZpwRWOPY|u_IN$VWsGsxr^U_l?dtnmbWa#? z!~D9gKX|NJMKhaPWWfU_o`>(mz>8SP;&9OtKbtooD>E6wbT@R&eo)z}oy;$z6N$J&Gpr=&`9M`eAOpHQ$V(9=TZy%<9Z~ z;30}Oeaoy39uBhCH*La>JV3FKx#vwW=vG=_i2g2)>MHt7Eim$Mjz}}@*uTD^!{KE1 rNA-$c*8Q^AJkz2>qFMyG?DwZHXRw$RYk6f|B~InvAg{dN*LV8>%0qjy diff --git a/assets/meshes/buildings/house_7_1.dmf b/assets/meshes/buildings/house_7_1.dmf deleted file mode 100644 index 0d26b2b4693911a46dcc0a837e63baf99abb3b45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcma)3?F~XP2*gd?L}HBp+{sZLMUHZmVxLM4N%*ymXct5x+~M=rg^*s-0LnA>!ks~4KC!;FHCb%b><^whdn=Unr4 zI@hta$1Ix02o+!WuU}Eyk>@*^ld6T$+4y9m4Km0;D3nRI@c->Zj&` z>GbGj58m8|j@b8&_}^WJzH~IU_D}D|p6)<0!=mm*4ByF{cT+8NyOp<$@WN9^Ut#LV zJxqfVJ$XfMa0M)DGAH_)XKL{7?6gmc6?VS2?L#fyzX+CEs)@~ diff --git a/assets/meshes/buildings/house_7_3.dmf b/assets/meshes/buildings/house_7_3.dmf deleted file mode 100644 index af0bd704366e6cd0ad94df7be3928f5416d389fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcmaiw(GkKh3`4_Y_&AO~c3>1n>nI%sKPMtinu6}q#Ihu(xj!G}QcAh`8evxJ_qFc3 z*O`NdTj8HhnZLaBq>DVOwdRV;8LPR{DQou}>ExZcc?Pw(@OXxhy(=9YKqs7Ws~OUU z*ZP~}JbJS(^wVe1v>x2RTWyFlYG0~rw|~V;*E`2|rk8c{ZhnWC^%=XLrIRLe H`(f?}SiXbl diff --git a/assets/meshes/buildings/house_7_4.dmf b/assets/meshes/buildings/house_7_4.dmf deleted file mode 100644 index 442b265f788d7bf0da6a5b96aa761c3080ad402f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcmaiwQ4Yf(3`5z;hNfwMyHk(KQDz4WE=#vaX~~P7&_3Uwb$A!<}}p47hIgKIsMq(?Zryp-<}KsSfjA54F~7~A80RrtMH3ku z$GOKCaD;ma=yjIO3!@&?CwsM%^CI*fr88*@G~AudbDQp0l7BU4$$)tZ-bG&N$Rhau G`i>71$bdNj diff --git a/assets/meshes/buildings/house_7_5.dmf b/assets/meshes/buildings/house_7_5.dmf deleted file mode 100644 index 275dc21d31e535269417f1e7605f2cad5370fb23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcmaiy>kY#o420cHvPn@@^fgzAuBEjeHZ1Q-%Uv@LI2i6!dl>Boq z_k`SQ)TyoFAE%yIUe?6rexc-=E6w*<%@wC!34O%LJ8Sa{=F+kUJrv%%;;1pmDR$aw zhS=;4{hj!Jtj%2Jr^~?98nr%C;@l}3(1En*p$` L&d9<0>6`xm2HJ*M diff --git a/assets/meshes/buildings/house_7_6.dmf b/assets/meshes/buildings/house_7_6.dmf deleted file mode 100644 index 64a40b7713167298911f7d21e664758022e3089a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcmaiy(G9{d3`E0ZSP1dQPK?q~GD=3_F3BZM>VhS=@%f!yTAuG$x}}sJ$ThOH`g3ph zg4%1;sYUUR)68F9_QchB)@tpQ=4V8E#c5W-9C7mQ+P;IewCceOh4)4rH3m7wl@{#~ zTfH{liJ!;b&Q*T9EKKiFTXbs;X_+-rb?eTnbaAtDe$VWAPF}N=4y5XWv$#mZn8A84 zS$d_BV^GV;#B|?MoZkUr`Mvbkz@6OHj!v~5qv(epUhUqWWsHC~xo;$H^l`{!m@cGU zJ@dZTS;ssv#paHydEU=wi8w#6^59O_#~OcYl5(p-FSS)Hjn$?!!Blai*t^b_x%6b z-{e_CSKf*Bln%4w)N?u3OIhJuWYg2PcIz z`tNqGbCY%U6GN|G{j#53c5`#T#s~KiLlb*MuKxxadq~S(bmNTA8@I`+7g`G+?|9*p QS6s_MqNaXmN1Ug>0qpORnE(I) diff --git a/assets/meshes/buildings/house_7_8.dmf b/assets/meshes/buildings/house_7_8.dmf deleted file mode 100644 index 9eccf6f73164da4d72478feabdf152285ec9afd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcma)3TM_~>2&*R(9mhZKv`6zO9z{Y43v7Kb)9n%x($d@GK2BqdtF9K8nQ!O0zeM+h z0XJ-x>-PtbJ*&tw*CGoZFqwJyItE_E$~S4j%lDwJW8DLJU=RtFwcm;d3}GJgH}2K3 zl?U}Em3<~zi(2OyzkLeFYrqOFvk+LDUu(H*zr07$Bpy9B^?d4LZg*?G8ACsEvlbY5 z#K1!oZF)=c*vohj$lkwWpFAM55a08r7<4Nwz57{0uG*2_h`gxdC(ShQG{1j*LznvT yY&L@*{fb`J_bvS(P~IUNBbWC@j)k)jD_YKAF)Q{8zIz}?KhBRl!%#%+;QI#GsDIJ` diff --git a/assets/meshes/buildings/house_8_1.dmf b/assets/meshes/buildings/house_8_1.dmf deleted file mode 100644 index 180481bfebc52296f171aee749170d7068e4a4e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcmah|TMhz22*aCr6VVv|ypuW#AEi+v({b$t5Nx#r&&EmYUMY9J*_ZOJe5}c!09~ppqINk!nzi+vk{1Kt1tG zPPso|#GBu;y6>O2`jH>JO-wAgbASKVB_CSt55`4{Hp8>}{l9_H1EccI(=X5a1!-Dc AQ2+n{ diff --git a/assets/meshes/buildings/house_8_2.dmf b/assets/meshes/buildings/house_8_2.dmf deleted file mode 100644 index 611d63ddf2b8de1fee9fbed784d1e06dc12dbc28..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcmaJ<;c|l^2y;)ithejGzEdB42?8S1<_?jN;HT~H>p8y07!O7RX8rzl{)f46#)~@v zla%J9%b6d%YNZY=7~4GO*jd2bo^&~@+#`*RGi`93xy_S_Tq1NNPP*+}H{CenHBW%8 z>kXVcdDTkZbxIwZ#+%|c9L=$UC)q4fUWyNPQH^j&Q{*uASTc|!pm*wqHP&m6%}B?kY1s? zRj+ZRE5~vIOpMU<-^2JeZyJ4dZ`W<}B&F^joC~co$SE6lJ6AqM=(w$3mJ3+hemCos K|3S{nbN>Ks99rrC diff --git a/assets/meshes/buildings/house_8_3.dmf b/assets/meshes/buildings/house_8_3.dmf deleted file mode 100644 index 6c57db41daf81c020f395c7105cc2c3dad362361..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcma));SEAD2!wGm(HQ@^gQGaw8%>V(nk%o3k{IRV4qEEt^|Xtb-QzQdd&@u9&TnSQ zk_TJGFWu<5Fw=_?b;-QtoJ*!H=!K^0*vsS|!&}(OOO~EE%Lws8Q+1g`EW6sV>V<7+ zk+|g252dODt1)SM5p3e#3S`_f^IcEsw9fZ9F>i!Dk2u3S81wN)8wNME>P;4VA%iZ1 zZ{(5jzM@MXgxqQ9b}YGgVVlCItR=zVTX{L>s5@Yr@EX1GlRB31z1_Y4KX=uSXRGg# v{KpQUsXFbK^WuD`=#1J!_EP()ckF<3qo`ihTAz_D?m;hS>i@vlZ`}6_Q$S}b diff --git a/assets/meshes/buildings/house_8_4.dmf b/assets/meshes/buildings/house_8_4.dmf deleted file mode 100644 index 6e31cd48ae62b973fb37594da9b8240dc9e1fb7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcma)(Q4Yc|3`4`o2ng}VopyBMw2r*26-1i0yxMM?y*_Wdnb|X*a~(eV<39PrOj+_^ ztNNv@%!Qd=EK!%tN6&r9G=g4ex{g^U_b6{;D=%4k;w)9-g{JGWhgfE{W8Di|Y0RA%(hR?nGk7~G|WX6lk*E|bOAD9JP4 zS9FyHhH}YoY`aGqhnJuA_K~;p*51%eUHR}4%y{P6L#LJfh9Uo-eOGyPHkscpPyIOa qN~d|L58b6ED{b_+-zrbNH3Qxki}2wIcB)`i?QY5CpBwYQ9C=?3N@IEe diff --git a/assets/meshes/buildings/house_8_5.dmf b/assets/meshes/buildings/house_8_5.dmf deleted file mode 100644 index 67ec1b554f4f39d56cb4d48b273007c1f1c59a68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcmah{+YJIS3=5mE2?Zhk*ohGsfl+bNI&yO@M7q=2v7PJV{(RWU%x-w*`m~N;m%(4n zlnWl*s{ZLRb77{}Ths;DI_6w*8bPmXs*YJE>qu|mR$g-9!M|jQ*ELla*u}C}JFa@& zmRbi*u;h8G>YS@JX-3nziEq6@j{8i!%cM^GJdXp{I>XE}@EZ?tp3#PLH?`^w4*NpR zbx}N{2E_G>j#+s|(CxVGj2MI$yoUnkzLl4A_|L?d0k6@EPwKLdk59wPA1QL47n!nN zmvPRoJZkEBtny@Z-qWhnywJDF)xqGX<^MUZdFtkRjXE^dt6Cc~f|I+!nR*X0FZb^Y D0bFUC diff --git a/assets/meshes/buildings/house_8_6.dmf b/assets/meshes/buildings/house_8_6.dmf deleted file mode 100644 index 00e3661314681bc6ebf7ec34253dc1883570a984..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcmah{TMoi73=1bCAjBVc;wT(tMujrUncNDrEx1EuL;uYRg1qa{C%Q;*#ab<+p=#5Y6svjSRqY;l3Ipk%g>=!c5 z`ISe_d>^Yk8J%l^X4Yw5>V0rE&^c0%&vIm`m~N;=fPjh zlnWl*s{ZLRb77{}Ths;DI_6w*8bPmXs*YJE>qu|mR$g-9!M|jQ*ELla*u}C}JFa@& zmRbi*u;h8G>YS@JX-3nziEq6@j{8i!%cM^GJdXp{I>XE-@EZ?tp3#PLH?`^w4*NpR zbx}N{2E_G>j#+s|(CxVGj2MI$yoUnkzLl4A_|L?d0k6@EPwKLdk59wPA1QL47n!nN zmvPRoJZkEBtny@Z-qWhnywJDF)xqGX<^MUZdFtkRjXE^dt6Cc~f|I+!nR*X0FZb^Y D=W%t~ diff --git a/assets/meshes/buildings/house_8_8.dmf b/assets/meshes/buildings/house_8_8.dmf deleted file mode 100644 index b29554d5fad9e0dce7f5c98cd7e04eabc7316ec8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcma)(Q4+#12t?z_M91l$ck0nRnk-=vXtZV~ZQ1N&ll1Z2#$}9g*V)Ex*8A0U)JZel z>qegXqUQnpWMCR|pbia?1UY*-yYd+ad+)!{RvE#= zFYQjC`RG3C`CUATE4s{u(6DdSqMpm~4BdUPfRA+M(36ksE@QlOvNo>gqCR1bR}cG@ zOtR@;(pPc;N!v@(zGlFKA@-~f)xfP-W*_##4$2O)`bi&`?ai}g(Y1ebGs=7B-unMA ueRa=lBJ1;(e( diff --git a/assets/meshes/chunks/chunk_-1_0_0_0.dmf b/assets/meshes/chunks/chunk_-1_0_0_0.dmf deleted file mode 100644 index 484beafe7822144b44788fd302204a2cfa8a08eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26172 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 H|KI%|fwA31 diff --git a/assets/meshes/chunks/chunk_0_0_0_0.dmf b/assets/meshes/chunks/chunk_0_0_0_0.dmf deleted file mode 100644 index 8e70f8fdfcfd8e088383447582fede2b41731f34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28932 zcma)?~>?Z4-=k*~Z= z7TL+l+jU(IMz6Zei!$=>!i*s!C{`qbD9R3!kcblxd zUDxH-U7TZ2?=D^#U08X$uFI{vIL9r$H}S&g!phrqU2fgQIqvDbix);0R^G1ba_cV6 zG15E43!@7wZ`XCXbrvHQZ&QWs@@xtiB>VNOLF1PN&2Lmi#^Eso31DCLk&n)go#N!{=bvam^@$+)# z=bwJ=Ugk3qMmIh?zjR#=hNE_79y>Fyo^9hf`5DO16h;^Jt?P0y9MyG>J-xelVRT{N zx-Pfw;vBd1-oy)|3oCEeb-8sH=eVc$E?yX2Sb4jy%dNXO$4KuGFN`j%yj|Dj)?J+A zk=}=RVRT{T?Yb_v?&2KJ^ghK4qYEo<*LAsd7w34T_a$B!U08X$uFI{vILDFRL%cA$ zu<~|Yms@w4Q(|7cj`;WIGXn=MVI$c{7U{|2jGq@iZ(I(>sqV@Byv_lf*F0CUYs?$2 zd0=B+urV*rnYnY!8?Je}99?qNCAa0g>TdZn-Q;HqqYL}ibvf82Ugy};yNee_7gpY` z>vHQZ&T&icO}sF=u<~|Yms@vnj(d9V;)T(LmAC7<+`5Z%jPwri!sx=v+jU)T-NiW` z>3xV7Mi*AzuIqB^F3#~x?^C=my0G$gU6)&TagJAdU*d()g_XDKy4<>pa~$bC#0#Sf zD{t3zxpkNMNf7hmb-u4T?z0Yd;GOJ?A~$b9}m2vTI>vFJ5yw0(wcNZ^=F08y=*X7n-oa2_>n|NV#Vdd?*F1POD z9QX9z#S5bgD{t3zxpf!k80j72h0%qTx9hsxx{Gr>()$oEj4rIaUDxH-U7X{Y-luqB zbYbP~x-Pfw;vBE^zQhZo3oCEeb-8sH=Qz@Ph!;i|R^G1ba_cVhlOX2B>wI6wtNBdi z^Y4v!`rnz0>}2se^0mp)~DP9;|Sb4jy%dNXO$1A-r@xtiB%G-5a zZr#N>j`SYlh0%qTx9hsxy370|hvAzuym7xcuH5AkFN`d# zyj|DjV7l{V99uriCht`kU08X$uFJu6XXn_{yNee_7gpY`>vHQZ&T&icO}sF=u<~|Y zms@vnj(d9V;)T(LmAC7<+`5Z%jPwri!sx=v+jU)T-NiW`>3xV7Mi<84C8z7U+`5Z% zJk$FWFN`j%yj|Dj)?J+AmEM$CMC%N%?Hdu5g`_^?i*za~Wj*)DL7e*IW-mU4n9Bh;B z$gVn$WQTZRbYa)LI9=D}U^uFK7{@!=d*;r0abR>|-?}abJEY6JGv}3q`?zMVKAX6| z;L-hj|H9vq+v0RNy5z2Tamd9rJ`OT4GUbKEHQANl`()z!139{pbG*{~5-*G{th`;<<$==8yBNnvHpB~~3o9?XT=2>2XW!-4UC7Z@$C2!i zd9c`dvhsFams@vsj(2+B;)T(LmAC7<+`5Z%oasHo`}2JSqYK-9`+Wailk0w6Zr#N> zm=%|Jxu<)Hx9hsxy0ddc4^O;TKi|Lb_!;N(c3qc?nX^#@>?&5`!h1Jiw>$)6F zcXp0jdT-)|(S?<_>$)6FcV-^XrjC2EyLe%AVdd?*E(g<{onxeTh!;i|R^G1baxmSQ zc|5N=9?2fzot}AMbYUCUJYCo2V7jw&Jk$FWFN`j%yj|DjV7fE&cwTk9lD)(WqYEo< z*L69V?(7^#dJpl!=)%g|bzKgoJI^UGFJ75BkNd8L?Re+4XD-6?K8|!<4#ugjb8PeH z&VJjNS2-q&?quJ(F89kW#xar&@xtiB%Io&)a_cV6aisSUFD!NzZ`XCXb!X>zr}r&h z7+qLBZ`XCXbrg=cwuy5 z4dAqL5t-CnKncg$JpYLC~ zu<~|Yms@vnjw`*Fcwuy516=RGs;;)Rig-SYo~bX}K&@f_84 zjxjTMhj?LhVc)tg2h*LIw>lol9^sw8mw8}xVeHN6x-JLPot@*E-luqBbYbP~x-JLP zotd}iygi@emFy*67+qL-yROT@bZ6%{(tC&(Mi*AzuIq9z-I?DLEMDhKj{B~K-SN)r zo;k9v>vAwob)93&&%|wfo(&e=$-Z@6?w4JRVIVeL3*XYh*4urt5MrPIc|~d448tn_f5rS}pqj4rIaUDxH-U7TZ^^W*PD-m5UW+hpbKx-JLP zotd{f_GG(wVRT{T?Yb@p)195;mfl-vAyNnH*hpa37a=xu<&< zZ`XA>nC|Qx(ZeHNSX|=mx-J(pr5pE)<1z1<`3Ud)z03n63u7Nn*L67jj4rIaUDxGcy0dc}={>{?qYEo<*L69V?p(j8c%3sj z?zp za~$bC#0!g^#oKjVZr#~A-sydd7e*IW&)aofZr#N>&h(z*h0%qTx9hsxx{GsM>Al1Y zqYEo<*LAsd7w6dc`vAzux^cfap7WlWPw~RY!s_STbzKfdue#3hni;$=@xtiBzI9y=raLol zbsWhK@xtiB%G-5a4yHTT?=D{FOpf~wg+1}ki@obGk5jvJIl7$cI>(luiQD+hgGG0; zZ(Wyz9lEn|jATQ+FuJhvy8XJ`x{Grh={>{?i=D;WbzN@V**V_neTx@H7go>PbzN@V z#W~LOp5lekg_XDKy4<>pb6n}Y#0#SfD{t3zxpf!k*yj9rf5>|kMt7U6yj|DjV7fE& zR>z)f7cY!1th`;<^+{Yze?&*>#Z`XA>nC|Qx(ZeHNSX|=mx-J(pr5pE)~DP9;|Sb4jy%fWPK=Dl)WJumlhiI;o2 dWXjuhT@I!@J4f{Jh!+-@c)PC4#mxVA{|C`obGQHi diff --git a/assets/meshes/chunks/chunk_0_1_0_0.dmf b/assets/meshes/chunks/chunk_0_1_0_0.dmf deleted file mode 100644 index 5d16a93aaa8807b47435d367386076d40252f544..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25332 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 pmD_$imWFbzKfdFT0mW#S5bgOK;V6 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 diff --git a/assets/meshes/chunks/chunk_1_1_0_0.dmf b/assets/meshes/chunks/chunk_1_1_0_0.dmf deleted file mode 100644 index e9e5aace3863ee5accc34dd7e5511db1f9238f52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26652 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 diff --git a/assets/meshes/chunks/chunk_2_0_0_0.dmf b/assets/meshes/chunks/chunk_2_0_0_0.dmf deleted file mode 100644 index 7d390ce7063abdb7dd71caa3343fe5795eea1a05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30252 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 3.0) { + Scene.set(new OverworldScene()); + } + } + + dispose() { + this.camera.dispose(); + this.player.dispose(); + this.plane.dispose(); + + this.camera = null; + this.player = null; + this.plane = null; + } +} + +module.exports = OverworldScene; \ No newline at end of file diff --git a/assets/tiles.png b/assets/tiles.png deleted file mode 100644 index bc170af1c5d190c29153c0a4053d6a7735a28977..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 110 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`rk*a2Ar*6yQxXz>tUq+%Km+&Y z6%VEbCnh8$Bz{OZz#sC#o1cx@#EJbDD|7yV42hmLMrLM)O_^K)ON6~I0}WvCboFyt I=akR{0DW;G6951J diff --git a/assets/ui/minogram.dtf b/assets/ui/minogram.dtf deleted file mode 100644 index cbf4aefb203a9e5d5576c901460bd8f8d9fcdb33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24 dcmZ<>absX(;9?K}k_rqg3=9kowhRmkb^se+0t5g6 diff --git a/assets/ui/minogram.png b/assets/ui/minogram.png deleted file mode 100644 index c41f917ac2882308e41c4beb580f5753860562e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1260 zcmV z?Q*Oj42Gf8`@dz+pVG-m-+Vz3ba`fW++swO5Xp->t=Dyx!#ZlMOV9uHvz5Hy681~w zT3x@ei_^{FHh?dWywYz<`aDpBO;2lf1 ztz&BW+ezGJHmjqAcCA}4A%+O!4D0V0i(A^;y**2td?nkQI9N4GY=K*^M zY|-%z?;JpTJV+r9*=qJyl#p(;mO@5u^hoY5iCJ59Hp1fo){UWx9zU)K_cMr7X>olZGQUZduIRi`)Y zT|&kjVD?4Ks(+S7@F+YwKx3pMdXzx#LQ!vfqSvE|I^MdrOan{tNvR_tYa|WyI1fT= zZ?xkyBFf$tolc>PK}gQ^@YFDvDamfvv0i!}0h*%a9j(^LkFKuq?_R}{M}mx*`j(2H zL_K-&T6Xzu;Ne60I3-Xb`mW&Wk(&kmT>yXEMSBazV~FR^rw34?kq5fwPeWoXBF%f#CUhxRg_)@(9+*MfFA&Wu$r! zgpr?z&jfX}6!xt;4hrp+ut-SHwAVs9IyQ=>>_wJ?UkO(Nsg(Lre5ww>CxP#{s)L)e z7O;?DdnThJ`(KIlMo{E!9M4-io~*(1 z{(yB}scvn*l?iy-BDKeBzYJ+Dpb=RMkm}LwshzZzV6~@}YY{}+?@a^g_4TfmNcKy~ zSPt&Zqch*ji}JDQE+@kQJe|1PjoxkLav4Yoq(l~jqqWK<_Bkp2aJG=U=S@?D|Sr#zYc1euYX`IbVZ>92sFkl|wGz0J z$eiHy?*v}#Q`nYYe8e6ddsjJX=Ye1;fpnjwbTwuRJCYiw**7vWf|bJ6G`#;ZhJJ51 zV)m%YQV)@RPe^}V=ajZo~z$+<7&iTqt%fwOw5!$L2%DuJv(TJ8pJyPtn z`q3OgI*-L`9SQx%5KB(&(fze!G<)<2LVriv?`>C)-Q(C*35;?Szr*2hI2;a#0RI5C W$o0rJ!cj&50000 - #include - #define CONSOLE_POSIX_POLL_RATE 75 -#endif +#include "thread/thread.h" typedef struct { char_t line[CONSOLE_HISTORY_MAX][CONSOLE_LINE_MAX]; @@ -26,9 +20,7 @@ typedef struct { // cached representation of the history needs rebuilding. bool_t dirty; - #ifdef DUSK_CONSOLE_POSIX - threadmutex_t printMutex; - #endif + threadmutex_t printMutex; } console_t; extern console_t CONSOLE; diff --git a/src/dusk/display/CMakeLists.txt b/src/dusk/display/CMakeLists.txt index 0f6d6c6b..1dbc4bb8 100644 --- a/src/dusk/display/CMakeLists.txt +++ b/src/dusk/display/CMakeLists.txt @@ -22,6 +22,12 @@ add_subdirectory(texture) dusk_run_python( dusk_color_defs tools.color + OUTPUT ${DUSK_GENERATED_HEADERS_DIR}/display/color.h + DEPENDS + ${CMAKE_CURRENT_SOURCE_DIR}/color.csv + ${DUSK_TOOLS_DIR}/color.py + ${DUSK_TOOLS_DIR}/writeifchanged.py + ARGS --csv ${CMAKE_CURRENT_SOURCE_DIR}/color.csv --output ${DUSK_GENERATED_HEADERS_DIR}/display/color.h ) diff --git a/src/dusk/engine/engine.c b/src/dusk/engine/engine.c index b726946b..9e96dcaa 100644 --- a/src/dusk/engine/engine.c +++ b/src/dusk/engine/engine.c @@ -17,10 +17,12 @@ #include "script/module/scene/modulescene.h" #include "ui/ui.h" #include "assert/assert.h" -#include "network/network.h" -#include "network/socket/client/client.h" -#include "network/socket/client/clientroster.h" -#include "network/socket/server/serveronline.h" +#ifdef DUSK_NETWORKING + #include "network/network.h" + #include "network/socket/client/client.h" + #include "network/socket/client/clientroster.h" + #include "network/socket/server/serveronline.h" +#endif #include "game/game.h" #include "system/system.h" #include "console/console.h" @@ -50,7 +52,9 @@ errorret_t engineInit(const int32_t argc, const char_t **argv) { errorChain(localeManagerInit()); errorChain(displayInit()); errorChain(uiInit()); - errorChain(networkInit()); + #ifdef DUSK_NETWORKING + errorChain(networkInit()); + #endif errorChain(sceneInit()); errorChain(gameInit()); @@ -69,9 +73,11 @@ errorret_t engineInit(const int32_t argc, const char_t **argv) { errorret_t engineUpdate(void) { // Order here is important. - errorChain(networkUpdate()); - errorChain(clientUpdate()); - errorChain(serverOnlineUpdate()); + #ifdef DUSK_NETWORKING + errorChain(networkUpdate()); + errorChain(clientUpdate()); + errorChain(serverOnlineUpdate()); + #endif timeUpdate(); const systemdialogtype_t dialogType = systemGetActiveDialogType(); @@ -105,11 +111,13 @@ errorret_t engineDispose(void) { errorChain(gameDispose()); errorChain(sceneDispose()); - errorChain(serverOnlineStop()); - client_t *localClient = clientRosterFindLocal(); - if(localClient) localClientDisconnect(&localClient->local); + #ifdef DUSK_NETWORKING + errorChain(serverOnlineStop()); + client_t *localClient = clientRosterFindLocal(); + if(localClient) localClientDisconnect(&localClient->local); - errorChain(networkDispose()); + errorChain(networkDispose()); + #endif localeManagerDispose(); errorChain(uiDispose()); consoleDispose(); diff --git a/src/dusk/script/module/CMakeLists.txt b/src/dusk/script/module/CMakeLists.txt index cddc069e..9aabe48d 100644 --- a/src/dusk/script/module/CMakeLists.txt +++ b/src/dusk/script/module/CMakeLists.txt @@ -13,3 +13,4 @@ add_subdirectory(scene) add_subdirectory(require) add_subdirectory(display) add_subdirectory(time) +add_subdirectory(console) diff --git a/src/dusk/script/module/console/CMakeLists.txt b/src/dusk/script/module/console/CMakeLists.txt new file mode 100644 index 00000000..9867bfde --- /dev/null +++ b/src/dusk/script/module/console/CMakeLists.txt @@ -0,0 +1,9 @@ +# Copyright (c) 2026 Dominic Masters +# +# This software is released under the MIT License. +# https://opensource.org/licenses/MIT + +target_sources(${DUSK_LIBRARY_TARGET_NAME} + PUBLIC + moduleconsole.c +) diff --git a/src/dusk/script/module/console/moduleconsole.c b/src/dusk/script/module/console/moduleconsole.c new file mode 100644 index 00000000..36233f93 --- /dev/null +++ b/src/dusk/script/module/console/moduleconsole.c @@ -0,0 +1,46 @@ +/** + * Copyright (c) 2026 Dominic Masters + * + * This software is released under the MIT License. + * https://opensource.org/licenses/MIT + */ + +#include "moduleconsole.h" +#include "script/module/modulebase.h" +#include "console/console.h" + +moduleBaseFunction(moduleConsolePrint) { + char_t buffer[CONSOLE_LINE_MAX]; + size_t pos = 0; + + for(jerry_length_t i = 0; i < argc; i++) { + jerry_value_t strVal = jerry_value_to_string(args[i]); + if(jerry_value_is_exception(strVal)) return strVal; + + if(i > 0 && pos + 1 < CONSOLE_LINE_MAX) buffer[pos++] = ' '; + + jerry_size_t written = jerry_string_to_buffer( + strVal, JERRY_ENCODING_UTF8, + (jerry_char_t *)(buffer + pos), (jerry_size_t)(CONSOLE_LINE_MAX - pos - 1) + ); + jerry_value_free(strVal); + pos += written; + } + buffer[pos] = '\0'; + + // Fixed "%s" format -- buffer is arbitrary JS-provided text and must + // never be used as the format string itself. + consolePrint("%s", buffer); + + return jerry_undefined(); +} + +void moduleConsoleInit(void) { + jerry_value_t consoleObj = jerry_object(); + moduleBaseDefineMethod(consoleObj, "print", moduleConsolePrint); + moduleBaseSetValue("Console", consoleObj); + jerry_value_free(consoleObj); +} + +void moduleConsoleDispose(void) { +} diff --git a/src/dusk/script/module/console/moduleconsole.h b/src/dusk/script/module/console/moduleconsole.h new file mode 100644 index 00000000..3b8512b0 --- /dev/null +++ b/src/dusk/script/module/console/moduleconsole.h @@ -0,0 +1,21 @@ +/** + * Copyright (c) 2026 Dominic Masters + * + * This software is released under the MIT License. + * https://opensource.org/licenses/MIT + */ + +#pragma once + +/** + * Registers the global `Console` object, exposing `Console.print(...)`, + * which stringifies and space-joins its arguments (like console.log) and + * forwards the result to the engine's consolePrint() (see + * console/console.h). + */ +void moduleConsoleInit(void); + +/** + * Disposes the console module's script resources. + */ +void moduleConsoleDispose(void); diff --git a/src/dusk/script/module/modulelist.c b/src/dusk/script/module/modulelist.c index b79c8ae8..d4bdf25d 100644 --- a/src/dusk/script/module/modulelist.c +++ b/src/dusk/script/module/modulelist.c @@ -14,12 +14,14 @@ #include "script/module/entity/component/modulecomponentlist.h" #include "script/module/entity/moduleentity.h" #include "script/module/scene/modulescene.h" +#include "script/module/console/moduleconsole.h" void moduleListInit(void) { modulePlatform(); moduleRequireInit(); moduleMeshInit(); moduleTimeInit(); + moduleConsoleInit(); moduleComponentInit(); moduleComponentListInit(); moduleEntityInit(); @@ -31,6 +33,7 @@ void moduleListDispose(void) { moduleEntityDispose(); moduleComponentListDispose(); moduleComponentDispose(); + moduleConsoleDispose(); moduleTimeDispose(); moduleMeshDispose(); moduleRequireDispose(); diff --git a/src/dusk/script/module/modulelist.h b/src/dusk/script/module/modulelist.h index 6419e33b..91334815 100644 --- a/src/dusk/script/module/modulelist.h +++ b/src/dusk/script/module/modulelist.h @@ -9,8 +9,8 @@ /** * Registers every script module (Component + its typed per-type - * wrappers, Entity, Scene, require(), Mesh, Time, the platform globals). - * Called once by scriptManagerInit(). + * wrappers, Entity, Scene, require(), Mesh, Time, Console, the platform + * globals). Called once by scriptManagerInit(). */ void moduleListInit(void); diff --git a/src/duskdolphin/CMakeLists.txt b/src/duskdolphin/CMakeLists.txt index 818635ee..86fb3405 100644 --- a/src/duskdolphin/CMakeLists.txt +++ b/src/duskdolphin/CMakeLists.txt @@ -19,7 +19,9 @@ add_subdirectory(asset) add_subdirectory(log) add_subdirectory(display) add_subdirectory(input) -add_subdirectory(network) +if(DUSK_NETWORKING) + add_subdirectory(network) +endif() add_subdirectory(save) add_subdirectory(system) add_subdirectory(time) \ No newline at end of file diff --git a/src/dusklinux/CMakeLists.txt b/src/dusklinux/CMakeLists.txt index af0e8acb..b027cac2 100644 --- a/src/dusklinux/CMakeLists.txt +++ b/src/dusklinux/CMakeLists.txt @@ -13,7 +13,9 @@ target_include_directories(${DUSK_LIBRARY_TARGET_NAME} add_subdirectory(asset) add_subdirectory(log) add_subdirectory(input) -add_subdirectory(network) +if(DUSK_NETWORKING) + add_subdirectory(network) +endif() add_subdirectory(save) add_subdirectory(system) add_subdirectory(time) \ No newline at end of file diff --git a/src/dusknetwork/CMakeLists.txt b/src/dusknetwork/CMakeLists.txt new file mode 100644 index 00000000..4dfe35e2 --- /dev/null +++ b/src/dusknetwork/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2026 Dominic Masters +# +# This software is released under the MIT License. +# https://opensource.org/licenses/MIT + +# Includes +target_include_directories(${DUSK_LIBRARY_TARGET_NAME} + PUBLIC + ${CMAKE_CURRENT_LIST_DIR} +) + +# Subdirs +add_subdirectory(network) diff --git a/src/dusk/network/CMakeLists.txt b/src/dusknetwork/network/CMakeLists.txt similarity index 100% rename from src/dusk/network/CMakeLists.txt rename to src/dusknetwork/network/CMakeLists.txt diff --git a/src/dusk/network/http/CMakeLists.txt b/src/dusknetwork/network/http/CMakeLists.txt similarity index 100% rename from src/dusk/network/http/CMakeLists.txt rename to src/dusknetwork/network/http/CMakeLists.txt diff --git a/src/dusk/network/http/networkhttp.c b/src/dusknetwork/network/http/networkhttp.c similarity index 100% rename from src/dusk/network/http/networkhttp.c rename to src/dusknetwork/network/http/networkhttp.c diff --git a/src/dusk/network/http/networkhttp.h b/src/dusknetwork/network/http/networkhttp.h similarity index 100% rename from src/dusk/network/http/networkhttp.h rename to src/dusknetwork/network/http/networkhttp.h diff --git a/src/dusk/network/http/networkhttpheader.c b/src/dusknetwork/network/http/networkhttpheader.c similarity index 100% rename from src/dusk/network/http/networkhttpheader.c rename to src/dusknetwork/network/http/networkhttpheader.c diff --git a/src/dusk/network/http/networkhttpheader.h b/src/dusknetwork/network/http/networkhttpheader.h similarity index 100% rename from src/dusk/network/http/networkhttpheader.h rename to src/dusknetwork/network/http/networkhttpheader.h diff --git a/src/dusk/network/http/networkhttpprocess.c b/src/dusknetwork/network/http/networkhttpprocess.c similarity index 100% rename from src/dusk/network/http/networkhttpprocess.c rename to src/dusknetwork/network/http/networkhttpprocess.c diff --git a/src/dusk/network/http/networkhttpprocess.h b/src/dusknetwork/network/http/networkhttpprocess.h similarity index 100% rename from src/dusk/network/http/networkhttpprocess.h rename to src/dusknetwork/network/http/networkhttpprocess.h diff --git a/src/dusk/network/http/networkhttprequest.c b/src/dusknetwork/network/http/networkhttprequest.c similarity index 100% rename from src/dusk/network/http/networkhttprequest.c rename to src/dusknetwork/network/http/networkhttprequest.c diff --git a/src/dusk/network/http/networkhttprequest.h b/src/dusknetwork/network/http/networkhttprequest.h similarity index 100% rename from src/dusk/network/http/networkhttprequest.h rename to src/dusknetwork/network/http/networkhttprequest.h diff --git a/src/dusk/network/http/networkhttpthread.c b/src/dusknetwork/network/http/networkhttpthread.c similarity index 100% rename from src/dusk/network/http/networkhttpthread.c rename to src/dusknetwork/network/http/networkhttpthread.c diff --git a/src/dusk/network/http/networkhttpthread.h b/src/dusknetwork/network/http/networkhttpthread.h similarity index 100% rename from src/dusk/network/http/networkhttpthread.h rename to src/dusknetwork/network/http/networkhttpthread.h diff --git a/src/dusk/network/http/networkhttpurl.c b/src/dusknetwork/network/http/networkhttpurl.c similarity index 100% rename from src/dusk/network/http/networkhttpurl.c rename to src/dusknetwork/network/http/networkhttpurl.c diff --git a/src/dusk/network/http/networkhttpurl.h b/src/dusknetwork/network/http/networkhttpurl.h similarity index 100% rename from src/dusk/network/http/networkhttpurl.h rename to src/dusknetwork/network/http/networkhttpurl.h diff --git a/src/dusk/network/network.c b/src/dusknetwork/network/network.c similarity index 100% rename from src/dusk/network/network.c rename to src/dusknetwork/network/network.c diff --git a/src/dusk/network/network.h b/src/dusknetwork/network/network.h similarity index 100% rename from src/dusk/network/network.h rename to src/dusknetwork/network/network.h diff --git a/src/dusk/network/networkaddr.c b/src/dusknetwork/network/networkaddr.c similarity index 100% rename from src/dusk/network/networkaddr.c rename to src/dusknetwork/network/networkaddr.c diff --git a/src/dusk/network/networkaddr.h b/src/dusknetwork/network/networkaddr.h similarity index 100% rename from src/dusk/network/networkaddr.h rename to src/dusknetwork/network/networkaddr.h diff --git a/src/dusk/network/networkinfo.c b/src/dusknetwork/network/networkinfo.c similarity index 100% rename from src/dusk/network/networkinfo.c rename to src/dusknetwork/network/networkinfo.c diff --git a/src/dusk/network/networkinfo.h b/src/dusknetwork/network/networkinfo.h similarity index 100% rename from src/dusk/network/networkinfo.h rename to src/dusknetwork/network/networkinfo.h diff --git a/src/dusk/network/socket/CMakeLists.txt b/src/dusknetwork/network/socket/CMakeLists.txt similarity index 100% rename from src/dusk/network/socket/CMakeLists.txt rename to src/dusknetwork/network/socket/CMakeLists.txt diff --git a/src/dusk/network/socket/client/CMakeLists.txt b/src/dusknetwork/network/socket/client/CMakeLists.txt similarity index 100% rename from src/dusk/network/socket/client/CMakeLists.txt rename to src/dusknetwork/network/socket/client/CMakeLists.txt diff --git a/src/dusk/network/socket/client/client.c b/src/dusknetwork/network/socket/client/client.c similarity index 100% rename from src/dusk/network/socket/client/client.c rename to src/dusknetwork/network/socket/client/client.c diff --git a/src/dusk/network/socket/client/client.h b/src/dusknetwork/network/socket/client/client.h similarity index 100% rename from src/dusk/network/socket/client/client.h rename to src/dusknetwork/network/socket/client/client.h diff --git a/src/dusk/network/socket/client/clientroster.c b/src/dusknetwork/network/socket/client/clientroster.c similarity index 100% rename from src/dusk/network/socket/client/clientroster.c rename to src/dusknetwork/network/socket/client/clientroster.c diff --git a/src/dusk/network/socket/client/clientroster.h b/src/dusknetwork/network/socket/client/clientroster.h similarity index 100% rename from src/dusk/network/socket/client/clientroster.h rename to src/dusknetwork/network/socket/client/clientroster.h diff --git a/src/dusk/network/socket/client/clientthread.c b/src/dusknetwork/network/socket/client/clientthread.c similarity index 100% rename from src/dusk/network/socket/client/clientthread.c rename to src/dusknetwork/network/socket/client/clientthread.c diff --git a/src/dusk/network/socket/client/clientthread.h b/src/dusknetwork/network/socket/client/clientthread.h similarity index 100% rename from src/dusk/network/socket/client/clientthread.h rename to src/dusknetwork/network/socket/client/clientthread.h diff --git a/src/dusk/network/socket/client/handler/CMakeLists.txt b/src/dusknetwork/network/socket/client/handler/CMakeLists.txt similarity index 100% rename from src/dusk/network/socket/client/handler/CMakeLists.txt rename to src/dusknetwork/network/socket/client/handler/CMakeLists.txt diff --git a/src/dusk/network/socket/client/handler/clientpackethandlerack.c b/src/dusknetwork/network/socket/client/handler/clientpackethandlerack.c similarity index 100% rename from src/dusk/network/socket/client/handler/clientpackethandlerack.c rename to src/dusknetwork/network/socket/client/handler/clientpackethandlerack.c diff --git a/src/dusk/network/socket/client/handler/clientpackethandlerack.h b/src/dusknetwork/network/socket/client/handler/clientpackethandlerack.h similarity index 100% rename from src/dusk/network/socket/client/handler/clientpackethandlerack.h rename to src/dusknetwork/network/socket/client/handler/clientpackethandlerack.h diff --git a/src/dusk/network/socket/client/handler/clientpackethandlerdisconnect.c b/src/dusknetwork/network/socket/client/handler/clientpackethandlerdisconnect.c similarity index 100% rename from src/dusk/network/socket/client/handler/clientpackethandlerdisconnect.c rename to src/dusknetwork/network/socket/client/handler/clientpackethandlerdisconnect.c diff --git a/src/dusk/network/socket/client/handler/clientpackethandlerdisconnect.h b/src/dusknetwork/network/socket/client/handler/clientpackethandlerdisconnect.h similarity index 100% rename from src/dusk/network/socket/client/handler/clientpackethandlerdisconnect.h rename to src/dusknetwork/network/socket/client/handler/clientpackethandlerdisconnect.h diff --git a/src/dusk/network/socket/client/handler/clientpackethandlerhandshakeaccept.c b/src/dusknetwork/network/socket/client/handler/clientpackethandlerhandshakeaccept.c similarity index 100% rename from src/dusk/network/socket/client/handler/clientpackethandlerhandshakeaccept.c rename to src/dusknetwork/network/socket/client/handler/clientpackethandlerhandshakeaccept.c diff --git a/src/dusk/network/socket/client/handler/clientpackethandlerhandshakeaccept.h b/src/dusknetwork/network/socket/client/handler/clientpackethandlerhandshakeaccept.h similarity index 100% rename from src/dusk/network/socket/client/handler/clientpackethandlerhandshakeaccept.h rename to src/dusknetwork/network/socket/client/handler/clientpackethandlerhandshakeaccept.h diff --git a/src/dusk/network/socket/client/handler/clientpackethandlerhandshakereject.c b/src/dusknetwork/network/socket/client/handler/clientpackethandlerhandshakereject.c similarity index 100% rename from src/dusk/network/socket/client/handler/clientpackethandlerhandshakereject.c rename to src/dusknetwork/network/socket/client/handler/clientpackethandlerhandshakereject.c diff --git a/src/dusk/network/socket/client/handler/clientpackethandlerhandshakereject.h b/src/dusknetwork/network/socket/client/handler/clientpackethandlerhandshakereject.h similarity index 100% rename from src/dusk/network/socket/client/handler/clientpackethandlerhandshakereject.h rename to src/dusknetwork/network/socket/client/handler/clientpackethandlerhandshakereject.h diff --git a/src/dusk/network/socket/client/handler/clientpackethandlerlist.c b/src/dusknetwork/network/socket/client/handler/clientpackethandlerlist.c similarity index 100% rename from src/dusk/network/socket/client/handler/clientpackethandlerlist.c rename to src/dusknetwork/network/socket/client/handler/clientpackethandlerlist.c diff --git a/src/dusk/network/socket/client/handler/clientpackethandlerlist.h b/src/dusknetwork/network/socket/client/handler/clientpackethandlerlist.h similarity index 100% rename from src/dusk/network/socket/client/handler/clientpackethandlerlist.h rename to src/dusknetwork/network/socket/client/handler/clientpackethandlerlist.h diff --git a/src/dusk/network/socket/client/handler/clientpackethandlerping.c b/src/dusknetwork/network/socket/client/handler/clientpackethandlerping.c similarity index 100% rename from src/dusk/network/socket/client/handler/clientpackethandlerping.c rename to src/dusknetwork/network/socket/client/handler/clientpackethandlerping.c diff --git a/src/dusk/network/socket/client/handler/clientpackethandlerping.h b/src/dusknetwork/network/socket/client/handler/clientpackethandlerping.h similarity index 100% rename from src/dusk/network/socket/client/handler/clientpackethandlerping.h rename to src/dusknetwork/network/socket/client/handler/clientpackethandlerping.h diff --git a/src/dusk/network/socket/client/handler/clientpackethandlerplayerjoined.c b/src/dusknetwork/network/socket/client/handler/clientpackethandlerplayerjoined.c similarity index 100% rename from src/dusk/network/socket/client/handler/clientpackethandlerplayerjoined.c rename to src/dusknetwork/network/socket/client/handler/clientpackethandlerplayerjoined.c diff --git a/src/dusk/network/socket/client/handler/clientpackethandlerplayerjoined.h b/src/dusknetwork/network/socket/client/handler/clientpackethandlerplayerjoined.h similarity index 100% rename from src/dusk/network/socket/client/handler/clientpackethandlerplayerjoined.h rename to src/dusknetwork/network/socket/client/handler/clientpackethandlerplayerjoined.h diff --git a/src/dusk/network/socket/client/handler/clientpackethandlerplayerleft.c b/src/dusknetwork/network/socket/client/handler/clientpackethandlerplayerleft.c similarity index 100% rename from src/dusk/network/socket/client/handler/clientpackethandlerplayerleft.c rename to src/dusknetwork/network/socket/client/handler/clientpackethandlerplayerleft.c diff --git a/src/dusk/network/socket/client/handler/clientpackethandlerplayerleft.h b/src/dusknetwork/network/socket/client/handler/clientpackethandlerplayerleft.h similarity index 100% rename from src/dusk/network/socket/client/handler/clientpackethandlerplayerleft.h rename to src/dusknetwork/network/socket/client/handler/clientpackethandlerplayerleft.h diff --git a/src/dusk/network/socket/client/handler/clientpackethandlerplayerstate.c b/src/dusknetwork/network/socket/client/handler/clientpackethandlerplayerstate.c similarity index 100% rename from src/dusk/network/socket/client/handler/clientpackethandlerplayerstate.c rename to src/dusknetwork/network/socket/client/handler/clientpackethandlerplayerstate.c diff --git a/src/dusk/network/socket/client/handler/clientpackethandlerplayerstate.h b/src/dusknetwork/network/socket/client/handler/clientpackethandlerplayerstate.h similarity index 100% rename from src/dusk/network/socket/client/handler/clientpackethandlerplayerstate.h rename to src/dusknetwork/network/socket/client/handler/clientpackethandlerplayerstate.h diff --git a/src/dusk/network/socket/client/localclient.c b/src/dusknetwork/network/socket/client/localclient.c similarity index 100% rename from src/dusk/network/socket/client/localclient.c rename to src/dusknetwork/network/socket/client/localclient.c diff --git a/src/dusk/network/socket/client/localclient.h b/src/dusknetwork/network/socket/client/localclient.h similarity index 100% rename from src/dusk/network/socket/client/localclient.h rename to src/dusknetwork/network/socket/client/localclient.h diff --git a/src/dusk/network/socket/client/remoteclient.h b/src/dusknetwork/network/socket/client/remoteclient.h similarity index 100% rename from src/dusk/network/socket/client/remoteclient.h rename to src/dusknetwork/network/socket/client/remoteclient.h diff --git a/src/dusk/network/socket/packet.c b/src/dusknetwork/network/socket/packet.c similarity index 100% rename from src/dusk/network/socket/packet.c rename to src/dusknetwork/network/socket/packet.c diff --git a/src/dusk/network/socket/packet.h b/src/dusknetwork/network/socket/packet.h similarity index 100% rename from src/dusk/network/socket/packet.h rename to src/dusknetwork/network/socket/packet.h diff --git a/src/dusk/network/socket/packetdata.h b/src/dusknetwork/network/socket/packetdata.h similarity index 100% rename from src/dusk/network/socket/packetdata.h rename to src/dusknetwork/network/socket/packetdata.h diff --git a/src/dusk/network/socket/packetinbox.c b/src/dusknetwork/network/socket/packetinbox.c similarity index 100% rename from src/dusk/network/socket/packetinbox.c rename to src/dusknetwork/network/socket/packetinbox.c diff --git a/src/dusk/network/socket/packetinbox.h b/src/dusknetwork/network/socket/packetinbox.h similarity index 100% rename from src/dusk/network/socket/packetinbox.h rename to src/dusknetwork/network/socket/packetinbox.h diff --git a/src/dusk/network/socket/packetregistry.c b/src/dusknetwork/network/socket/packetregistry.c similarity index 100% rename from src/dusk/network/socket/packetregistry.c rename to src/dusknetwork/network/socket/packetregistry.c diff --git a/src/dusk/network/socket/packetregistry.h b/src/dusknetwork/network/socket/packetregistry.h similarity index 100% rename from src/dusk/network/socket/packetregistry.h rename to src/dusknetwork/network/socket/packetregistry.h diff --git a/src/dusk/network/socket/packetreliable.c b/src/dusknetwork/network/socket/packetreliable.c similarity index 100% rename from src/dusk/network/socket/packetreliable.c rename to src/dusknetwork/network/socket/packetreliable.c diff --git a/src/dusk/network/socket/packetreliable.h b/src/dusknetwork/network/socket/packetreliable.h similarity index 100% rename from src/dusk/network/socket/packetreliable.h rename to src/dusknetwork/network/socket/packetreliable.h diff --git a/src/dusk/network/socket/packettype.h b/src/dusknetwork/network/socket/packettype.h similarity index 100% rename from src/dusk/network/socket/packettype.h rename to src/dusknetwork/network/socket/packettype.h diff --git a/src/dusk/network/socket/payload/packetack.h b/src/dusknetwork/network/socket/payload/packetack.h similarity index 100% rename from src/dusk/network/socket/payload/packetack.h rename to src/dusknetwork/network/socket/payload/packetack.h diff --git a/src/dusk/network/socket/payload/packetdisconnect.h b/src/dusknetwork/network/socket/payload/packetdisconnect.h similarity index 100% rename from src/dusk/network/socket/payload/packetdisconnect.h rename to src/dusknetwork/network/socket/payload/packetdisconnect.h diff --git a/src/dusk/network/socket/payload/packethandshake.h b/src/dusknetwork/network/socket/payload/packethandshake.h similarity index 100% rename from src/dusk/network/socket/payload/packethandshake.h rename to src/dusknetwork/network/socket/payload/packethandshake.h diff --git a/src/dusk/network/socket/payload/packethandshakeaccept.h b/src/dusknetwork/network/socket/payload/packethandshakeaccept.h similarity index 100% rename from src/dusk/network/socket/payload/packethandshakeaccept.h rename to src/dusknetwork/network/socket/payload/packethandshakeaccept.h diff --git a/src/dusk/network/socket/payload/packethandshakereject.h b/src/dusknetwork/network/socket/payload/packethandshakereject.h similarity index 100% rename from src/dusk/network/socket/payload/packethandshakereject.h rename to src/dusknetwork/network/socket/payload/packethandshakereject.h diff --git a/src/dusk/network/socket/payload/packetping.h b/src/dusknetwork/network/socket/payload/packetping.h similarity index 100% rename from src/dusk/network/socket/payload/packetping.h rename to src/dusknetwork/network/socket/payload/packetping.h diff --git a/src/dusk/network/socket/payload/packetplayerjoined.h b/src/dusknetwork/network/socket/payload/packetplayerjoined.h similarity index 100% rename from src/dusk/network/socket/payload/packetplayerjoined.h rename to src/dusknetwork/network/socket/payload/packetplayerjoined.h diff --git a/src/dusk/network/socket/payload/packetplayerleft.h b/src/dusknetwork/network/socket/payload/packetplayerleft.h similarity index 100% rename from src/dusk/network/socket/payload/packetplayerleft.h rename to src/dusknetwork/network/socket/payload/packetplayerleft.h diff --git a/src/dusk/network/socket/payload/packetplayerstate.h b/src/dusknetwork/network/socket/payload/packetplayerstate.h similarity index 100% rename from src/dusk/network/socket/payload/packetplayerstate.h rename to src/dusknetwork/network/socket/payload/packetplayerstate.h diff --git a/src/dusk/network/socket/server/CMakeLists.txt b/src/dusknetwork/network/socket/server/CMakeLists.txt similarity index 100% rename from src/dusk/network/socket/server/CMakeLists.txt rename to src/dusknetwork/network/socket/server/CMakeLists.txt diff --git a/src/dusk/network/socket/server/handler/CMakeLists.txt b/src/dusknetwork/network/socket/server/handler/CMakeLists.txt similarity index 100% rename from src/dusk/network/socket/server/handler/CMakeLists.txt rename to src/dusknetwork/network/socket/server/handler/CMakeLists.txt diff --git a/src/dusk/network/socket/server/handler/serverpackethandlerack.c b/src/dusknetwork/network/socket/server/handler/serverpackethandlerack.c similarity index 100% rename from src/dusk/network/socket/server/handler/serverpackethandlerack.c rename to src/dusknetwork/network/socket/server/handler/serverpackethandlerack.c diff --git a/src/dusk/network/socket/server/handler/serverpackethandlerack.h b/src/dusknetwork/network/socket/server/handler/serverpackethandlerack.h similarity index 100% rename from src/dusk/network/socket/server/handler/serverpackethandlerack.h rename to src/dusknetwork/network/socket/server/handler/serverpackethandlerack.h diff --git a/src/dusk/network/socket/server/handler/serverpackethandlerdisconnect.c b/src/dusknetwork/network/socket/server/handler/serverpackethandlerdisconnect.c similarity index 100% rename from src/dusk/network/socket/server/handler/serverpackethandlerdisconnect.c rename to src/dusknetwork/network/socket/server/handler/serverpackethandlerdisconnect.c diff --git a/src/dusk/network/socket/server/handler/serverpackethandlerdisconnect.h b/src/dusknetwork/network/socket/server/handler/serverpackethandlerdisconnect.h similarity index 100% rename from src/dusk/network/socket/server/handler/serverpackethandlerdisconnect.h rename to src/dusknetwork/network/socket/server/handler/serverpackethandlerdisconnect.h diff --git a/src/dusk/network/socket/server/handler/serverpackethandlerhandshake.c b/src/dusknetwork/network/socket/server/handler/serverpackethandlerhandshake.c similarity index 100% rename from src/dusk/network/socket/server/handler/serverpackethandlerhandshake.c rename to src/dusknetwork/network/socket/server/handler/serverpackethandlerhandshake.c diff --git a/src/dusk/network/socket/server/handler/serverpackethandlerhandshake.h b/src/dusknetwork/network/socket/server/handler/serverpackethandlerhandshake.h similarity index 100% rename from src/dusk/network/socket/server/handler/serverpackethandlerhandshake.h rename to src/dusknetwork/network/socket/server/handler/serverpackethandlerhandshake.h diff --git a/src/dusk/network/socket/server/handler/serverpackethandlerlist.c b/src/dusknetwork/network/socket/server/handler/serverpackethandlerlist.c similarity index 100% rename from src/dusk/network/socket/server/handler/serverpackethandlerlist.c rename to src/dusknetwork/network/socket/server/handler/serverpackethandlerlist.c diff --git a/src/dusk/network/socket/server/handler/serverpackethandlerlist.h b/src/dusknetwork/network/socket/server/handler/serverpackethandlerlist.h similarity index 100% rename from src/dusk/network/socket/server/handler/serverpackethandlerlist.h rename to src/dusknetwork/network/socket/server/handler/serverpackethandlerlist.h diff --git a/src/dusk/network/socket/server/handler/serverpackethandlerping.c b/src/dusknetwork/network/socket/server/handler/serverpackethandlerping.c similarity index 100% rename from src/dusk/network/socket/server/handler/serverpackethandlerping.c rename to src/dusknetwork/network/socket/server/handler/serverpackethandlerping.c diff --git a/src/dusk/network/socket/server/handler/serverpackethandlerping.h b/src/dusknetwork/network/socket/server/handler/serverpackethandlerping.h similarity index 100% rename from src/dusk/network/socket/server/handler/serverpackethandlerping.h rename to src/dusknetwork/network/socket/server/handler/serverpackethandlerping.h diff --git a/src/dusk/network/socket/server/handler/serverpackethandlerplayerstate.c b/src/dusknetwork/network/socket/server/handler/serverpackethandlerplayerstate.c similarity index 100% rename from src/dusk/network/socket/server/handler/serverpackethandlerplayerstate.c rename to src/dusknetwork/network/socket/server/handler/serverpackethandlerplayerstate.c diff --git a/src/dusk/network/socket/server/handler/serverpackethandlerplayerstate.h b/src/dusknetwork/network/socket/server/handler/serverpackethandlerplayerstate.h similarity index 100% rename from src/dusk/network/socket/server/handler/serverpackethandlerplayerstate.h rename to src/dusknetwork/network/socket/server/handler/serverpackethandlerplayerstate.h diff --git a/src/dusk/network/socket/server/serverclient.c b/src/dusknetwork/network/socket/server/serverclient.c similarity index 100% rename from src/dusk/network/socket/server/serverclient.c rename to src/dusknetwork/network/socket/server/serverclient.c diff --git a/src/dusk/network/socket/server/serverclient.h b/src/dusknetwork/network/socket/server/serverclient.h similarity index 100% rename from src/dusk/network/socket/server/serverclient.h rename to src/dusknetwork/network/socket/server/serverclient.h diff --git a/src/dusk/network/socket/server/serverclientlocal.h b/src/dusknetwork/network/socket/server/serverclientlocal.h similarity index 100% rename from src/dusk/network/socket/server/serverclientlocal.h rename to src/dusknetwork/network/socket/server/serverclientlocal.h diff --git a/src/dusk/network/socket/server/serverclientremote.h b/src/dusknetwork/network/socket/server/serverclientremote.h similarity index 100% rename from src/dusk/network/socket/server/serverclientremote.h rename to src/dusknetwork/network/socket/server/serverclientremote.h diff --git a/src/dusk/network/socket/server/serveroffline.c b/src/dusknetwork/network/socket/server/serveroffline.c similarity index 100% rename from src/dusk/network/socket/server/serveroffline.c rename to src/dusknetwork/network/socket/server/serveroffline.c diff --git a/src/dusk/network/socket/server/serveroffline.h b/src/dusknetwork/network/socket/server/serveroffline.h similarity index 100% rename from src/dusk/network/socket/server/serveroffline.h rename to src/dusknetwork/network/socket/server/serveroffline.h diff --git a/src/dusk/network/socket/server/serveronline.c b/src/dusknetwork/network/socket/server/serveronline.c similarity index 100% rename from src/dusk/network/socket/server/serveronline.c rename to src/dusknetwork/network/socket/server/serveronline.c diff --git a/src/dusk/network/socket/server/serveronline.h b/src/dusknetwork/network/socket/server/serveronline.h similarity index 100% rename from src/dusk/network/socket/server/serveronline.h rename to src/dusknetwork/network/socket/server/serveronline.h diff --git a/src/dusk/network/socket/server/serverthread.c b/src/dusknetwork/network/socket/server/serverthread.c similarity index 100% rename from src/dusk/network/socket/server/serverthread.c rename to src/dusknetwork/network/socket/server/serverthread.c diff --git a/src/dusk/network/socket/server/serverthread.h b/src/dusknetwork/network/socket/server/serverthread.h similarity index 100% rename from src/dusk/network/socket/server/serverthread.h rename to src/dusknetwork/network/socket/server/serverthread.h diff --git a/src/duskpsp/CMakeLists.txt b/src/duskpsp/CMakeLists.txt index ca661aa5..696a6b59 100644 --- a/src/duskpsp/CMakeLists.txt +++ b/src/duskpsp/CMakeLists.txt @@ -18,7 +18,9 @@ target_sources(${DUSK_BINARY_TARGET_NAME} add_subdirectory(asset) add_subdirectory(input) add_subdirectory(log) -add_subdirectory(network) +if(DUSK_NETWORKING) + add_subdirectory(network) +endif() add_subdirectory(save) add_subdirectory(system) add_subdirectory(time) \ No newline at end of file diff --git a/src/duskrpg/item/CMakeLists.txt b/src/duskrpg/item/CMakeLists.txt index faa81581..d6228e67 100644 --- a/src/duskrpg/item/CMakeLists.txt +++ b/src/duskrpg/item/CMakeLists.txt @@ -18,6 +18,12 @@ target_sources(${DUSK_LIBRARY_TARGET_NAME} dusk_run_python( dusk_item_json_defs tools.item + OUTPUT ${DUSK_GENERATED_HEADERS_DIR}/item/itemdef.h + DEPENDS + ${CMAKE_CURRENT_SOURCE_DIR}/item.json + ${DUSK_TOOLS_DIR}/item.py + ${DUSK_TOOLS_DIR}/writeifchanged.py + ARGS --json ${CMAKE_CURRENT_SOURCE_DIR}/item.json --output ${DUSK_GENERATED_HEADERS_DIR}/item/itemdef.h ) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index f48016b6..3d5e424b 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -7,7 +7,9 @@ add_subdirectory(animation) add_subdirectory(assert) add_subdirectory(asset) add_subdirectory(error) -add_subdirectory(network) +if(DUSK_NETWORKING) + add_subdirectory(network) +endif() add_subdirectory(thread) add_subdirectory(display) add_subdirectory(entity) diff --git a/test/script/CMakeLists.txt b/test/script/CMakeLists.txt index bf893c35..fe65b28f 100644 --- a/test/script/CMakeLists.txt +++ b/test/script/CMakeLists.txt @@ -9,6 +9,8 @@ dusktest(test_modulerequire.c) dusktest(test_scriptdef.c) +dusktest(test_moduleconsole.c) + dusktest(test_overworldscene.c) target_compile_definitions(test_overworldscene PRIVATE DUSK_ASSETS_DIR="${DUSK_ASSETS_DIR}" diff --git a/test/script/test_moduleconsole.c b/test/script/test_moduleconsole.c new file mode 100644 index 00000000..323adbe4 --- /dev/null +++ b/test/script/test_moduleconsole.c @@ -0,0 +1,69 @@ +/** + * Copyright (c) 2026 Dominic Masters + * + * This software is released under the MIT License. + * https://opensource.org/licenses/MIT + */ + +#include "dusktest.h" +#include "console/console.h" +#include "script/scriptmanager.h" +#include "util/memory.h" + +static int console_setup(void **state) { + consoleInit(); + + errorret_t ret = scriptManagerInit(); + if(errorIsNotOk(ret)) { errorCatch(ret); return -1; } + + return 0; +} + +static int console_teardown(void **state) { + errorret_t ret = scriptManagerDispose(); + if(errorIsNotOk(ret)) errorCatch(ret); + + consoleDispose(); + return 0; +} + +static void test_console_print_joins_stringified_args(void **state) { + jerry_value_t result; + errorret_t ret = scriptManagerExec( + "Console.print('hello', 42, true);", &result + ); + assert_true(errorIsOk(ret)); + jerry_value_free(result); + + assert_string_equal( + CONSOLE.line[CONSOLE_HISTORY_MAX - 1], "hello 42 true" + ); + + assert_int_equal(memoryGetAllocatedCount(), 0); +} + +static void test_console_print_no_args_prints_empty_line(void **state) { + jerry_value_t result; + errorret_t ret = scriptManagerExec("Console.print();", &result); + assert_true(errorIsOk(ret)); + jerry_value_free(result); + + assert_string_equal(CONSOLE.line[CONSOLE_HISTORY_MAX - 1], ""); + + assert_int_equal(memoryGetAllocatedCount(), 0); +} + +int main(void) { + assertInit(); + const struct CMUnitTest tests[] = { + cmocka_unit_test_setup_teardown( + test_console_print_joins_stringified_args, + console_setup, console_teardown + ), + cmocka_unit_test_setup_teardown( + test_console_print_no_args_prints_empty_line, + console_setup, console_teardown + ), + }; + return cmocka_run_group_tests(tests, NULL, NULL); +} diff --git a/tools/color.py b/tools/color.py index 0525d037..feb9eade 100644 --- a/tools/color.py +++ b/tools/color.py @@ -1,6 +1,7 @@ import argparse import csv -import os + +from tools.writeifchanged import write_if_changed parser = argparse.ArgumentParser(description="Color CSV to .h defines") parser.add_argument("--csv", required=True, help="Path to color CSV file") @@ -79,6 +80,4 @@ for line in "\n".join(js).rstrip().splitlines(): out[-1] = out[-1].rstrip(" \\") out.append("") -os.makedirs(os.path.dirname(args.output), exist_ok=True) -with open(args.output, "w", encoding="utf-8") as f: - f.write("\n".join(out)) +write_if_changed(args.output, "\n".join(out)) diff --git a/tools/item.py b/tools/item.py index f5d8b9c7..1d497896 100644 --- a/tools/item.py +++ b/tools/item.py @@ -1,6 +1,7 @@ import argparse import json -import os + +from tools.writeifchanged import write_if_changed parser = argparse.ArgumentParser(description="Item JSON to .h defines") parser.add_argument("--json", required=True, help="Path to item JSON file") @@ -109,6 +110,4 @@ out += [ "", ] -os.makedirs(os.path.dirname(args.output), exist_ok=True) -with open(args.output, "w", encoding="utf-8") as f: - f.write("\n".join(out)) +write_if_changed(args.output, "\n".join(out)) diff --git a/tools/run_python/CMakeLists.txt b/tools/run_python/CMakeLists.txt index abd8808a..00c78577 100644 --- a/tools/run_python/CMakeLists.txt +++ b/tools/run_python/CMakeLists.txt @@ -4,11 +4,16 @@ # https://opensource.org/licenses/MIT function(dusk_run_python CMAKE_TARGET_NAME PYTHON_MODULE) + cmake_parse_arguments(DUSK_RUN_PYTHON "" "OUTPUT" "DEPENDS;ARGS" ${ARGN}) find_package(Python3 COMPONENTS Interpreter REQUIRED) - add_custom_target(${CMAKE_TARGET_NAME} ALL + add_custom_command( + OUTPUT ${DUSK_RUN_PYTHON_OUTPUT} WORKING_DIRECTORY ${DUSK_ROOT_DIR} COMMAND - ${Python3_EXECUTABLE} -m ${PYTHON_MODULE} ${ARGN} + ${Python3_EXECUTABLE} -m ${PYTHON_MODULE} ${DUSK_RUN_PYTHON_ARGS} + DEPENDS ${DUSK_RUN_PYTHON_DEPENDS} + VERBATIM ) + add_custom_target(${CMAKE_TARGET_NAME} DEPENDS ${DUSK_RUN_PYTHON_OUTPUT}) endfunction() diff --git a/tools/writeifchanged.py b/tools/writeifchanged.py new file mode 100644 index 00000000..4f97a8dd --- /dev/null +++ b/tools/writeifchanged.py @@ -0,0 +1,13 @@ +import os + +def write_if_changed(path, content): + try: + with open(path, "r", encoding="utf-8") as f: + if f.read() == content: + return + except FileNotFoundError: + pass + + os.makedirs(os.path.dirname(path), exist_ok=True) + with open(path, "w", encoding="utf-8") as f: + f.write(content) diff --git a/types/console/console.d.ts b/types/console/console.d.ts new file mode 100644 index 00000000..c16b557f --- /dev/null +++ b/types/console/console.d.ts @@ -0,0 +1,13 @@ +// Copyright (c) 2026 Dominic Masters +// +// This software is released under the MIT License. +// https://opensource.org/licenses/MIT + +/** + * Prints to the engine's in-game console (see console/console.h on the + * native side). Arguments are stringified and joined with a space, like + * console.log. + */ +declare const Console: { + print(...args: any[]): void; +}; diff --git a/types/index.d.ts b/types/index.d.ts index e5ef4677..278b9caa 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -12,3 +12,4 @@ /// /// /// +///