From 180abd1c773ffe5f940fd490eb2bf01005665e25 Mon Sep 17 00:00:00 2001 From: Reider745 <70357814+Reider745@users.noreply.github.com> Date: Thu, 23 Nov 2023 20:06:16 +0300 Subject: [PATCH] ZotCoreLoader MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - исправлено получение runtimeId для BlockState - исправлено не правильное определение id для блоков из дампа иннера --- .../java/com/reider745/hooks/GlobalBlockPalette.java | 12 ++++-------- .../adapter/innercore/game/block/BlockState.java | 2 +- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/reider745/hooks/GlobalBlockPalette.java b/src/main/java/com/reider745/hooks/GlobalBlockPalette.java index 289337fb..757f643a 100644 --- a/src/main/java/com/reider745/hooks/GlobalBlockPalette.java +++ b/src/main/java/com/reider745/hooks/GlobalBlockPalette.java @@ -79,23 +79,19 @@ public class GlobalBlockPalette implements HookClass { for (Object elem : json) { final JSONObject e = (JSONObject) elem; - //BlockStateRegistry.registerState(e); - if(e.toString().split("null").length != 1) - throw new RuntimeException("Пиздуй ищи причину null в дампе!\n"+e); - - final int legacyId = e.getInt("oldId"); + final int legacyId = e.getInt("newId"); final int legacyData = e.getInt("data"); + final JSONObject states = e.getJSONObject("states"); if(legacyId > 8000) throw new IOException("Ты чё еблан? Какова хуя в дампе блок с id "+legacyId); - final long hash = computeStateHash(e.getInt("newId"), e.getJSONObject("states"), stateIdByName); + final long hash = computeStateHash(legacyId, states, stateIdByName); if (stateHashToLegacyIdData.containsKey(hash)) throw new RuntimeException("hash collision: " + hash + " "+e); debug_hash.put(hash, e); - BlockStateRegisters.addState(hash, e.getJSONObject("states")); - // log.info(e.getString("nameId") + legacyId + ":" + legacyData + " -> " + hash); + BlockStateRegisters.addState(hash, states); stateHashToLegacyIdData.put(hash, (legacyId << 16) | legacyData); } }catch (Exception e){ diff --git a/src/main/java/com/zhekasmirnov/apparatus/adapter/innercore/game/block/BlockState.java b/src/main/java/com/zhekasmirnov/apparatus/adapter/innercore/game/block/BlockState.java index 377b82ed..98095fda 100644 --- a/src/main/java/com/zhekasmirnov/apparatus/adapter/innercore/game/block/BlockState.java +++ b/src/main/java/com/zhekasmirnov/apparatus/adapter/innercore/game/block/BlockState.java @@ -39,7 +39,7 @@ public class BlockState { this.data = meta.getDamage(); }else this.data = 0; - this.runtimeId = GlobalBlockPalette.getOrCreateRuntimeId(id, data); + this.runtimeId = GlobalBlockPalette.getOrCreateRuntimeId(InnerCoreServer.PROTOCOL, id, data); } public BlockState(int id, Map map) {