From 2b2be796e9a4821df1e9e09f43ad7903f08ecfa4 Mon Sep 17 00:00:00 2001 From: DrSocalkwe3n Date: Mon, 5 Jan 2026 02:25:51 +0600 Subject: [PATCH] =?UTF-8?q?codex-5.2:=20=D0=9E=D1=82=D0=BB=D0=B0=D0=B4?= =?UTF-8?q?=D0=BA=D0=B0=20=D1=81=D0=B5=D1=82=D0=B8=20=D1=81=D0=BE=20=D1=81?= =?UTF-8?q?=D1=82=D0=BE=D1=80=D0=BE=D0=BD=D1=8B=20=D0=BA=D0=BB=D0=B8=D0=B5?= =?UTF-8?q?=D0=BD=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Src/Client/Abstract.hpp | 3 + Src/Client/ServerSession.cpp | 27 +++++ Src/Client/Vulkan/Vulkan.cpp | 2 + Src/Common/AssetsPreloader.cpp | 4 + Src/Server/GameServer.cpp | 13 ++- Src/Server/RemoteClient.cpp | 6 +- .../assets/test/model/node/acacia_planks.json | 81 --------------- mods/test/assets/test/model/node/frame.json | 81 --------------- mods/test/assets/test/model/node/grass.json | 81 --------------- .../assets/test/model/node/jungle_planks.json | 81 --------------- .../assets/test/model/node/oak_planks.json | 81 --------------- .../model/node/tropical_rainforest_wood.json | 81 --------------- .../assets/test/model/node/willow_wood.json | 81 --------------- .../test/model/node/xnether_blue_wood.json | 81 --------------- .../test/model/node/xnether_purple_wood.json | 81 --------------- mods/test/assets/test/nodestate/test0.json | 14 --- mods/test/assets/test/nodestate/test1.json | 14 --- mods/test/assets/test/nodestate/test2.json | 14 --- mods/test/assets/test/nodestate/test3.json | 14 --- mods/test/assets/test/nodestate/test4.json | 14 --- mods/test/assets/test/nodestate/test5.json | 14 --- mods/test/assets/test/texture/0.png | Bin 14212 -> 0 bytes .../assets/test/texture/acacia_planks.png | Bin 3800 -> 0 bytes mods/test/assets/test/texture/frame.png | Bin 138 -> 0 bytes mods/test/assets/test/texture/grass.png | Bin 10253 -> 0 bytes .../assets/test/texture/jungle_planks.png | Bin 15990 -> 0 bytes mods/test/assets/test/texture/oak_planks.png | Bin 15180 -> 0 bytes .../test/texture/tropical_rainforest_wood.png | Bin 1453 -> 0 bytes mods/test/assets/test/texture/willow_wood.png | Bin 2089 -> 0 bytes .../assets/test/texture/xnether_blue_wood.png | Bin 6101 -> 0 bytes .../test/texture/xnether_purple_wood.png | Bin 5940 -> 0 bytes mods/test/init.lua | 98 ------------------ mods/test/mod.json | 9 -- 33 files changed, 49 insertions(+), 926 deletions(-) delete mode 100644 mods/test/assets/test/model/node/acacia_planks.json delete mode 100644 mods/test/assets/test/model/node/frame.json delete mode 100644 mods/test/assets/test/model/node/grass.json delete mode 100644 mods/test/assets/test/model/node/jungle_planks.json delete mode 100644 mods/test/assets/test/model/node/oak_planks.json delete mode 100644 mods/test/assets/test/model/node/tropical_rainforest_wood.json delete mode 100644 mods/test/assets/test/model/node/willow_wood.json delete mode 100644 mods/test/assets/test/model/node/xnether_blue_wood.json delete mode 100644 mods/test/assets/test/model/node/xnether_purple_wood.json delete mode 100644 mods/test/assets/test/nodestate/test0.json delete mode 100644 mods/test/assets/test/nodestate/test1.json delete mode 100644 mods/test/assets/test/nodestate/test2.json delete mode 100644 mods/test/assets/test/nodestate/test3.json delete mode 100644 mods/test/assets/test/nodestate/test4.json delete mode 100644 mods/test/assets/test/nodestate/test5.json delete mode 100644 mods/test/assets/test/texture/0.png delete mode 100644 mods/test/assets/test/texture/acacia_planks.png delete mode 100644 mods/test/assets/test/texture/frame.png delete mode 100644 mods/test/assets/test/texture/grass.png delete mode 100644 mods/test/assets/test/texture/jungle_planks.png delete mode 100644 mods/test/assets/test/texture/oak_planks.png delete mode 100644 mods/test/assets/test/texture/tropical_rainforest_wood.png delete mode 100644 mods/test/assets/test/texture/willow_wood.png delete mode 100644 mods/test/assets/test/texture/xnether_blue_wood.png delete mode 100644 mods/test/assets/test/texture/xnether_purple_wood.png delete mode 100644 mods/test/init.lua delete mode 100644 mods/test/mod.json diff --git a/Src/Client/Abstract.hpp b/Src/Client/Abstract.hpp index 72da0d9..b75fd7f 100644 --- a/Src/Client/Abstract.hpp +++ b/Src/Client/Abstract.hpp @@ -177,6 +177,9 @@ struct AssetEntry { */ class IServerSession { public: + // Включить логирование входящих сетевых пакетов на клиенте. + bool DebugLogPackets = false; + // Используемые двоичные ресурсы std::unordered_map> Assets; diff --git a/Src/Client/ServerSession.cpp b/Src/Client/ServerSession.cpp index 510427b..857fdc2 100644 --- a/Src/Client/ServerSession.cpp +++ b/Src/Client/ServerSession.cpp @@ -38,6 +38,26 @@ const char* assetTypeName(EnumAssets type) { } } +const char* toClientPacketName(ToClient type) { + switch(type) { + case ToClient::Init: return "Init"; + case ToClient::Disconnect: return "Disconnect"; + case ToClient::AssetsBindDK: return "AssetsBindDK"; + case ToClient::AssetsBindHH: return "AssetsBindHH"; + case ToClient::AssetsInitSend: return "AssetsInitSend"; + case ToClient::AssetsNextSend: return "AssetsNextSend"; + case ToClient::DefinitionsUpdate: return "DefinitionsUpdate"; + case ToClient::ChunkVoxels: return "ChunkVoxels"; + case ToClient::ChunkNodes: return "ChunkNodes"; + case ToClient::ChunkLightPrism: return "ChunkLightPrism"; + case ToClient::RemoveRegion: return "RemoveRegion"; + case ToClient::Tick: return "Tick"; + case ToClient::TestLinkCameraToEntity: return "TestLinkCameraToEntity"; + case ToClient::TestUnlinkCamera: return "TestUnlinkCamera"; + default: return "Unknown"; + } +} + } ServerSession::ServerSession(asio::io_context &ioc, std::unique_ptr&& socket) @@ -875,6 +895,8 @@ void ServerSession::update(GlobalTime gTime, float dTime) { } result.Chunks_ChangeOrAdd = std::move(chunks_Changed); + for(auto& [wId, regions] : regions_Lost_Result) + result.Chunks_Lost[wId] = std::vector(regions.begin(), regions.end()); { @@ -1233,6 +1255,11 @@ void ServerSession::protocolError() { coro<> ServerSession::readPacket(Net::AsyncSocket &sock) { uint8_t first = co_await sock.read(); + if(DebugLogPackets) { + ToClient type = static_cast(first); + LOG.debug() << "Recv packet=" << toClientPacketName(type) << " id=" << int(first); + } + switch((ToClient) first) { case ToClient::Init: co_return; diff --git a/Src/Client/Vulkan/Vulkan.cpp b/Src/Client/Vulkan/Vulkan.cpp index 8945557..e036594 100644 --- a/Src/Client/Vulkan/Vulkan.cpp +++ b/Src/Client/Vulkan/Vulkan.cpp @@ -2291,6 +2291,8 @@ void Vulkan::gui_ConnectedToServer() { double chunksKb = double(Game.Session->getVisibleCompressedChunksBytes()) / 1024.0; ImGui::Text("chunks compressed: %.1f KB", chunksKb); + ImGui::Checkbox("Логи сетевых пакетов", &Game.Session->DebugLogPackets); + if(ImGui::Button("Delimeter")) LOG.debug(); diff --git a/Src/Common/AssetsPreloader.cpp b/Src/Common/AssetsPreloader.cpp index 2f08593..8700087 100644 --- a/Src/Common/AssetsPreloader.cpp +++ b/Src/Common/AssetsPreloader.cpp @@ -57,6 +57,10 @@ AssetsPreloader::Out_reloadResources AssetsPreloader::reloadResources(const Asse try { ReloadStatus secondStatus; return _reloadResources(instances, status ? *status : secondStatus); + } catch(const std::exception& exc) { + LOG.error() << exc.what(); + assert(!"reloadResources: здесь не должно быть ошибок"); + std::unreachable(); } catch(...) { assert(!"reloadResources: здесь не должно быть ошибок"); std::unreachable(); diff --git a/Src/Server/GameServer.cpp b/Src/Server/GameServer.cpp index 09a339c..ce9e661 100644 --- a/Src/Server/GameServer.cpp +++ b/Src/Server/GameServer.cpp @@ -44,6 +44,15 @@ namespace js = boost::json; namespace LV::Server { +template +bool hasAnyBindings(const std::array, N>& data) { + for(const auto& list : data) { + if(!list.empty()) + return true; + } + return false; +} + std::string ModInfo::dump() const { js::object obj; @@ -1694,7 +1703,7 @@ void GameServer::reloadMods() { { AssetsPreloader::Out_bakeId baked = Content.AM.bakeIdTables(); - if(!baked.IdToDK.empty()) { + if(hasAnyBindings(baked.IdToDK)) { packetsToSend.push_back(RemoteClient::makePacket_informateAssets_DK(baked.IdToDK)); } } @@ -2487,7 +2496,7 @@ void GameServer::stepSyncContent() { std::vector packetsToAll; { AssetsPreloader::Out_bakeId baked = Content.AM.bakeIdTables(); - if(!baked.IdToDK.empty()) { + if(hasAnyBindings(baked.IdToDK)) { packetsToAll.push_back(RemoteClient::makePacket_informateAssets_DK(baked.IdToDK)); } } diff --git a/Src/Server/RemoteClient.cpp b/Src/Server/RemoteClient.cpp index 4fddd18..3dffa49 100644 --- a/Src/Server/RemoteClient.cpp +++ b/Src/Server/RemoteClient.cpp @@ -389,10 +389,8 @@ void RemoteClient::NetworkAndResource_t::prepareWorldRemove(WorldId_t worldId) void RemoteClient::prepareCameraSetEntity(ServerEntityId_t entityId) { auto lock = NetworkAndResource.lock(); - ClientEntityId_t cId = lock->ReMapEntities.toClient(entityId); - lock->checkPacketBorder(8); - lock->NextPacket << (uint8_t) ToClient::TestLinkCameraToEntity - << cId; + lock->checkPacketBorder(4); + lock->NextPacket << (uint8_t) ToClient::TestLinkCameraToEntity; } ResourceRequest RemoteClient::pushPreparedPackets() { diff --git a/mods/test/assets/test/model/node/acacia_planks.json b/mods/test/assets/test/model/node/acacia_planks.json deleted file mode 100644 index e815d04..0000000 --- a/mods/test/assets/test/model/node/acacia_planks.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "textures": { - "default": "acacia_planks.png" - }, - "cuboids": [ - { - "from": [ - -0.5, - -0.5, - -0.5 - ], - "to": [ - 0.5, - 0.5, - 0.5 - ], - "faces": { - "down": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "down" - }, - "up": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "up" - }, - "north": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "north" - }, - "south": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "south" - }, - "west": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "west" - }, - "east": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "east" - } - } - } - ] -} diff --git a/mods/test/assets/test/model/node/frame.json b/mods/test/assets/test/model/node/frame.json deleted file mode 100644 index 3b71dbd..0000000 --- a/mods/test/assets/test/model/node/frame.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "textures": { - "default": "frame.png" - }, - "cuboids": [ - { - "from": [ - -0.5, - -0.5, - -0.5 - ], - "to": [ - 0.5, - 0.5, - 0.5 - ], - "faces": { - "down": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "down" - }, - "up": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "up" - }, - "north": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "north" - }, - "south": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "south" - }, - "west": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "west" - }, - "east": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "east" - } - } - } - ] -} diff --git a/mods/test/assets/test/model/node/grass.json b/mods/test/assets/test/model/node/grass.json deleted file mode 100644 index c8cdff5..0000000 --- a/mods/test/assets/test/model/node/grass.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "textures": { - "default": "grass.png" - }, - "cuboids": [ - { - "from": [ - -0.5, - -0.5, - -0.5 - ], - "to": [ - 0.5, - 0.5, - 0.5 - ], - "faces": { - "down": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "down" - }, - "up": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "up" - }, - "north": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "north" - }, - "south": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "south" - }, - "west": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "west" - }, - "east": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "east" - } - } - } - ] -} diff --git a/mods/test/assets/test/model/node/jungle_planks.json b/mods/test/assets/test/model/node/jungle_planks.json deleted file mode 100644 index 60c5c69..0000000 --- a/mods/test/assets/test/model/node/jungle_planks.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "textures": { - "default": "jungle_planks.png" - }, - "cuboids": [ - { - "from": [ - -0.5, - -0.5, - -0.5 - ], - "to": [ - 0.5, - 0.5, - 0.5 - ], - "faces": { - "down": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "down" - }, - "up": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "up" - }, - "north": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "north" - }, - "south": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "south" - }, - "west": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "west" - }, - "east": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "east" - } - } - } - ] -} diff --git a/mods/test/assets/test/model/node/oak_planks.json b/mods/test/assets/test/model/node/oak_planks.json deleted file mode 100644 index b882064..0000000 --- a/mods/test/assets/test/model/node/oak_planks.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "textures": { - "default": "oak_planks.png" - }, - "cuboids": [ - { - "from": [ - -0.5, - -0.5, - -0.5 - ], - "to": [ - 0.5, - 0.5, - 0.5 - ], - "faces": { - "down": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "down" - }, - "up": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "up" - }, - "north": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "north" - }, - "south": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "south" - }, - "west": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "west" - }, - "east": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "east" - } - } - } - ] -} diff --git a/mods/test/assets/test/model/node/tropical_rainforest_wood.json b/mods/test/assets/test/model/node/tropical_rainforest_wood.json deleted file mode 100644 index 68e601b..0000000 --- a/mods/test/assets/test/model/node/tropical_rainforest_wood.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "textures": { - "default": "tropical_rainforest_wood.png" - }, - "cuboids": [ - { - "from": [ - -0.5, - -0.5, - -0.5 - ], - "to": [ - 0.5, - 0.5, - 0.5 - ], - "faces": { - "down": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "down" - }, - "up": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "up" - }, - "north": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "north" - }, - "south": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "south" - }, - "west": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "west" - }, - "east": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "east" - } - } - } - ] -} diff --git a/mods/test/assets/test/model/node/willow_wood.json b/mods/test/assets/test/model/node/willow_wood.json deleted file mode 100644 index 0b96be6..0000000 --- a/mods/test/assets/test/model/node/willow_wood.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "textures": { - "default": "willow_wood.png" - }, - "cuboids": [ - { - "from": [ - -0.5, - -0.5, - -0.5 - ], - "to": [ - 0.5, - 0.5, - 0.5 - ], - "faces": { - "down": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "down" - }, - "up": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "up" - }, - "north": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "north" - }, - "south": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "south" - }, - "west": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "west" - }, - "east": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "east" - } - } - } - ] -} diff --git a/mods/test/assets/test/model/node/xnether_blue_wood.json b/mods/test/assets/test/model/node/xnether_blue_wood.json deleted file mode 100644 index 271ead2..0000000 --- a/mods/test/assets/test/model/node/xnether_blue_wood.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "textures": { - "default": "xnether_blue_wood.png" - }, - "cuboids": [ - { - "from": [ - -0.5, - -0.5, - -0.5 - ], - "to": [ - 0.5, - 0.5, - 0.5 - ], - "faces": { - "down": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "down" - }, - "up": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "up" - }, - "north": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "north" - }, - "south": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "south" - }, - "west": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "west" - }, - "east": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "east" - } - } - } - ] -} diff --git a/mods/test/assets/test/model/node/xnether_purple_wood.json b/mods/test/assets/test/model/node/xnether_purple_wood.json deleted file mode 100644 index 9127a8b..0000000 --- a/mods/test/assets/test/model/node/xnether_purple_wood.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "textures": { - "default": "xnether_purple_wood.png" - }, - "cuboids": [ - { - "from": [ - -0.5, - -0.5, - -0.5 - ], - "to": [ - 0.5, - 0.5, - 0.5 - ], - "faces": { - "down": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "down" - }, - "up": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "up" - }, - "north": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "north" - }, - "south": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "south" - }, - "west": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "west" - }, - "east": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "default", - "cullface": "east" - } - } - } - ] -} diff --git a/mods/test/assets/test/nodestate/test0.json b/mods/test/assets/test/nodestate/test0.json deleted file mode 100644 index 4085598..0000000 --- a/mods/test/assets/test/nodestate/test0.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "meta==0": { - "model": "node/grass.json" - }, - "meta==1": { - "model": "node/oak_planks.json" - }, - "meta==2": { - "model": "node/jungle_planks.json" - }, - "meta==3": { - "model": "node/acacia_planks.json" - } -} diff --git a/mods/test/assets/test/nodestate/test1.json b/mods/test/assets/test/nodestate/test1.json deleted file mode 100644 index e560473..0000000 --- a/mods/test/assets/test/nodestate/test1.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "meta==0": { - "model": "node/tropical_rainforest_wood.json" - }, - "meta==1": { - "model": "node/willow_wood.json" - }, - "meta==2": { - "model": "node/xnether_blue_wood.json" - }, - "meta==3": { - "model": "node/xnether_purple_wood.json" - } -} diff --git a/mods/test/assets/test/nodestate/test2.json b/mods/test/assets/test/nodestate/test2.json deleted file mode 100644 index 5a7029f..0000000 --- a/mods/test/assets/test/nodestate/test2.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "meta==0": { - "model": "node/frame.json" - }, - "meta==1": { - "model": "node/grass.json" - }, - "meta==2": { - "model": "node/oak_planks.json" - }, - "meta==3": { - "model": "node/acacia_planks.json" - } -} diff --git a/mods/test/assets/test/nodestate/test3.json b/mods/test/assets/test/nodestate/test3.json deleted file mode 100644 index c7f595e..0000000 --- a/mods/test/assets/test/nodestate/test3.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "meta==0": { - "model": "node/jungle_planks.json" - }, - "meta==1": { - "model": "node/tropical_rainforest_wood.json" - }, - "meta==2": { - "model": "node/willow_wood.json" - }, - "meta==3": { - "model": "node/xnether_blue_wood.json" - } -} diff --git a/mods/test/assets/test/nodestate/test4.json b/mods/test/assets/test/nodestate/test4.json deleted file mode 100644 index b925d58..0000000 --- a/mods/test/assets/test/nodestate/test4.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "meta==0": { - "model": "node/oak_planks.json" - }, - "meta==1": { - "model": "node/jungle_planks.json" - }, - "meta==2": { - "model": "node/acacia_planks.json" - }, - "meta==3": { - "model": "node/willow_wood.json" - } -} diff --git a/mods/test/assets/test/nodestate/test5.json b/mods/test/assets/test/nodestate/test5.json deleted file mode 100644 index eb652da..0000000 --- a/mods/test/assets/test/nodestate/test5.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "meta==0": { - "model": "node/grass.json" - }, - "meta==1": { - "model": "node/frame.json" - }, - "meta==2": { - "model": "node/xnether_purple_wood.json" - }, - "meta==3": { - "model": "node/tropical_rainforest_wood.json" - } -} diff --git a/mods/test/assets/test/texture/0.png b/mods/test/assets/test/texture/0.png deleted file mode 100644 index 4b48a99b87611000f95bb0cf6dd09a4aebf35e37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14212 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 diff --git a/mods/test/assets/test/texture/acacia_planks.png b/mods/test/assets/test/texture/acacia_planks.png deleted file mode 100644 index 01d81c99b89f2f703138f255db11db7e6d6cf0cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3800 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 diff --git a/mods/test/assets/test/texture/frame.png b/mods/test/assets/test/texture/frame.png deleted file mode 100644 index 4a57b06c0a84f365f8026e93faa12aad0c297660..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 138 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 T2w=;e00000NkvXXu0mjfFoh(3 diff --git a/mods/test/assets/test/texture/jungle_planks.png b/mods/test/assets/test/texture/jungle_planks.png deleted file mode 100644 index 1ecc2e641c9a90d7d0a704679a029c0ccfe33327..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15990 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 T`)`360Fe4EFIFdF82o<#3>^3s diff --git a/mods/test/assets/test/texture/oak_planks.png b/mods/test/assets/test/texture/oak_planks.png deleted file mode 100644 index 73ffcbdd23b8bc1d1d321de4561731b03b6e5836..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15180 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

<7&10ID?v$*G>;Zb{7sQ}^7)(;Dpc-5 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 diff --git a/mods/test/assets/test/texture/tropical_rainforest_wood.png b/mods/test/assets/test/texture/tropical_rainforest_wood.png deleted file mode 100644 index af57e116b29c54ac1866ab4041091b68d8dcec6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1453 zcmV;e1ycHnP)e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00k9EL_t(Y$4ypSjx0+Jj0n4W z<^V#v3t*RQg{`nA{*VA&&UB?C_;Ae;_0`HQS7ye`=HLJJ*H>L6DRkF)ABoqil_5#u zzK;#I0LCHkzP|{)uIrq)gCKE8h)iToKdAcncqN{h*a5@_WSFAJfC0KI_SZdo3j#zESAZmd_Kze0fFBo;ovI-?#pqH<9alB}M|2B$6}7K}k+X5|I!n z5#k_rYybwBBryO0qyjkVtB4q}#N-6u2xk%s>Fz9VNe}@n5%~UMK!HT)c+SB}o*_h{ z|MAb?_w@u4i07dg2ZUCT9v~FNUOoUUnMvRTA(fZ_RC#X9{?m)csS=X98o|oFkWk+> z1lk?|AgV;dW08^)lLQEaA*KKP_g%`2dyjMVD#zMGg-F6jg-J*ZsJ`Ghb2}tSP2w}~ zbkzh1kO8Jjy#OWs`uJEV?R=xNWL7*`tU<&c;{kmD7y&?V$-vf!j<443kVUacFbSio z1q1+iamgef-=YvFAPW={APyuF2r%akwy2$4g|QuX5{dD89isk^yx^DRsy0a|1+bl< z_FY00yA8$$f!H>JF17DBgsyU;0F+~ZRXS%V#d%-@D1l`B>h@m3D=;SzX)+EIus{NA zKGMu}2`rU}24M%h1fyhI!aXdo#d87%9v~%-olxAwMo6Lpf~us)~NcHov@{4-mr{vM4)?(10TCoc`@cQzQk1`|FAI1%^&U1}G7rL!c8gAhRk+ zwmMrv^ch1%swd!BM3V6VP!eJQR7nIdWD*Z0oikpgWqVYrw0%g+5c9+!SVViKM8_gt zt?#5z0x|-yIwUC+Qy0ec7(~@0*^rs4Uyx=a1K{hi_qJhxL zr#ur3fnv^gM_RSoPeVn}fBq~yJPpYz0g1;+$u>f$x64K3Qwgl$fk;AfpILxKRf(j* zndyO$2|3Q3$xVDyEzWkG9Bf-%8^!6?Zbk|?8>tCY0=%&cvAY`QC#9Klb$`C3D%*)k z&73FXvq8^s1e*Lhv5nl-rDtRl65h6F9S3lXMt>Nnt7hyN25gFiyRUdWCxF3LwIBhi zotbtjwS64Kud8iKrBa~S6naca_e^HTkOQE*OZ0sUNifNrv5`fbo-aJ9(#P%S| z;E<>yfo@TXx>Azp83HPLOfm+mI}v-w+r$97x?6T;=ALM4ZQDD&Rq?*lg|;*S$#d>Y zbv%h_Fi0$^SzzMBXGYSF0)VbpmpvYGhgbr5-|r0@P`C3xEV62Em3akY00000NkvXX Hu0mjf;RJOC diff --git a/mods/test/assets/test/texture/willow_wood.png b/mods/test/assets/test/texture/willow_wood.png deleted file mode 100644 index 6107044abdf71dcb7dd08e93001b800a04b1cddc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2089 zcmV+^2-f$BP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1bvw&N%a{bv=u1SBzt5ldK!h^Fr+lj?|33LTPOjgybCe_vsIgSQ+mYkb7aH@XF*@BtXCh5>J6_WR670qXM4{L(1Z~00Q!!8@yyE5&({JpBvvq8e`e>RHJ4A z2rmIkO94;@Rt|*?{E1G%q3p#w?|tymt4}@$2`=~$LJYn5T9U6s;Q~w#!VXP zL<=o8ZK>srHc)AEo8Q6~H{H^fcTjDY-R*u4d)#$Tdp=PkGhuzXKSzxY)OaA(2gVaM zd>Z3nf_gde9Wx-tj(~XV2!PPsF|$g}vFXrt%xprL6VLF{cW@eY#DJjNi2Y6{c3;Rn z;bxrsBi#5v&UEPh26CoDcZ1w3Zf{U)eYdGr%s{9w!=6+tSbq3iGi%-j-#8xazQ0Wg z`t^qMlp7w%OUic3Y`U7XYx?GMCtDtdu(qb1B1~o20j{IZpybX$rxdu{TP1>E`xwpt zKb5&E>M)X2uQA0oMrfev3AV-26Q)b%(UmZ}Htd&YZfZWwWTxP<&vjE zcuY!WocQ8mX}x%F>|I!QvifOMtG4MvcCc@5COBo7URll4Pmg*t*OGO*>c6MBjWU9R z4i3Xpd9KlOmyor5i_l}4$*atG8O%3*z{jY+D>5sg#)gS8Hh2zh@-8QfEq=VEX>4Tx0C=2zkv&MmKpe$i(@I4u3U&~6$WWauh>AFB6^c+H)C#RSm|XfHG-*gu zTpR`0f`cE6RR=bb;{*sk16O*>U#SDrpQP7X zTI>ku*#<7ITbi;5T;Y5-i%B}Z<9Duprtz_jda zt(%q&kOjw~#Ia4{P-do7re%}*)3pd?K)>DOX7-XDctMC^S{Q(#L2J9VmdpPzI3M=- ziz216*8+&ECoiij52{LezW~^)uWFRG$#~-7?wA;+wXrMO=-4exMiq~B%H|;dtWD$# z2>|--X2~2W#iJh(t8&6fDW?8{PzH!W$KmdMJvc-A;sY@C7u-JkobEdaVGzoILB~P6 z7rMNg=OhjqE7FFp7k;B$MvNz3cI&3 diff --git a/mods/test/assets/test/texture/xnether_blue_wood.png b/mods/test/assets/test/texture/xnether_blue_wood.png deleted file mode 100644 index cd668004c66ad57fc03cd7baf18c1c5847bd27ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6101 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 diff --git a/mods/test/init.lua b/mods/test/init.lua deleted file mode 100644 index ac4d4bd..0000000 --- a/mods/test/init.lua +++ /dev/null @@ -1,98 +0,0 @@ --- parent = default:air --- --- hasHalfTransparency --- collideBox = {} --- plantLike = {} --- nodebox = {} - -local node_template = { - parent = "default:normal" or node_template, - render = { - has_half_transparency = false - }, - collision = { - - }, - events = { - - }, - node_advancement_factory = function(world_id, node_pos) - local node_advancement = { - onLoad = function(data) - - end, - onSave = function() - return {} - end - } - - return node_advancement - end - -} - -local instance = {} - ---[[ -Движок автоматически подгружает ассеты из папки assets -В этом методе можно зарегистрировать ассеты из иных источников -Состояния нод, частицы, анимации, модели, текстуры, звуки, шрифты -]]-- -function instance.assetsInit() -end - ---[[ -*preInit. События для регистрации определений игрового контента -Ноды, воксели, миры, порталы, сущности, предметы -]]-- -function instance.lowPreInit() -end - ---[[ -До вызова preInit будет выполнена регистрация -контента из файлов в папке content -]]-- -function instance.preInit() -local node_air = {} - -node_air.hasHalfTransparency = false -node_air.collideBox = nil -node_air.render = nil - -core.register_node('test0', {}) -core.register_node('test1', {}) -core.register_node('test2', {}) -core.register_node('test3', {}) -core.register_node('test4', {}) -core.register_node('test5', {}) -end - -function instance.highPreInit() -end - ---[[ -На этом этапе можно наложить изменения -на зарегистрированный другими модами контент -]]-- -function instance.init() -end - -function instance.postInit() -end - -function instance.preDeInit() -end - -function instance.deInit() -end - -function instance.postDeInit() -core.unregister_node('test0') -core.unregister_node('test1') -core.unregister_node('test2') -core.unregister_node('test3') -core.unregister_node('test4') -core.unregister_node('test5') -end - -return instance diff --git a/mods/test/mod.json b/mods/test/mod.json deleted file mode 100644 index 43bbf32..0000000 --- a/mods/test/mod.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "id": "test", - "name": "Test Mod", - "description": "Это тестовый мод", - "depends": [], - "optional_depends": [], - "author": "DrSocalkwe3n", - "version": [0, 0, 0, 1] -}