From b3f65f9d4b3b625309e5b92aae4221e116e9a068 Mon Sep 17 00:00:00 2001 From: mat Date: Thu, 1 May 2025 21:26:55 -0930 Subject: drop dependency on pixlyzer and start using pumpkin extractor --- codegen/lib/download.py | 45 +++++++++++++++++++++++++++++++++++++-------- 1 file changed, 37 insertions(+), 8 deletions(-) (limited to 'codegen/lib/download.py') diff --git a/codegen/lib/download.py b/codegen/lib/download.py index 599e0b72..43ca8d2a 100644 --- a/codegen/lib/download.py +++ b/codegen/lib/download.py @@ -22,12 +22,41 @@ def get_burger(): os.system(f'cd {get_dir_location("__cache__")}/Burger && python -m venv venv && venv/bin/pip install six jawa') -def get_pixlyzer(): - if not os.path.exists(get_dir_location('__cache__/pixlyzer')): - print('\033[92mDownloading bixilon/pixlyzer...\033[m') +def get_pumpkin_extractor(): + if not os.path.exists(get_dir_location('__cache__/pumpkin-extractor')): + print('\033[92mDownloading Pumpkin-MC/Extractor...\033[m') os.system( - f'cd {get_dir_location("__cache__")} && git clone https://gitlab.bixilon.de/bixilon/pixlyzer.git && cd pixlyzer && git pull') - return get_dir_location('__cache__/pixlyzer') + f'cd {get_dir_location("__cache__")} && git clone https://github.com/Pumpkin-MC/Extractor pumpkin-extractor && cd pumpkin-extractor && git pull') + + GIT_PATCH = '''diff --git a/src/main/kotlin/de/snowii/extractor/extractors/Blocks.kt b/src/main/kotlin/de/snowii/extractor/extractors/Blocks.kt +index 936cd7b..9876a4b 100644 +--- a/src/main/kotlin/de/snowii/extractor/extractors/Blocks.kt ++++ b/src/main/kotlin/de/snowii/extractor/extractors/Blocks.kt +@@ -106,12 +106,18 @@ class Blocks : Extractor.Extractor { + } + + val collisionShapeIdxsJson = JsonArray() ++ val outlineShapeIdxsJson = JsonArray() + for (box in state.getCollisionShape(EmptyBlockView.INSTANCE, BlockPos.ORIGIN).boundingBoxes) { + val idx = shapes.putIfAbsent(box, shapes.size) + collisionShapeIdxsJson.add(Objects.requireNonNullElseGet(idx) { shapes.size - 1 }) + } ++ for (box in state.getOutlineShape(EmptyBlockView.INSTANCE, BlockPos.ORIGIN).boundingBoxes) { ++ val idx = shapes.putIfAbsent(box, shapes.size) ++ outlineShapeIdxsJson.add(Objects.requireNonNullElseGet(idx) { shapes.size - 1 }) ++ } + + stateJson.add("collision_shapes", collisionShapeIdxsJson) ++ stateJson.add("outline_shapes", outlineShapeIdxsJson) + + for (blockEntity in Registries.BLOCK_ENTITY_TYPE) { + if (blockEntity.supports(state)) { +''' + os.system( + f'cd {get_dir_location("__cache__")}/pumpkin-extractor && git apply - <