From ba12039d3770b6dcb07a0574dfeebd34d67bdf67 Mon Sep 17 00:00:00 2001 From: miraculixx Date: Tue, 6 Jan 2026 16:45:11 +0100 Subject: [PATCH 01/34] Update supported entities list --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index 124226d..c6c9814 100644 --- a/README.md +++ b/README.md @@ -32,8 +32,10 @@ bluemap-configs. You will need to purge/re-render the map to see the entities ap - Glow Squid - Dolphin - Guardian + - Axolotl - Fox - Iron Golem + - Snow Golem - Llama - Trader Llama - Zombie @@ -51,3 +53,10 @@ bluemap-configs. You will need to purge/re-render the map to see the entities ap - Zombie Horse - Vex - Allay +- Copper Golem +- Camel + - Camel Husk +- Bat +- Frog + - Tadpole +- Armadillo From 9da6740be19f0f4d5528d10d96cf0c39760e9ed8 Mon Sep 17 00:00:00 2001 From: miraculixx Date: Mon, 10 Aug 2026 21:56:02 +0200 Subject: [PATCH 02/34] Support ghasts (old commit) --- .../bluecolored/bluemap/entities/Addon.java | 5 + .../bluemap/entities/entity/HappyGhast.java | 35 ++++ .../entities/renderer/GhastRenderer.java | 81 ++++++++ .../assets/minecraft/entitystates/ghast.json | 5 + .../minecraft/entitystates/happy_ghast.json | 5 + .../minecraft/models/entity/ghast/ghast.json | 163 ++++++++++++++++ .../entity/ghast/happy_ghast_adult.json | 178 ++++++++++++++++++ .../models/entity/ghast/happy_ghast_baby.json | 6 + 8 files changed, 478 insertions(+) create mode 100644 src/main/java/de/bluecolored/bluemap/entities/entity/HappyGhast.java create mode 100644 src/main/java/de/bluecolored/bluemap/entities/renderer/GhastRenderer.java create mode 100644 src/main/resources/assets/minecraft/entitystates/ghast.json create mode 100644 src/main/resources/assets/minecraft/entitystates/happy_ghast.json create mode 100644 src/main/resources/assets/minecraft/models/entity/ghast/ghast.json create mode 100644 src/main/resources/assets/minecraft/models/entity/ghast/happy_ghast_adult.json create mode 100644 src/main/resources/assets/minecraft/models/entity/ghast/happy_ghast_baby.json diff --git a/src/main/java/de/bluecolored/bluemap/entities/Addon.java b/src/main/java/de/bluecolored/bluemap/entities/Addon.java index 24174b2..45fc3d8 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/Addon.java +++ b/src/main/java/de/bluecolored/bluemap/entities/Addon.java @@ -3,6 +3,7 @@ import de.bluecolored.bluemap.core.map.hires.entity.EntityRendererType; import de.bluecolored.bluemap.core.util.Key; import de.bluecolored.bluemap.core.world.mca.entity.EntityType; +import de.bluecolored.bluemap.core.world.mca.entity.MCAEntity; import de.bluecolored.bluemap.entities.entity.*; import de.bluecolored.bluemap.entities.renderer.*; @@ -49,6 +50,8 @@ public void run() { EntityType.REGISTRY.register(new EntityType.Impl(Key.minecraft("camel_husk"), CamelHusk.class)); EntityType.REGISTRY.register(new EntityType.Impl(Key.minecraft("copper_golem"), CopperGolem.class)); EntityType.REGISTRY.register(new EntityType.Impl(Key.minecraft("frog"), AgeVariantEntity.class)); + EntityType.REGISTRY.register(new EntityType.Impl(Key.minecraft("ghast"), MCAEntity.class)); + EntityType.REGISTRY.register(new EntityType.Impl(Key.minecraft("happy_ghast"), HappyGhast.class)); EntityRendererType.REGISTRY.register(new EntityRendererType.Impl(Key.minecraft("llama"), LlamaRenderer::new)); @@ -85,6 +88,8 @@ public void run() { EntityRendererType.REGISTRY.register(new EntityRendererType.Impl(Key.minecraft("camel_husk"), CamelRenderer::new)); EntityRendererType.REGISTRY.register(new EntityRendererType.Impl(Key.minecraft("copper_golem"), CopperGolemRenderer::new)); EntityRendererType.REGISTRY.register(new EntityRendererType.Impl(Key.minecraft("frog"), FrogRenderer::new)); + EntityRendererType.REGISTRY.register(new EntityRendererType.Impl(Key.minecraft("ghast"), GhastRenderer::new)); + EntityRendererType.REGISTRY.register(new EntityRendererType.Impl(Key.minecraft("happy_ghast"), GhastRenderer::new)); } } diff --git a/src/main/java/de/bluecolored/bluemap/entities/entity/HappyGhast.java b/src/main/java/de/bluecolored/bluemap/entities/entity/HappyGhast.java new file mode 100644 index 0000000..f0259b4 --- /dev/null +++ b/src/main/java/de/bluecolored/bluemap/entities/entity/HappyGhast.java @@ -0,0 +1,35 @@ +/* + * This file is part of BlueMap, licensed under the MIT License (MIT). + * + * Copyright (c) Blue (Lukas Rieger) + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package de.bluecolored.bluemap.entities.entity; + +import lombok.Getter; +import lombok.ToString; + +@Getter +@ToString +@SuppressWarnings("FieldMayBeFinal") +public class HappyGhast extends AgeEntity { + +} diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/GhastRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/GhastRenderer.java new file mode 100644 index 0000000..ac87500 --- /dev/null +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/GhastRenderer.java @@ -0,0 +1,81 @@ +/* + * This file is part of BlueMap, licensed under the MIT License (MIT). + * + * Copyright (c) Blue (Lukas Rieger) + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package de.bluecolored.bluemap.entities.renderer; + +import com.flowpowered.math.vector.Vector3f; +import de.bluecolored.bluemap.core.map.TextureGallery; +import de.bluecolored.bluemap.core.map.hires.RenderSettings; +import de.bluecolored.bluemap.core.map.hires.TileModelView; +import de.bluecolored.bluemap.core.resources.ResourcePath; +import de.bluecolored.bluemap.core.resources.pack.resourcepack.ResourcePack; +import de.bluecolored.bluemap.core.resources.pack.resourcepack.entitystate.Part; +import de.bluecolored.bluemap.core.resources.pack.resourcepack.model.Model; +import de.bluecolored.bluemap.core.util.Key; +import de.bluecolored.bluemap.core.world.Entity; +import de.bluecolored.bluemap.core.world.block.BlockNeighborhood; +import de.bluecolored.bluemap.core.world.mca.entity.MCAEntity; +import de.bluecolored.bluemap.entities.entity.HappyGhast; + +public class GhastRenderer extends CustomResourceModelRenderer { + + private final ResourcePath + GHAST = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/ghast/ghast"), + HAPPY_GHAST = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/ghast/happy_ghast_adult"), + GHASTLING = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/ghast/happy_ghast_baby"); + + public GhastRenderer(ResourcePack resourcePack, TextureGallery textureGallery, RenderSettings renderSettings) { + super(resourcePack, textureGallery, renderSettings); + } + + @Override + public void render(Entity entity, BlockNeighborhood block, Part part, TileModelView tileModel) { + if (!(entity instanceof MCAEntity ghast)) return; + + // choose correct model & scale + ResourcePath model; + Vector3f scale; + if (ghast instanceof HappyGhast) { + if (((HappyGhast) ghast).getAge() < 0) { + model = GHASTLING; + scale = new Vector3f(0.9f, 0.9f, 0.9f); + } else { + model = HAPPY_GHAST; + scale = new Vector3f(4f, 4f, 4f); + } + } else { + model = GHAST; + scale = new Vector3f(4.5, 4.5, 4.5); + } + + // render chosen model + super.render(entity, block, model.getResource(getModelProvider()), TintColorProvider.NO_TINT, tileModel); + tileModel.scale(scale.getX(), scale.getY(), scale.getZ()); + + // apply part transform + if (part.isTransformed()) + tileModel.transform(part.getTransformMatrix()); + } + +} diff --git a/src/main/resources/assets/minecraft/entitystates/ghast.json b/src/main/resources/assets/minecraft/entitystates/ghast.json new file mode 100644 index 0000000..de2bac5 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/ghast.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "renderer": "minecraft:ghast" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/happy_ghast.json b/src/main/resources/assets/minecraft/entitystates/happy_ghast.json new file mode 100644 index 0000000..a39ed8f --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/happy_ghast.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "renderer": "minecraft:happy_ghast" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/ghast/ghast.json b/src/main/resources/assets/minecraft/models/entity/ghast/ghast.json new file mode 100644 index 0000000..beea921 --- /dev/null +++ b/src/main/resources/assets/minecraft/models/entity/ghast/ghast.json @@ -0,0 +1,163 @@ +{ + "format_version": "1.21.11", + "credit": "Made by Miraculixx", + "texture_size": [64, 32], + "textures": { + "0": "entity/ghast/ghast" + }, + "elements": [ + { + "name": "body", + "from": [-8, 0, -8], + "to": [8, 16, 8], + "faces": { + "north": {"uv": [4, 8, 8, 16], "texture": "#0"}, + "east": {"uv": [0, 8, 4, 16], "texture": "#0"}, + "south": {"uv": [12, 8, 16, 16], "texture": "#0"}, + "west": {"uv": [8, 8, 12, 16], "texture": "#0"}, + "up": {"uv": [8, 8, 4, 0], "texture": "#0"}, + "down": {"uv": [12, 0, 8, 8], "texture": "#0"} + } + }, + { + "name": "tentacle1", + "from": [2.7, -7, -6], + "to": [4.7, 1, -4], + "rotation": {"angle": -10, "axis": "x", "origin": [3.7, 1, -5]}, + "faces": { + "north": {"uv": [0.5, 1, 1, 5], "texture": "#0"}, + "east": {"uv": [0, 1, 0.5, 5], "texture": "#0"}, + "south": {"uv": [1.5, 1, 2, 5], "texture": "#0"}, + "west": {"uv": [1, 1, 1.5, 5], "texture": "#0"}, + "up": {"uv": [1, 1, 0.5, 0], "texture": "#0"}, + "down": {"uv": [1.5, 0, 1, 1], "texture": "#0"} + } + }, + { + "name": "tentacle2", + "from": [-7.3, -8, -6], + "to": [-5.3, 1, -4], + "rotation": {"angle": -15, "axis": "x", "origin": [-6.3, 1, -5]}, + "faces": { + "north": {"uv": [0.5, 1, 1, 5.5], "texture": "#0"}, + "east": {"uv": [0, 1, 0.5, 5.5], "texture": "#0"}, + "south": {"uv": [1.5, 1, 2, 5.5], "texture": "#0"}, + "west": {"uv": [1, 1, 1.5, 5.5], "texture": "#0"}, + "up": {"uv": [1, 1, 0.5, 0], "texture": "#0"}, + "down": {"uv": [1.5, 0, 1, 1], "texture": "#0"} + } + }, + { + "name": "tentacle3", + "from": [-2.3, -12, -6], + "to": [-0.3, 1, -4], + "rotation": {"angle": -25, "axis": "x", "origin": [-1.3, 1, -5]}, + "faces": { + "north": {"uv": [0.5, 1, 1, 7.5], "texture": "#0"}, + "east": {"uv": [0, 1, 0.5, 7.5], "texture": "#0"}, + "south": {"uv": [1.5, 1, 2, 7.5], "texture": "#0"}, + "west": {"uv": [1, 1, 1.5, 7.5], "texture": "#0"}, + "up": {"uv": [1, 1, 0.5, 0], "texture": "#0"}, + "down": {"uv": [1.5, 0, 1, 1], "texture": "#0"} + } + }, + { + "name": "tentacle4", + "from": [5.3, -10, -1], + "to": [7.3, 1, 1], + "rotation": {"angle": -12.5, "axis": "x", "origin": [6.3, 1, 0]}, + "faces": { + "north": {"uv": [0.5, 1, 1, 6.5], "texture": "#0"}, + "east": {"uv": [0, 1, 0.5, 6.5], "texture": "#0"}, + "south": {"uv": [1.5, 1, 2, 6.5], "texture": "#0"}, + "west": {"uv": [1, 1, 1.5, 6.5], "texture": "#0"}, + "up": {"uv": [1, 1, 0.5, 0], "texture": "#0"}, + "down": {"uv": [1.5, 0, 1, 1], "texture": "#0"} + } + }, + { + "name": "tentacle5", + "from": [0.3, -10, -1], + "to": [2.3, 1, 1], + "rotation": {"angle": -25, "axis": "x", "origin": [1.3, 1, 0]}, + "faces": { + "north": {"uv": [0.5, 1, 1, 6.5], "texture": "#0"}, + "east": {"uv": [0, 1, 0.5, 6.5], "texture": "#0"}, + "south": {"uv": [1.5, 1, 2, 6.5], "texture": "#0"}, + "west": {"uv": [1, 1, 1.5, 6.5], "texture": "#0"}, + "up": {"uv": [1, 1, 0.5, 0], "texture": "#0"}, + "down": {"uv": [1.5, 0, 1, 1], "texture": "#0"} + } + }, + { + "name": "tentacle6", + "from": [-4.7, -9, -1], + "to": [-2.7, 1, 1], + "rotation": {"angle": -15, "axis": "x", "origin": [-3.7, 1, 0]}, + "faces": { + "north": {"uv": [0.5, 1, 1, 6], "texture": "#0"}, + "east": {"uv": [0, 1, 0.5, 6], "texture": "#0"}, + "south": {"uv": [1.5, 1, 2, 6], "texture": "#0"}, + "west": {"uv": [1, 1, 1.5, 6], "texture": "#0"}, + "up": {"uv": [1, 1, 0.5, 0], "texture": "#0"}, + "down": {"uv": [1.5, 0, 1, 1], "texture": "#0"} + } + }, + { + "name": "tentacle7", + "from": [2.7, -11, 4], + "to": [4.7, 1, 6], + "rotation": {"angle": -32.5, "axis": "x", "origin": [3.7, 1, 5]}, + "faces": { + "north": {"uv": [0.5, 1, 1, 7], "texture": "#0"}, + "east": {"uv": [0, 1, 0.5, 7], "texture": "#0"}, + "south": {"uv": [1.5, 1, 2, 7], "texture": "#0"}, + "west": {"uv": [1, 1, 1.5, 7], "texture": "#0"}, + "up": {"uv": [1, 1, 0.5, 0], "texture": "#0"}, + "down": {"uv": [1.5, 0, 1, 1], "texture": "#0"} + } + }, + { + "name": "tentacle8", + "from": [-7.3, -11, 4], + "to": [-5.3, 1, 6], + "rotation": {"angle": -22.5, "axis": "x", "origin": [-6.3, 1, 5]}, + "faces": { + "north": {"uv": [0.5, 1, 1, 7], "texture": "#0"}, + "east": {"uv": [0, 1, 0.5, 7], "texture": "#0"}, + "south": {"uv": [1.5, 1, 2, 7], "texture": "#0"}, + "west": {"uv": [1, 1, 1.5, 7], "texture": "#0"}, + "up": {"uv": [1, 1, 0.5, 0], "texture": "#0"}, + "down": {"uv": [1.5, 0, 1, 1], "texture": "#0"} + } + }, + { + "name": "tentacle9", + "from": [-2.3, -8, 4], + "to": [-0.3, 1, 6], + "rotation": {"angle": -17.5, "axis": "x", "origin": [-1.3, 1, 5]}, + "faces": { + "north": {"uv": [0.5, 1, 1, 5.5], "texture": "#0"}, + "east": {"uv": [0, 1, 0.5, 5.5], "texture": "#0"}, + "south": {"uv": [1.5, 1, 2, 5.5], "texture": "#0"}, + "west": {"uv": [1, 1, 1.5, 5.5], "texture": "#0"}, + "up": {"uv": [1, 1, 0.5, 0], "texture": "#0"}, + "down": {"uv": [1.5, 0, 1, 1], "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "body", + "origin": [0, 20, 0], + "color": 0, + "children": [0] + }, + { + "name": "tentacle", + "origin": [3.7, 13, -5], + "color": 0, + "children": [1, 2, 3, 4, 5, 6, 7, 8, 9] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/ghast/happy_ghast_adult.json b/src/main/resources/assets/minecraft/models/entity/ghast/happy_ghast_adult.json new file mode 100644 index 0000000..9c530af --- /dev/null +++ b/src/main/resources/assets/minecraft/models/entity/ghast/happy_ghast_adult.json @@ -0,0 +1,178 @@ +{ + "format_version": "1.21.11", + "credit": "Made by Miraculixx", + "texture_size": [64, 64], + "textures": { + "0": "entity/ghast/happy_ghast" + }, + "elements": [ + { + "name": "body", + "from": [-8, 0, -8], + "to": [8, 16, 8], + "rotation": {"angle": 0, "axis": "y", "origin": [0, -12, 0]}, + "faces": { + "north": {"uv": [4, 4, 8, 8], "texture": "#0"}, + "east": {"uv": [0, 4, 4, 8], "texture": "#0"}, + "south": {"uv": [12, 4, 16, 8], "texture": "#0"}, + "west": {"uv": [8, 4, 12, 8], "texture": "#0"}, + "up": {"uv": [8, 4, 4, 0], "texture": "#0"}, + "down": {"uv": [12, 0, 8, 4], "texture": "#0"} + } + }, + { + "name": "body", + "from": [-7.5, 0.5, -7.5], + "to": [7.5, 15.5, 7.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, -12, 0]}, + "faces": { + "north": {"uv": [4, 12, 8, 16], "texture": "#0"}, + "east": {"uv": [0, 12, 4, 16], "texture": "#0"}, + "south": {"uv": [12, 12, 16, 16], "texture": "#0"}, + "west": {"uv": [8, 12, 12, 16], "texture": "#0"}, + "up": {"uv": [8, 12, 4, 8], "texture": "#0"}, + "down": {"uv": [12, 8, 8, 12], "texture": "#0"} + } + }, + { + "name": "tentacle1", + "from": [2.7, -7, -6], + "to": [4.7, 1, -4], + "rotation": {"angle": -10, "axis": "x", "origin": [3.7, 1, -5]}, + "faces": { + "north": {"uv": [0.5, 0.5, 1, 2.5], "texture": "#0"}, + "east": {"uv": [0, 0.5, 0.5, 2.5], "texture": "#0"}, + "south": {"uv": [1.5, 0.5, 2, 2.5], "texture": "#0"}, + "west": {"uv": [1, 0.5, 1.5, 2.5], "texture": "#0"}, + "up": {"uv": [1, 0.5, 0.5, 0], "texture": "#0"}, + "down": {"uv": [1.5, 0, 1, 0.5], "texture": "#0"} + } + }, + { + "name": "tentacle2", + "from": [-7.3, -8, -6], + "to": [-5.3, 1, -4], + "rotation": {"angle": -15, "axis": "x", "origin": [-6.3, 1, -5]}, + "faces": { + "north": {"uv": [0.5, 0.5, 1, 2.75], "texture": "#0"}, + "east": {"uv": [0, 0.5, 0.5, 2.75], "texture": "#0"}, + "south": {"uv": [1.5, 0.5, 2, 2.75], "texture": "#0"}, + "west": {"uv": [1, 0.5, 1.5, 2.75], "texture": "#0"}, + "up": {"uv": [1, 0.5, 0.5, 0], "texture": "#0"}, + "down": {"uv": [1.5, 0, 1, 0.5], "texture": "#0"} + } + }, + { + "name": "tentacle3", + "from": [-2.3, -12, -6], + "to": [-0.3, 1, -4], + "rotation": {"angle": -25, "axis": "x", "origin": [-1.3, 1, -5]}, + "faces": { + "north": {"uv": [0.5, 0.5, 1, 3.75], "texture": "#0"}, + "east": {"uv": [0, 0.5, 0.5, 3.75], "texture": "#0"}, + "south": {"uv": [1.5, 0.5, 2, 3.75], "texture": "#0"}, + "west": {"uv": [1, 0.5, 1.5, 3.75], "texture": "#0"}, + "up": {"uv": [1, 0.5, 0.5, 0], "texture": "#0"}, + "down": {"uv": [1.5, 0, 1, 0.5], "texture": "#0"} + } + }, + { + "name": "tentacle4", + "from": [5.3, -10, -1], + "to": [7.3, 1, 1], + "rotation": {"angle": -12.5, "axis": "x", "origin": [6.3, 1, 0]}, + "faces": { + "north": {"uv": [0.5, 0.5, 1, 3.25], "texture": "#0"}, + "east": {"uv": [0, 0.5, 0.5, 3.25], "texture": "#0"}, + "south": {"uv": [1.5, 0.5, 2, 3.25], "texture": "#0"}, + "west": {"uv": [1, 0.5, 1.5, 3.25], "texture": "#0"}, + "up": {"uv": [1, 0.5, 0.5, 0], "texture": "#0"}, + "down": {"uv": [1.5, 0, 1, 0.5], "texture": "#0"} + } + }, + { + "name": "tentacle5", + "from": [0.3, -10, -1], + "to": [2.3, 1, 1], + "rotation": {"angle": -25, "axis": "x", "origin": [1.3, 1, 0]}, + "faces": { + "north": {"uv": [0.5, 0.5, 1, 3.25], "texture": "#0"}, + "east": {"uv": [0, 0.5, 0.5, 3.25], "texture": "#0"}, + "south": {"uv": [1.5, 0.5, 2, 3.25], "texture": "#0"}, + "west": {"uv": [1, 0.5, 1.5, 3.25], "texture": "#0"}, + "up": {"uv": [1, 0.5, 0.5, 0], "texture": "#0"}, + "down": {"uv": [1.5, 0, 1, 0.5], "texture": "#0"} + } + }, + { + "name": "tentacle6", + "from": [-4.7, -9, -1], + "to": [-2.7, 1, 1], + "rotation": {"angle": -15, "axis": "x", "origin": [-3.7, 1, 0]}, + "faces": { + "north": {"uv": [0.5, 0.5, 1, 3], "texture": "#0"}, + "east": {"uv": [0, 0.5, 0.5, 3], "texture": "#0"}, + "south": {"uv": [1.5, 0.5, 2, 3], "texture": "#0"}, + "west": {"uv": [1, 0.5, 1.5, 3], "texture": "#0"}, + "up": {"uv": [1, 0.5, 0.5, 0], "texture": "#0"}, + "down": {"uv": [1.5, 0, 1, 0.5], "texture": "#0"} + } + }, + { + "name": "tentacle7", + "from": [2.7, -11, 4], + "to": [4.7, 1, 6], + "rotation": {"angle": -32.5, "axis": "x", "origin": [3.7, 1, 5]}, + "faces": { + "north": {"uv": [0.5, 0.5, 1, 3.5], "texture": "#0"}, + "east": {"uv": [0, 0.5, 0.5, 3.5], "texture": "#0"}, + "south": {"uv": [1.5, 0.5, 2, 3.5], "texture": "#0"}, + "west": {"uv": [1, 0.5, 1.5, 3.5], "texture": "#0"}, + "up": {"uv": [1, 0.5, 0.5, 0], "texture": "#0"}, + "down": {"uv": [1.5, 0, 1, 0.5], "texture": "#0"} + } + }, + { + "name": "tentacle8", + "from": [-7.3, -11, 4], + "to": [-5.3, 1, 6], + "rotation": {"angle": -22.5, "axis": "x", "origin": [-6.3, 1, 5]}, + "faces": { + "north": {"uv": [0.5, 0.5, 1, 3.5], "texture": "#0"}, + "east": {"uv": [0, 0.5, 0.5, 3.5], "texture": "#0"}, + "south": {"uv": [1.5, 0.5, 2, 3.5], "texture": "#0"}, + "west": {"uv": [1, 0.5, 1.5, 3.5], "texture": "#0"}, + "up": {"uv": [1, 0.5, 0.5, 0], "texture": "#0"}, + "down": {"uv": [1.5, 0, 1, 0.5], "texture": "#0"} + } + }, + { + "name": "tentacle9", + "from": [-2.3, -8, 4], + "to": [-0.3, 1, 6], + "rotation": {"angle": -17.5, "axis": "x", "origin": [-1.3, 1, 5]}, + "faces": { + "north": {"uv": [0.5, 0.5, 1, 2.75], "texture": "#0"}, + "east": {"uv": [0, 0.5, 0.5, 2.75], "texture": "#0"}, + "south": {"uv": [1.5, 0.5, 2, 2.75], "texture": "#0"}, + "west": {"uv": [1, 0.5, 1.5, 2.75], "texture": "#0"}, + "up": {"uv": [1, 0.5, 0.5, 0], "texture": "#0"}, + "down": {"uv": [1.5, 0, 1, 0.5], "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "body", + "origin": [0, 20, 0], + "color": 0, + "children": [0, 1] + }, + { + "name": "tentacle", + "origin": [3.7, 13, -5], + "color": 0, + "children": [2, 3, 4, 5, 6, 7, 8, 9, 10] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/ghast/happy_ghast_baby.json b/src/main/resources/assets/minecraft/models/entity/ghast/happy_ghast_baby.json new file mode 100644 index 0000000..31c590c --- /dev/null +++ b/src/main/resources/assets/minecraft/models/entity/ghast/happy_ghast_baby.json @@ -0,0 +1,6 @@ +{ + "parent": "entity/ghast/happy_ghast_adult", + "textures": { + "0": "entity/ghast/happy_ghast_baby" + } +} \ No newline at end of file From 70cf82bb928c40eefcaa3a40b4766dd8fc6d44dd Mon Sep 17 00:00:00 2001 From: miraculixx Date: Mon, 10 Aug 2026 23:48:18 +0200 Subject: [PATCH 03/34] start of gen modul, still needs many overrides --- .gitignore | 1 + generator/README.md | 66 ++++ generator/build.gradle.kts | 100 ++++++ generator/config/equipment.json | 8 + generator/config/textures.json | 55 +++ generator/config/variant-models.json | 5 + .../bluemap/entities/generator/Geometry.java | 48 +++ .../entities/generator/LayerConverter.java | 309 +++++++++++++++++ .../bluemap/entities/generator/Main.java | 238 +++++++++++++ .../bluemap/entities/generator/McAssets.java | 192 +++++++++++ .../bluemap/entities/generator/ModelJson.java | 98 ++++++ .../entities/generator/ModelWriter.java | 120 +++++++ .../bluemap/entities/generator/Report.java | 91 +++++ .../entities/generator/TextureResolver.java | 316 ++++++++++++++++++ settings.gradle.kts | 2 + 15 files changed, 1649 insertions(+) create mode 100644 generator/README.md create mode 100644 generator/build.gradle.kts create mode 100644 generator/config/equipment.json create mode 100644 generator/config/textures.json create mode 100644 generator/config/variant-models.json create mode 100644 generator/src/main/java/de/bluecolored/bluemap/entities/generator/Geometry.java create mode 100644 generator/src/main/java/de/bluecolored/bluemap/entities/generator/LayerConverter.java create mode 100644 generator/src/main/java/de/bluecolored/bluemap/entities/generator/Main.java create mode 100644 generator/src/main/java/de/bluecolored/bluemap/entities/generator/McAssets.java create mode 100644 generator/src/main/java/de/bluecolored/bluemap/entities/generator/ModelJson.java create mode 100644 generator/src/main/java/de/bluecolored/bluemap/entities/generator/ModelWriter.java create mode 100644 generator/src/main/java/de/bluecolored/bluemap/entities/generator/Report.java create mode 100644 generator/src/main/java/de/bluecolored/bluemap/entities/generator/TextureResolver.java diff --git a/.gitignore b/.gitignore index 4445a5e..0bb893c 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ .idea build gradle.properties +logs diff --git a/generator/README.md b/generator/README.md new file mode 100644 index 0000000..134bb7b --- /dev/null +++ b/generator/README.md @@ -0,0 +1,66 @@ +# Entity-model generator + +Generates the bluemap entity-models in `src/main/resources/assets/minecraft/models/entity` from the model-layers that +are compiled into the vanilla minecraft client-jar, so they do not have to be rebuilt by hand for every +minecraft-version. + +```bash +./gradlew :generator:generateEntityModels # current version (see mcVersion below) +./gradlew :generator:generateEntityModels -PmcVersion=26.3 # a different minecraft-version +./gradlew :generator:generateEntityModels -Players='sheep|cow' # only some layers +./gradlew :generator:generateEntityModels -PoutDir=/tmp/models # write somewhere else (dry-run) +``` + +The client-jar and its libraries are downloaded from mojangs launcher-metadata into `generator/build/minecraft/` +(~100 MB, once per version). Nothing of it is shipped with the addon, only the generated models are. + +Gradle itself has to run on a JDK **21-24** (its kotlin-dsl compiler does not run on 25 yet), the generator is compiled +and run with a java-25 toolchain, since that is what the minecraft client-jar is built for. + +## How it works + +`LayerDefinitions.createRoots()` returns every entity-model-layer minecraft knows (358 in 26.2). Each layer is baked +(`LayerDefinition.bakeRoot()`) and walked with `ModelPart.visit(...)`, which yields every cube together with the +accumulated part-transform. Minecraft builds entity-models mirrored and upside-down (the entity-renderer applies a +`scale(-1, -1, 1)`) with the origin 1.5 blocks above the feet, so every coordinate is converted with +`x' = -x`, `y' = 24 - y`, `z' = z`, and the part-hierarchy is flattened into the single rotation a bluemap-element +supports. Uv-coordinates are taken from the baked polygon-vertices, which also covers mirrored and deformed cubes. + +## Output + +One geometry-model per layer, plus a thin model per texture-variant that only overrides the texture: + +``` +entity/sheep/main.json minecraft:sheep#main +entity/sheep/wool.json minecraft:sheep#wool (overlay-layer) +entity/sheep_baby/main.json minecraft:sheep_baby#main (baby-model) +entity/cat/main_tabby.json variant, parent: entity/cat/main +entity/zombie/helmet_iron.json equipment-material of minecraft:zombie#helmet +``` + +Textures use the vanilla paths (`entity/sheep/sheep`) and are resolved, in this order, from +`config/textures.json`, the data-driven variant-registries of the client-jar (cat, cow, pig, chicken, frog, wolf, ...), +the equipment-textures (`entity/equipment/...`), the vanilla naming-convention, the texture-family of the entity +(axolotl, horse, mooshroom, ...) and finally the texture-paths referenced by the compiled renderer-classes. + +`generator/build/generation-report.txt` lists which models were added, changed and removed, where every texture came +from, and which layers could not be resolved. + +## Configuration + +| file | purpose | +|---|---| +| `config/textures.json` | pins a texture (string) or a set of variant-textures (array) for `#` | +| `config/variant-models.json` | maps the `model` field of a variant-registry-entry to its model-id | +| `config/equipment.json` | maps `#` to a folder in `entity/equipment` | +| `overrides/.json` | replaces a generated model entirely, e.g. for hand-fixed geometry | +| `generated-index.txt` | the files of the last run, used to delete models that vanished from minecraft | + +## Limits + +- Layers are generated in their base pose. Animations (`setupAnim`) and renderer-side tints are not part of the + model-data and stay the job of the renderers in `de.bluecolored.bluemap.entities.renderer`. +- Which layers an entity stacks (wool over sheep, saddle over pig, armor over zombie) is renderer-logic in minecraft, + so it stays renderer-logic here too - the generator only provides the models. +- Elements that need a rotation around more than one axis (60 models in 26.2) require **bluemap-core 5.14 or newer**, + everything else also works with older versions. diff --git a/generator/build.gradle.kts b/generator/build.gradle.kts new file mode 100644 index 0000000..5818057 --- /dev/null +++ b/generator/build.gradle.kts @@ -0,0 +1,100 @@ +import groovy.json.JsonSlurper +import java.net.URI + +plugins { + java +} + +val mcVersion = (findProperty("mcVersion") as String?) ?: "26.2" +val mcDir = layout.buildDirectory.dir("minecraft/$mcVersion") + +// the generator is a tool, not part of the addon +val requested = gradle.startParameter.taskNames.any { it.startsWith(":generator") || it == "generateEntityModels" } +val available = { requested || mcDir.get().file("client.jar").asFile.isFile } + +java { + toolchain.languageVersion = JavaLanguageVersion.of(25) +} + +@Suppress("UNCHECKED_CAST") +val downloadMinecraft by tasks.registering { + description = "Downloads the vanilla minecraft client-jar and its libraries for version $mcVersion" + val target = mcDir + outputs.dir(target) + onlyIf { available() } + doLast { + val dir = target.get().asFile + val libs = dir.resolve("libs").apply { mkdirs() } + + fun fetch(url: String, file: File, size: Long) { + if (file.isFile && file.length() == size) return + logger.lifecycle("downloading ${file.name}") + URI(url).toURL().openStream().use { input -> file.outputStream().use { input.copyTo(it) } } + } + + val manifest = JsonSlurper() + .parse(URI("https://launchermeta.mojang.com/mc/game/version_manifest_v2.json").toURL()) as Map + val entry = (manifest["versions"] as List>) + .firstOrNull { it["id"] == mcVersion } + ?: throw GradleException("unknown minecraft version: $mcVersion") + + val version = JsonSlurper().parse(URI(entry["url"] as String).toURL()) as Map + val client = (version["downloads"] as Map)["client"] as Map + fetch(client["url"] as String, dir.resolve("client.jar"), (client["size"] as Number).toLong()) + + val wanted = mutableSetOf("client.jar") + (version["libraries"] as List>).forEach { lib -> + val name = lib["name"] as String + if (name.contains("natives") || name.startsWith("org.lwjgl")) return@forEach + val artifact = (lib["downloads"] as Map?)?.get("artifact") as Map? ?: return@forEach + val file = libs.resolve(File(artifact["path"] as String).name) + fetch(artifact["url"] as String, file, (artifact["size"] as Number).toLong()) + wanted += file.name + } + + libs.listFiles()?.forEach { if (it.name !in wanted) it.delete() } + } +} + +val minecraftFiles = files({ + val dir = mcDir.get().asFile + listOf(dir.resolve("client.jar")) + (dir.resolve("libs").listFiles()?.sorted() ?: emptyList()) +}) + +dependencies { + compileOnly(minecraftFiles) +} + +tasks.compileJava { + dependsOn(downloadMinecraft) + onlyIf { available() } + options.encoding = "utf-8" +} + +tasks.register("generateEntityModels") { + group = "bluemap" + description = "Generates bluemap entity-models from the vanilla minecraft client-jar" + dependsOn(tasks.compileJava) + + javaLauncher = javaToolchains.launcherFor { languageVersion = JavaLanguageVersion.of(25) } + classpath = sourceSets.main.get().runtimeClasspath + minecraftFiles + mainClass = "de.bluecolored.bluemap.entities.generator.Main" + + // -PoutDir= writes the models somewhere else (dry-run), -Players= generates a subset only + val outDir = findProperty("outDir") as String? + val out = outDir ?: rootProject.file("src/main/resources/assets/minecraft/models/entity").absolutePath + val index = if (outDir != null) layout.buildDirectory.file("generated-index.txt").get().asFile.absolutePath + else file("generated-index.txt").absolutePath + + argumentProviders.add(CommandLineArgumentProvider { + listOf( + "--client", mcDir.get().file("client.jar").asFile.absolutePath, + "--mc-version", mcVersion, + "--out", out, + "--index", index, + "--config", file("config").absolutePath, + "--overrides", file("overrides").absolutePath, + "--report", layout.buildDirectory.file("generation-report.txt").get().asFile.absolutePath + ) + (findProperty("layers") as String?)?.let { listOf("--include", it) }.orEmpty() + }) +} diff --git a/generator/config/equipment.json b/generator/config/equipment.json new file mode 100644 index 0000000..4e2a3b2 --- /dev/null +++ b/generator/config/equipment.json @@ -0,0 +1,8 @@ +{ + "elytra#main": "wings", + "elytra_baby#main": "wings", + "undead_horse_armor#main": "horse_body", + "happy_ghast_baby_harness#main": "happy_ghast_body", + "happy_ghast_ropes#main": "happy_ghast_body", + "happy_ghast_baby_ropes#main": "happy_ghast_body" +} diff --git a/generator/config/textures.json b/generator/config/textures.json new file mode 100644 index 0000000..3f494d6 --- /dev/null +++ b/generator/config/textures.json @@ -0,0 +1,55 @@ +{ + "giant#main": "entity/zombie/zombie", + "skeleton_horse#main": "entity/horse/horse_skeleton", + "skeleton_horse_baby#main": "entity/horse/horse_skeleton_baby", + "zombie_horse#main": "entity/horse/horse_zombie", + "zombie_horse_baby#main": "entity/horse/horse_zombie_baby", + + "bogged#outer": "entity/skeleton/bogged_overlay", + "stray#outer": "entity/skeleton/stray_overlay", + "slime#outer": "entity/slime/slime", + + "tropical_fish_small#main": "entity/fish/tropical_a", + "tropical_fish_large#main": "entity/fish/tropical_b", + "tropical_fish_small#pattern": [ + "entity/fish/tropical_a_pattern_1", + "entity/fish/tropical_a_pattern_2", + "entity/fish/tropical_a_pattern_3", + "entity/fish/tropical_a_pattern_4", + "entity/fish/tropical_a_pattern_5", + "entity/fish/tropical_a_pattern_6" + ], + "tropical_fish_large#pattern": [ + "entity/fish/tropical_b_pattern_1", + "entity/fish/tropical_b_pattern_2", + "entity/fish/tropical_b_pattern_3", + "entity/fish/tropical_b_pattern_4", + "entity/fish/tropical_b_pattern_5", + "entity/fish/tropical_b_pattern_6" + ], + + "copper_golem#main": [ + "entity/copper_golem/copper_golem", + "entity/copper_golem/copper_golem_exposed", + "entity/copper_golem/copper_golem_weathered", + "entity/copper_golem/copper_golem_oxidized" + ], + "copper_golem_running#main": [ + "entity/copper_golem/copper_golem", + "entity/copper_golem/copper_golem_exposed", + "entity/copper_golem/copper_golem_weathered", + "entity/copper_golem/copper_golem_oxidized" + ], + "copper_golem_sitting#main": [ + "entity/copper_golem/copper_golem", + "entity/copper_golem/copper_golem_exposed", + "entity/copper_golem/copper_golem_weathered", + "entity/copper_golem/copper_golem_oxidized" + ], + "copper_golem_star#main": [ + "entity/copper_golem/copper_golem", + "entity/copper_golem/copper_golem_exposed", + "entity/copper_golem/copper_golem_weathered", + "entity/copper_golem/copper_golem_oxidized" + ] +} diff --git a/generator/config/variant-models.json b/generator/config/variant-models.json new file mode 100644 index 0000000..fee6605 --- /dev/null +++ b/generator/config/variant-models.json @@ -0,0 +1,5 @@ +{ + "zombie_nautilus": { + "warm": "zombie_nautilus_coral" + } +} diff --git a/generator/src/main/java/de/bluecolored/bluemap/entities/generator/Geometry.java b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/Geometry.java new file mode 100644 index 0000000..6f17ce5 --- /dev/null +++ b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/Geometry.java @@ -0,0 +1,48 @@ +/* + * This file is part of BlueMap, licensed under the MIT License (MIT). + * + * Copyright (c) Blue (Lukas Rieger) + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package de.bluecolored.bluemap.entities.generator; + +import java.util.List; +import java.util.Map; + +/** + * Geometry of one baked minecraft model-layer + */ +record Geometry(int textureWidth, int textureHeight, List elements, List warnings) { + + /** + * @param rotation nullable, {x, y, z} in degrees, applied by bluemap as rotateYXZ around {@code rotationOrigin} + * @param faces direction ("north", "up", ...) to uv {x1, y1, x2, y2} in 16-space + */ + record Element( + String name, + float[] from, + float[] to, + float[] rotation, + float[] rotationOrigin, + Map faces + ) {} + +} diff --git a/generator/src/main/java/de/bluecolored/bluemap/entities/generator/LayerConverter.java b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/LayerConverter.java new file mode 100644 index 0000000..9b484a8 --- /dev/null +++ b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/LayerConverter.java @@ -0,0 +1,309 @@ +/* + * This file is part of BlueMap, licensed under the MIT License (MIT). + * + * Copyright (c) Blue (Lukas Rieger) + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package de.bluecolored.bluemap.entities.generator; + +import com.mojang.blaze3d.vertex.PoseStack; +import net.minecraft.client.model.geom.ModelPart; +import net.minecraft.client.model.geom.builders.LayerDefinition; +import org.joml.Matrix4f; +import org.joml.Vector3fc; + +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +/** + * Minecraft builds entity-models in a y-down / x-mirrored space with the origin 1.5 blocks above the feet, so every position is converted with + * {@code x' = -x}, {@code y' = 24 - y}, {@code z' = z}. Part-transforms are flattened into a single rotation around the parts pivot + *

+ */ +final class LayerConverter { + + private static final float[] FLIP = { -1, -1, 1 }; + private static final float Y_OFFSET = 24; + private static final float POSITION_EPSILON = 1e-3f; + private static final float ANGLE_EPSILON = 1e-4f; + private static final String[] DIRECTIONS = { "down", "up", "north", "south", "west", "east" }; + + private LayerConverter() {} + + static Geometry convert(LayerDefinition layer) { + int[] textureSize = textureSize(layer); + List elements = new ArrayList<>(); + List warnings = new ArrayList<>(); + + layer.bakeRoot().visit(new PoseStack(), (pose, path, index, cube) -> { + String name = name(path, index); + Geometry.Element element = convertCube(pose.pose(), name, cube, warnings); + if (finite(element)) elements.add(element); + else warnings.add(name + ": dropped, contains a non-finite coordinate"); + }); + + elements.sort(Comparator.comparing(Geometry.Element::name)); + return new Geometry(textureSize[0], textureSize[1], elements, warnings); + } + + private static boolean finite(Geometry.Element element) { + List values = new ArrayList<>(element.faces().values()); + values.add(element.from()); + values.add(element.to()); + if (element.rotation() != null) { + values.add(element.rotation()); + values.add(element.rotationOrigin()); + } + + for (float[] value : values) + for (float number : value) + if (!Float.isFinite(number)) return false; + return true; + } + + private static String name(String path, int index) { + String name = path.startsWith("/") ? path.substring(1) : path; + return index == 0 ? name : name + "_" + index; + } + + private static Geometry.Element convertCube(Matrix4f matrix, String name, ModelPart.Cube cube, List warnings) { + + // linear part of the accumulated part-transform, columns are the local axes + float[][] linear = { + { matrix.m00(), matrix.m10(), matrix.m20() }, + { matrix.m01(), matrix.m11(), matrix.m21() }, + { matrix.m02(), matrix.m12(), matrix.m22() } + }; + + float[] scale = new float[3]; + for (int col = 0; col < 3; col++) { + scale[col] = (float) Math.sqrt( + linear[0][col] * linear[0][col] + + linear[1][col] * linear[1][col] + + linear[2][col] * linear[2][col] + ); + if (scale[col] < ANGLE_EPSILON) { + warnings.add(name + ": degenerate part-scale, using 1"); + scale[col] = 1; + } + for (int row = 0; row < 3; row++) linear[row][col] /= scale[col]; + } + + // conjugate the rotation with the coordinate-flip, so an un-rotated part stays un-rotated + float[][] rotation = new float[3][3]; + for (int row = 0; row < 3; row++) + for (int col = 0; col < 3; col++) + rotation[row][col] = FLIP[row] * FLIP[col] * linear[row][col]; + + // the parts pivot becomes the rotation-origin of the element + float[] origin = { + FLIP[0] * matrix.m30() * 16, + FLIP[1] * matrix.m31() * 16 + Y_OFFSET, + FLIP[2] * matrix.m32() * 16 + }; + + // the vertices, not minX/maxX, carry the cube-deformation ("grow") minecraft applies to a cube + float[][] bounds = bounds(cube); + float[] min = { bounds[0][0] * scale[0], bounds[0][1] * scale[1], bounds[0][2] * scale[2] }; + float[] max = { bounds[1][0] * scale[0], bounds[1][1] * scale[1], bounds[1][2] * scale[2] }; + float[] localMin = { -max[0], -max[1], min[2] }; + float[] localMax = { -min[0], -min[1], max[2] }; + + float[] from = new float[3], to = new float[3]; + for (int i = 0; i < 3; i++) { + from[i] = localMin[i] + origin[i]; + to[i] = localMax[i] + origin[i]; + } + + float[] euler = euler(rotation, name, warnings); + Map faces = faces(cube, localMin, localMax, scale, name, warnings); + + return new Geometry.Element(name, from, to, euler, euler == null ? null : origin, faces); + } + + private static float[][] bounds(ModelPart.Cube cube) { + float[] min = { Float.MAX_VALUE, Float.MAX_VALUE, Float.MAX_VALUE }; + float[] max = { -Float.MAX_VALUE, -Float.MAX_VALUE, -Float.MAX_VALUE }; + + for (ModelPart.Polygon polygon : cube.polygons) { + for (ModelPart.Vertex vertex : polygon.vertices()) { + float[] position = { vertex.x(), vertex.y(), vertex.z() }; + for (int i = 0; i < 3; i++) { + min[i] = Math.min(min[i], position[i]); + max[i] = Math.max(max[i], position[i]); + } + } + } + + if (min[0] > max[0]) return new float[][] { + { cube.minX, cube.minY, cube.minZ }, + { cube.maxX, cube.maxY, cube.maxZ } + }; + return new float[][] { min, max }; + } + + private static Map faces( + ModelPart.Cube cube, float[] localMin, float[] localMax, float[] scale, + String name, List warnings + ) { + Map faces = new LinkedHashMap<>(); + for (ModelPart.Polygon polygon : cube.polygons) { + int direction = direction(polygon.normal()); + if (direction < 0) { + warnings.add(name + ": skipped face with non-axis-aligned normal " + polygon.normal()); + continue; + } + + float[][] corners = corners(direction, localMin, localMax); + float[][] uvs = new float[4][]; + for (int i = 0; i < 4; i++) { + uvs[i] = uv(polygon, corners[i], scale); + if (uvs[i] == null) { + warnings.add(name + ": no matching vertex for the " + DIRECTIONS[direction] + "-face"); + break; + } + } + if (uvs[3] == null) continue; + + // bluemap maps the uv-corners (x1,y2) (x2,y2) (x2,y1) (x1,y1) onto the face-corners in that order + faces.put(DIRECTIONS[direction], new float[] { uvs[0][0], uvs[2][1], uvs[1][0], uvs[0][1] }); + } + return faces; + } + + private static float[] uv(ModelPart.Polygon polygon, float[] corner, float[] scale) { + float x = FLIP[0] * corner[0] / scale[0]; + float y = FLIP[1] * corner[1] / scale[1]; + float z = FLIP[2] * corner[2] / scale[2]; + + for (ModelPart.Vertex vertex : polygon.vertices()) { + if ( + Math.abs(vertex.x() - x) < POSITION_EPSILON && + Math.abs(vertex.y() - y) < POSITION_EPSILON && + Math.abs(vertex.z() - z) < POSITION_EPSILON + ) return new float[] { vertex.u() * 16, vertex.v() * 16 }; + } + return null; + } + + private static int direction(Vector3fc normal) { + float x = FLIP[0] * normal.x(), y = FLIP[1] * normal.y(), z = FLIP[2] * normal.z(); + if (y < -0.9f) return 0; + if (y > 0.9f) return 1; + if (z < -0.9f) return 2; + if (z > 0.9f) return 3; + if (x < -0.9f) return 4; + if (x > 0.9f) return 5; + return -1; + } + + private static float[][] corners(int direction, float[] min, float[] max) { + return switch (direction) { + case 0 -> new float[][] { + { min[0], min[1], min[2] }, { max[0], min[1], min[2] }, + { max[0], min[1], max[2] }, { min[0], min[1], max[2] } }; + case 1 -> new float[][] { + { min[0], max[1], max[2] }, { max[0], max[1], max[2] }, + { max[0], max[1], min[2] }, { min[0], max[1], min[2] } }; + case 2 -> new float[][] { + { max[0], min[1], min[2] }, { min[0], min[1], min[2] }, + { min[0], max[1], min[2] }, { max[0], max[1], min[2] } }; + case 3 -> new float[][] { + { min[0], min[1], max[2] }, { max[0], min[1], max[2] }, + { max[0], max[1], max[2] }, { min[0], max[1], max[2] } }; + case 4 -> new float[][] { + { min[0], min[1], min[2] }, { min[0], min[1], max[2] }, + { min[0], max[1], max[2] }, { min[0], max[1], min[2] } }; + default -> new float[][] { + { max[0], min[1], max[2] }, { max[0], min[1], min[2] }, + { max[0], max[1], min[2] }, { max[0], max[1], max[2] } }; + }; + } + + /** + * Decomposes a rotation-matrix into the y-x-z euler-angles (in degrees) + */ + private static float[] euler(float[][] r, String name, List warnings) { + double x, y, z; + if (Math.abs(r[1][2]) < 0.99999) { + x = Math.asin(-r[1][2]); + y = Math.atan2(r[0][2], r[2][2]); + z = Math.atan2(r[1][0], r[1][1]); + } else { + x = r[1][2] < 0 ? Math.PI / 2 : -Math.PI / 2; + y = Math.atan2(-r[2][0], r[0][0]); + z = 0; + } + + float[] euler = { + (float) Math.toDegrees(x), + (float) Math.toDegrees(y), + (float) Math.toDegrees(z) + }; + + float error = error(r, euler); + if (error > 1e-3f) warnings.add(name + ": rotation could not be decomposed exactly (error " + error + ")"); + + if (Math.abs(euler[0]) < ANGLE_EPSILON && Math.abs(euler[1]) < ANGLE_EPSILON && Math.abs(euler[2]) < ANGLE_EPSILON) + return null; + return euler; + } + + private static float error(float[][] r, float[] euler) { + double x = Math.toRadians(euler[0]), y = Math.toRadians(euler[1]), z = Math.toRadians(euler[2]); + double sx = Math.sin(x), cx = Math.cos(x); + double sy = Math.sin(y), cy = Math.cos(y); + double sz = Math.sin(z), cz = Math.cos(z); + + double[][] check = { + { cy * cz + sy * sx * sz, -cy * sz + sy * sx * cz, sy * cx }, + { cx * sz, cx * cz, -sx }, + { -sy * cz + cy * sx * sz, sy * sz + cy * sx * cz, cy * cx } + }; + + float error = 0; + for (int row = 0; row < 3; row++) + for (int col = 0; col < 3; col++) + error = Math.max(error, (float) Math.abs(check[row][col] - r[row][col])); + return error; + } + + private static int[] textureSize(LayerDefinition layer) { + try { + Field materialField = LayerDefinition.class.getDeclaredField("material"); + materialField.setAccessible(true); + Object material = materialField.get(layer); + + Field width = material.getClass().getDeclaredField("xTexSize"); + Field height = material.getClass().getDeclaredField("yTexSize"); + width.setAccessible(true); + height.setAccessible(true); + return new int[] { width.getInt(material), height.getInt(material) }; + } catch (ReflectiveOperationException e) { + return new int[] { 64, 64 }; + } + } + +} diff --git a/generator/src/main/java/de/bluecolored/bluemap/entities/generator/Main.java b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/Main.java new file mode 100644 index 0000000..e43229b --- /dev/null +++ b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/Main.java @@ -0,0 +1,238 @@ +/* + * This file is part of BlueMap, licensed under the MIT License (MIT). + * + * Copyright (c) Blue (Lukas Rieger) + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package de.bluecolored.bluemap.entities.generator; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.reflect.TypeToken; +import net.minecraft.SharedConstants; +import net.minecraft.client.model.geom.LayerDefinitions; +import net.minecraft.client.model.geom.ModelLayerLocation; +import net.minecraft.client.model.geom.builders.LayerDefinition; +import net.minecraft.server.Bootstrap; + +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.TreeMap; +import java.util.TreeSet; +import java.util.regex.Pattern; + +/** + * One model per model-layer {@code entity//.json}. + * One model per data-driven variant {@code entity//_.json}. + * Baby-models & overlay-layers separate layers. + */ +public final class Main { + + private static final String CONFIG_TEXTURES = "textures.json"; + private static final String CONFIG_VARIANT_MODELS = "variant-models.json"; + private static final String CONFIG_EQUIPMENT = "equipment.json"; + + private final Arguments arguments; + private final Report report = new Report(); + + private Main(Arguments arguments) { + this.arguments = arguments; + } + + public static void main(String[] args) throws Exception { + new Main(Arguments.parse(args)).run(); + } + + private void run() throws IOException { + SharedConstants.tryDetectVersion(); + Bootstrap.bootStrap(); + + Map layers = new TreeMap<>(Main::compare); + layers.putAll(LayerDefinitions.createRoots()); + + try (McAssets assets = new McAssets(arguments.clientJar)) { + Set models = new LinkedHashSet<>(); + layers.keySet().forEach(layer -> models.add(layer.model().getPath())); + + TextureResolver textures = new TextureResolver( + assets, + readConfig(CONFIG_TEXTURES, new TypeToken>() {}), + readConfig(CONFIG_VARIANT_MODELS, new TypeToken>>() {}), + readConfig(CONFIG_EQUIPMENT, new TypeToken>() {}), + models + ); + textures.warnings().forEach(report::warning); + + Set written = new TreeSet<>(); + for (Map.Entry entry : layers.entrySet()) + generate(entry.getKey(), entry.getValue(), textures, written); + + removeStale(written); + writeIndex(written); + } + + report.write(arguments.report); + System.out.println(report.summary()); + } + + private void generate( + ModelLayerLocation location, LayerDefinition definition, + TextureResolver textures, Set written + ) throws IOException { + String model = location.model().getPath(); + String layer = location.layer(); + String key = location.model() + "#" + layer; + + if (!arguments.include.matcher(key).find()) return; + if (arguments.exclude != null && arguments.exclude.matcher(key).find()) return; + + Geometry geometry = LayerConverter.convert(definition); + geometry.warnings().forEach(warning -> report.warning(key + ": " + warning)); + + if (geometry.elements().isEmpty()) { + report.empty(key); + return; + } + + TextureResolver.Resolution resolution = textures.resolve(model, layer); + if (resolution.isEmpty()) report.unresolved(key); + else report.resolved(key, resolution.source(), resolution.variants().size()); + + String base = model + "/" + layer; + write(base, ModelWriter.write(geometry, resolution.texture(), arguments.minecraftVersion, key), written); + + for (TextureResolver.Variant variant : resolution.variants()) + write(base + "_" + variant.suffix(), ModelWriter.writeVariant(base, variant.texture()), written); + } + + private void write(String name, String generated, Set written) throws IOException { + String path = name + ".json"; + written.add(path); + + Path override = arguments.overrides.resolve(path); + boolean isOverridden = Files.isRegularFile(override); + String content = isOverridden ? Files.readString(override, StandardCharsets.UTF_8) : generated; + if (isOverridden) report.overridden(path); + + Path file = arguments.out.resolve(path); + if (Files.isRegularFile(file)) { + if (Files.readString(file, StandardCharsets.UTF_8).equals(content)) { + report.unchanged(path); + return; + } + report.changed(path); + } else { + report.added(path); + } + + Files.createDirectories(file.getParent()); + Files.writeString(file, content, StandardCharsets.UTF_8); + } + + /** Deletes models that were generated by a previous run but do not exist in minecraft anymore. */ + private void removeStale(Set written) throws IOException { + for (String path : readIndex()) { + if (written.contains(path)) continue; + + Path file = arguments.out.resolve(path); + if (Files.deleteIfExists(file)) report.removed(path); + + Path directory = file.getParent(); + while (directory != null && directory.startsWith(arguments.out) && !directory.equals(arguments.out)) { + try (var entries = Files.list(directory)) { + if (entries.findAny().isPresent()) break; + } + Files.delete(directory); + directory = directory.getParent(); + } + } + } + + private List readIndex() throws IOException { + if (!Files.isRegularFile(arguments.index)) return List.of(); + return Files.readAllLines(arguments.index, StandardCharsets.UTF_8).stream() + .map(String::trim) + .filter(line -> !line.isEmpty() && !line.startsWith("#")) + .toList(); + } + + private void writeIndex(Set written) throws IOException { + List lines = new ArrayList<>(); + lines.add("# generated by the :generator module - do not edit"); + lines.addAll(written); + Files.createDirectories(arguments.index.getParent()); + Files.write(arguments.index, lines, StandardCharsets.UTF_8); + } + + private T readConfig(String name, TypeToken type) throws IOException { + Path file = arguments.config.resolve(name); + if (!Files.isRegularFile(file)) return new Gson().fromJson("{}", type); + try (var reader = Files.newBufferedReader(file, StandardCharsets.UTF_8)) { + T config = new Gson().fromJson(reader, type); + return config != null ? config : new Gson().fromJson("{}", type); + } + } + + private static int compare(ModelLayerLocation a, ModelLayerLocation b) { + int model = a.model().toString().compareTo(b.model().toString()); + return model != 0 ? model : a.layer().compareTo(b.layer()); + } + + private record Arguments( + Path clientJar, Path out, Path config, Path overrides, Path report, Path index, + String minecraftVersion, Pattern include, Pattern exclude + ) { + + static Arguments parse(String[] args) { + Map values = new HashMap<>(); + for (int i = 0; i < args.length - 1; i += 2) values.put(args[i], args[i + 1]); + + Path config = Path.of(required(values, "--config")); + return new Arguments( + Path.of(required(values, "--client")), + Path.of(required(values, "--out")), + config, + Path.of(values.getOrDefault("--overrides", config.resolveSibling("overrides").toString())), + Path.of(values.getOrDefault("--report", "generation-report.txt")), + Path.of(values.getOrDefault("--index", config.resolveSibling("generated-index.txt").toString())), + values.getOrDefault("--mc-version", "unknown"), + Pattern.compile(values.getOrDefault("--include", ".*")), + values.containsKey("--exclude") ? Pattern.compile(values.get("--exclude")) : null + ); + } + + private static String required(Map values, String key) { + String value = values.get(key); + if (value == null) throw new IllegalArgumentException("missing argument: " + key); + return value; + } + + } + +} diff --git a/generator/src/main/java/de/bluecolored/bluemap/entities/generator/McAssets.java b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/McAssets.java new file mode 100644 index 0000000..60c8c31 --- /dev/null +++ b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/McAssets.java @@ -0,0 +1,192 @@ +/* + * This file is part of BlueMap, licensed under the MIT License (MIT). + * + * Copyright (c) Blue (Lukas Rieger) + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package de.bluecolored.bluemap.entities.generator; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; + +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.Reader; +import java.nio.charset.StandardCharsets; +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.TreeMap; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.zip.ZipEntry; +import java.util.zip.ZipFile; + + +final class McAssets implements AutoCloseable { + + private static final String TEXTURE_PREFIX = "assets/minecraft/textures/"; + private static final String VARIANT_PREFIX = "data/minecraft/"; + private static final String RENDERER_PREFIX = "net/minecraft/client/renderer/entity/"; + private static final Pattern TEXTURE_REFERENCE = Pattern.compile("textures/entity/[a-z0-9_/]+"); + + private final ZipFile jar; + private final Set textures = new HashSet<>(); + private final Map> rendererTextures = new HashMap<>(); + private final Map> variants = new TreeMap<>(); + + /** + * A single data-driven entity-variant, with its textures keyed by sub-type + */ + record Variant(String entity, String name, String model, Map adult, Map baby) {} + + McAssets(Path clientJar) throws IOException { + this.jar = new ZipFile(clientJar.toFile()); + index(); + } + + boolean hasTexture(String texture) { + return textures.contains(texture); + } + + List texturesNamed(String name) { + String suffix = "/" + name; + return textures.stream() + .filter(texture -> texture.startsWith("entity/") && texture.endsWith(suffix)) + .sorted() + .toList(); + } + + List texturesStartingWith(String prefix) { + return textures.stream() + .filter(texture -> texture.startsWith("entity/") + && texture.substring(texture.lastIndexOf('/') + 1).startsWith(prefix)) + .sorted() + .toList(); + } + + List texturesIn(String folder) { + String prefix = folder + "/"; + return textures.stream() + .filter(texture -> texture.startsWith(prefix) && texture.indexOf('/', prefix.length()) < 0) + .sorted() + .toList(); + } + + /** All variants of the given entity-name, in registry-order. */ + List variants(String entity) { + return variants.getOrDefault(entity, List.of()); + } + + Map> variants() { + return Collections.unmodifiableMap(variants); + } + + /** Texture-paths referenced by the compiled renderer- and render-layer-classes, keyed by simple class-name. */ + Map> rendererTextures() { + return Collections.unmodifiableMap(rendererTextures); + } + + private void index() throws IOException { + var entries = jar.entries(); + while (entries.hasMoreElements()) { + ZipEntry entry = entries.nextElement(); + String path = entry.getName(); + + if (path.startsWith(TEXTURE_PREFIX) && path.endsWith(".png")) { + textures.add(path.substring(TEXTURE_PREFIX.length(), path.length() - ".png".length())); + continue; + } + + if (path.startsWith(RENDERER_PREFIX) && path.endsWith(".class")) { + indexRendererTextures(entry); + continue; + } + + if (path.startsWith(VARIANT_PREFIX) && path.endsWith(".json")) indexVariant(entry); + } + } + + private void indexRendererTextures(ZipEntry entry) throws IOException { + String name = entry.getName(); + name = name.substring(name.lastIndexOf('/') + 1, name.length() - ".class".length()); + + String content; + try (var in = jar.getInputStream(entry)) { + content = new String(in.readAllBytes(), StandardCharsets.ISO_8859_1); + } + + List found = new ArrayList<>(); + Matcher matcher = TEXTURE_REFERENCE.matcher(content); + while (matcher.find()) found.add(matcher.group()); + if (!found.isEmpty()) rendererTextures.put(name, found); + } + + private void indexVariant(ZipEntry entry) throws IOException { + String path = entry.getName().substring(VARIANT_PREFIX.length()); + int slash = path.indexOf('/'); + if (slash < 0) return; + + String registry = path.substring(0, slash); + if (!registry.endsWith("_variant")) return; + String entity = registry.substring(0, registry.length() - "_variant".length()); + String name = path.substring(slash + 1, path.length() - ".json".length()); + + JsonObject json; + try (Reader reader = new InputStreamReader(jar.getInputStream(entry), StandardCharsets.UTF_8)) { + json = new Gson().fromJson(reader, JsonObject.class); + } + + Map adult = assets(json, "asset_id", "assets"); + if (adult.isEmpty()) return; + Map baby = assets(json, "baby_asset_id", "baby_assets"); + + String model = json.has("model") ? json.get("model").getAsString() : null; + variants.computeIfAbsent(entity, key -> new ArrayList<>()).add(new Variant(entity, name, model, adult, baby)); + } + + private static Map assets(JsonObject json, String singleKey, String mapKey) { + Map assets = new LinkedHashMap<>(); + if (json.has(singleKey)) assets.put("", texture(json.get(singleKey).getAsString())); + if (json.has(mapKey)) { + for (Map.Entry asset : json.getAsJsonObject(mapKey).entrySet()) + assets.put(asset.getKey(), texture(asset.getValue().getAsString())); + } + return assets; + } + + private static String texture(String assetId) { + return assetId.startsWith("minecraft:") ? assetId.substring("minecraft:".length()) : assetId; + } + + @Override + public void close() throws IOException { + jar.close(); + } + +} diff --git a/generator/src/main/java/de/bluecolored/bluemap/entities/generator/ModelJson.java b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/ModelJson.java new file mode 100644 index 0000000..5126d50 --- /dev/null +++ b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/ModelJson.java @@ -0,0 +1,98 @@ +/* + * This file is part of BlueMap, licensed under the MIT License (MIT). + * + * Copyright (c) Blue (Lukas Rieger) + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package de.bluecolored.bluemap.entities.generator; + +import com.google.gson.annotations.SerializedName; + +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +/** + * The bluemap entity-model json. Null fields are left out when serialized, so the same records describe both a + * geometry-model and a variant-model that only inherits from it. + */ +record ModelJson( + @SerializedName("format_version") String formatVersion, + String credit, + @SerializedName("texture_size") int[] textureSize, + String parent, + Map textures, + List elements +) { + + private static final float ROTATION_EPSILON = 1e-4f; + private static final String[] AXES = { "x", "y", "z" }; + + record Element(String name, float[] from, float[] to, Rotation rotation, Map faces) {} + + /** Either axis/angle (single-axis, understood by older bluemap-versions too) or the x/y/z euler-angles. */ + record Rotation(Float angle, String axis, Float x, Float y, Float z, float[] origin) {} + + record Face(float[] uv, String texture) {} + + static ModelJson geometry(Geometry geometry, String texture, String minecraftVersion, String layer) { + List elements = geometry.elements().stream().map(ModelJson::element).toList(); + return new ModelJson( + minecraftVersion, + "Generated from minecraft " + minecraftVersion + " (" + layer + ")", + new int[] { geometry.textureWidth(), geometry.textureHeight() }, + null, + texture == null ? Map.of() : Map.of("0", texture), + elements + ); + } + + static ModelJson variant(String parent, String texture) { + return new ModelJson(null, null, null, "minecraft:entity/" + parent, Map.of("0", texture), null); + } + + private static Element element(Geometry.Element element) { + Map faces = new LinkedHashMap<>(); + element.faces().forEach((direction, uv) -> faces.put(direction, new Face(uv, "#0"))); + + return new Element( + element.name(), + element.from(), + element.to(), + rotation(element.rotation(), element.rotationOrigin()), + faces + ); + } + + private static Rotation rotation(float[] rotation, float[] origin) { + if (rotation == null) return null; + + for (int axis = 0; axis < 3; axis++) { + if (Math.abs(rotation[(axis + 1) % 3]) > ROTATION_EPSILON) continue; + if (Math.abs(rotation[(axis + 2) % 3]) > ROTATION_EPSILON) continue; + + return new Rotation(rotation[axis], AXES[axis], null, null, null, origin); + } + + return new Rotation(null, null, rotation[0], rotation[1], rotation[2], origin); + } + +} diff --git a/generator/src/main/java/de/bluecolored/bluemap/entities/generator/ModelWriter.java b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/ModelWriter.java new file mode 100644 index 0000000..d891908 --- /dev/null +++ b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/ModelWriter.java @@ -0,0 +1,120 @@ +/* + * This file is part of BlueMap, licensed under the MIT License (MIT). + * + * Copyright (c) Blue (Lukas Rieger) + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package de.bluecolored.bluemap.entities.generator; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +import java.io.IOException; +import java.io.StringWriter; +import java.io.UncheckedIOException; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.StringJoiner; +import java.util.function.Function; + +/** + * Serializes a {@link ModelJson}. Coordinates, uvs and faces are written inline. Numbers are rounded + */ +final class ModelWriter { + + private static final int DECIMALS = 5; + + private static final Gson GSON = gson(); + + private static Gson gson() { + GsonBuilder builder = new GsonBuilder(); + register(builder, float[].class, ModelWriter::inline); + register(builder, int[].class, ModelWriter::inline); + register(builder, Float.class, ModelWriter::number); + register(builder, ModelJson.Face.class, ModelWriter::inline); + return builder.create(); + } + + private ModelWriter() {} + + static String write(Geometry geometry, String texture, String minecraftVersion, String layer) { + return write(ModelJson.geometry(geometry, texture, minecraftVersion, layer)); + } + + /** A texture-variant of an already written model, which only overrides its texture. */ + static String writeVariant(String parent, String texture) { + return write(ModelJson.variant(parent, texture)); + } + + private static String write(ModelJson model) { + StringWriter target = new StringWriter(); + try (JsonWriter writer = new JsonWriter(target)) { + writer.setIndent("\t"); + GSON.toJson(model, ModelJson.class, writer); + } catch (IOException e) { + throw new UncheckedIOException(e); + } + return target + "\n"; + } + + private static String inline(ModelJson.Face face) { + return "{\"uv\": " + inline(face.uv()) + ", \"texture\": \"" + face.texture() + "\"}"; + } + + private static String inline(float[] values) { + StringJoiner joiner = new StringJoiner(", ", "[", "]"); + for (float value : values) joiner.add(number(value)); + return joiner.toString(); + } + + private static String inline(int[] values) { + StringJoiner joiner = new StringJoiner(", ", "[", "]"); + for (int value : values) joiner.add(Integer.toString(value)); + return joiner.toString(); + } + + private static String number(float value) { + BigDecimal rounded = BigDecimal.valueOf(value) + .setScale(DECIMALS, RoundingMode.HALF_UP) + .stripTrailingZeros(); + return rounded.signum() == 0 ? "0" : rounded.toPlainString(); + } + + private static void register(GsonBuilder builder, Class type, Function format) { + builder.registerTypeAdapter(type, new TypeAdapter() { + + @Override + public void write(JsonWriter out, T value) throws IOException { + out.jsonValue(format.apply(value)); + } + + @Override + public T read(JsonReader in) { + throw new UnsupportedOperationException(); + } + + }.nullSafe()); + } + +} diff --git a/generator/src/main/java/de/bluecolored/bluemap/entities/generator/Report.java b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/Report.java new file mode 100644 index 0000000..af2c64d --- /dev/null +++ b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/Report.java @@ -0,0 +1,91 @@ +/* + * This file is part of BlueMap, licensed under the MIT License (MIT). + * + * Copyright (c) Blue (Lukas Rieger) + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package de.bluecolored.bluemap.entities.generator; + +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.List; +import java.util.TreeSet; + +/** + * Collects what a generator-run did, so changes between minecraft-versions are visible without reading the whole diff + */ +final class Report { + + private final TreeSet added = new TreeSet<>(); + private final TreeSet changed = new TreeSet<>(); + private final TreeSet removed = new TreeSet<>(); + private final TreeSet overridden = new TreeSet<>(); + private final TreeSet unresolved = new TreeSet<>(); + private final TreeSet resolved = new TreeSet<>(); + private final TreeSet empty = new TreeSet<>(); + private final TreeSet warnings = new TreeSet<>(); + private int unchanged; + + void added(String path) { added.add(path); } + void changed(String path) { changed.add(path); } + void removed(String path) { removed.add(path); } + void overridden(String path) { overridden.add(path); } + void unresolved(String layer) { unresolved.add(layer); } + void resolved(String layer, String source, int variants) { + resolved.add(layer + " -> " + source + (variants > 0 ? " (" + variants + " variants)" : "")); + } + void empty(String layer) { empty.add(layer); } + void warning(String warning) { warnings.add(warning); } + void unchanged(String path) { unchanged++; } + + String summary() { + return "models: %d added, %d changed, %d removed, %d unchanged | %d layers without texture, %d warnings" + .formatted(added.size(), changed.size(), removed.size(), unchanged, unresolved.size(), warnings.size()); + } + + void write(Path file) throws IOException { + List lines = new ArrayList<>(); + lines.add(summary()); + + section(lines, "added", added); + section(lines, "changed", changed); + section(lines, "removed", removed); + section(lines, "overridden by generator/overrides", overridden); + section(lines, "no texture found (pin one in config/textures.json)", unresolved); + section(lines, "layers without any cube", empty); + section(lines, "warnings", warnings); + section(lines, "resolved textures", resolved); + + if (file.getParent() != null) Files.createDirectories(file.getParent()); + Files.write(file, lines, StandardCharsets.UTF_8); + } + + private static void section(List lines, String title, TreeSet entries) { + if (entries.isEmpty()) return; + lines.add(""); + lines.add("### " + title + " (" + entries.size() + ")"); + lines.addAll(entries); + } + +} diff --git a/generator/src/main/java/de/bluecolored/bluemap/entities/generator/TextureResolver.java b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/TextureResolver.java new file mode 100644 index 0000000..812bf2c --- /dev/null +++ b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/TextureResolver.java @@ -0,0 +1,316 @@ +/* + * This file is part of BlueMap, licensed under the MIT License (MIT). + * + * Copyright (c) Blue (Lukas Rieger) + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package de.bluecolored.bluemap.entities.generator; + +import com.google.gson.JsonElement; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.TreeMap; + +/** + * Finds the vanilla textures for a model-layer. + */ +final class TextureResolver { + + private static final String BABY_SUFFIX = "_baby"; + private static final String EQUIPMENT = "entity/equipment/"; + private static final Set ARMOR_LAYERS = Set.of("helmet", "chestplate", "boots", "leggings"); + private static final List ALIAS_SUFFIXES = List.of("_small", "_medium", "_big", "_large", "_no_hat"); + + private final McAssets assets; + private final Map textureOverrides; + private final Map> variantModelOverrides; + private final Map equipmentOverrides; + private final Set knownModels; + private final Map> dataVariants = new TreeMap<>(); + private final List warnings = new ArrayList<>(); + + /** A texture-only variation of a model-layer, written as an additional model with the given name-suffix. */ + record Variant(String suffix, String texture) {} + + record Resolution(String texture, List variants, String source) { + + boolean isEmpty() { + return texture == null && variants.isEmpty(); + } + + } + + TextureResolver( + McAssets assets, + Map textureOverrides, + Map> variantModelOverrides, + Map equipmentOverrides, + Set knownModels + ) { + this.assets = assets; + this.textureOverrides = textureOverrides; + this.variantModelOverrides = variantModelOverrides; + this.equipmentOverrides = equipmentOverrides; + this.knownModels = knownModels; + indexDataVariants(); + } + + List warnings() { + return Collections.unmodifiableList(warnings); + } + + Resolution resolve(String model, String layer) { + JsonElement override = textureOverrides.get(model + "#" + layer); + if (override != null) return fromOverride(override); + + if (layer.equals("main")) { + List variants = dataVariants.get(model); + if (variants != null) return new Resolution(null, variants, "variant-registry"); + } + + List equipment = equipment(model, layer); + if (!equipment.isEmpty()) return new Resolution(null, equipment, "equipment"); + + for (String candidate : conventions(model, layer)) + if (assets.hasTexture(candidate)) return new Resolution(candidate, List.of(), "convention"); + + String byName = byName(model, layer); + if (byName != null) return new Resolution(byName, List.of(), "texture-name"); + + List family = family(model, layer); + if (family.size() == 1) return new Resolution(family.getFirst().texture(), List.of(), "texture-family"); + if (!family.isEmpty()) return new Resolution(null, family, "texture-family"); + + List fromClasses = fromRendererClasses(model, layer); + for (String candidate : fromClasses) + if (names(model, layer).contains(candidate.substring(candidate.lastIndexOf('/') + 1))) + return new Resolution(candidate, List.of(), "renderer-class"); + if (fromClasses.size() == 1) return new Resolution(fromClasses.getFirst(), List.of(), "renderer-class"); + if (!fromClasses.isEmpty()) { + List variants = new ArrayList<>(); + fromClasses.forEach(texture -> variants.add(variant(texture, null))); + return new Resolution(null, variants, "renderer-class"); + } + + return new Resolution(null, List.of(), "unresolved"); + } + + private Resolution fromOverride(JsonElement override) { + if (!override.isJsonArray()) return new Resolution(override.getAsString(), List.of(), "config"); + + List variants = new ArrayList<>(); + for (JsonElement texture : override.getAsJsonArray()) variants.add(variant(texture.getAsString(), null)); + return new Resolution(null, variants, "config"); + } + + /** Armor, saddles and other equipment: one variant per material-texture of the matching equipment-folder. */ + private List equipment(String model, String layer) { + String folder = equipmentFolder(model, layer); + if (folder == null) return List.of(); + + List variants = new ArrayList<>(); + for (String texture : assets.texturesIn(EQUIPMENT + folder)) variants.add(variant(texture, null)); + return variants; + } + + private String equipmentFolder(String model, String layer) { + String override = equipmentOverrides.get(model + "#" + layer); + if (override != null) return override; + + String folder = null; + if (ARMOR_LAYERS.contains(layer)) { + folder = layer.equals("leggings") ? "humanoid_leggings" : "humanoid"; + if (model.endsWith(BABY_SUFFIX) && exists(folder + BABY_SUFFIX)) folder += BABY_SUFFIX; + } else if (layer.equals("saddle")) { + folder = model + "_saddle"; + } else if (layer.equals("decor")) { + folder = base(model) + "_body"; + } else if (layer.equals("main") && (model.endsWith("_armor") || model.endsWith("_harness"))) { + folder = model.substring(0, model.lastIndexOf('_')) + "_body"; + } + + return folder != null && exists(folder) ? folder : null; + } + + private boolean exists(String folder) { + return !assets.texturesIn(EQUIPMENT + folder).isEmpty(); + } + + private List conventions(String model, String layer) { + String base = base(model); + List candidates = new ArrayList<>(); + + if (layer.equals("main")) { + candidates.add("entity/" + base + "/" + model); + candidates.add("entity/" + model + "/" + model); + candidates.add("entity/" + model); + candidates.add("entity/" + base + "/" + base); + candidates.add("entity/" + base); + } else { + candidates.add("entity/" + base + "/" + model + "_" + layer); + candidates.add("entity/" + base + "/" + base + "_" + layer); + candidates.add("entity/" + model + "/" + model + "_" + layer); + candidates.add("entity/" + base + "/" + layer); + candidates.add("entity/" + model + "/" + layer); + candidates.add("entity/" + layer); + } + + return candidates; + } + + /** Vanilla often keeps a texture in the folder of its entity-family ({@code entity/zombie/husk}), so search by name. */ + private String byName(String model, String layer) { + for (String name : names(model, layer)) { + List textures = assets.texturesNamed(name); + if (textures.size() == 1) return textures.getFirst(); + } + return null; + } + + /** The texture file-names an entity-model may use, most specific first. */ + private List names(String model, String layer) { + List names = new ArrayList<>(); + for (String alias : aliases(model)) { + if (layer.equals("main")) { + names.add(alias); + } else { + names.add(alias + "_" + layer); + names.add(alias + "_" + layer + "_layer"); + } + } + return names; + } + + /** The model-id plus the shortened forms minecraft uses */ + private static List aliases(String model) { + Set aliases = new LinkedHashSet<>(); + aliases.add(model); + aliases.add(base(model)); + + for (String alias : List.copyOf(aliases)) { + for (String suffix : ALIAS_SUFFIXES) + if (alias.endsWith(suffix)) aliases.add(alias.substring(0, alias.length() - suffix.length())); + } + return List.copyOf(aliases); + } + + /** + * Variants that are hard-coded in minecraft instead of being data-driven (axolotl, mooshroom, horse, ...) + */ + private List family(String model, String layer) { + boolean baby = model.endsWith(BABY_SUFFIX); + + for (String name : names(model, layer)) { + List variants = new ArrayList<>(); + for (String texture : assets.texturesStartingWith(name + "_")) { + if (texture.endsWith(BABY_SUFFIX) != baby) continue; + + String suffix = texture.substring(texture.lastIndexOf('/') + 1 + name.length() + 1); + if (baby) suffix = suffix.substring(0, suffix.length() - BABY_SUFFIX.length()); + variants.add(new Variant(suffix, texture)); + } + if (!variants.isEmpty()) return variants; + } + return List.of(); + } + + private List fromRendererClasses(String model, String layer) { + List names = aliases(model).stream().map(TextureResolver::camel).toList(); + String layerName = camel(layer); + + Set candidates = new LinkedHashSet<>(); + assets.rendererTextures().forEach((className, textures) -> { + if (names.stream().noneMatch(className::startsWith)) return; + + boolean matchesLayer = layer.equals("main") + ? names.stream().anyMatch(name -> className.equals(name + "Renderer")) + : className.contains(layerName); + if (!matchesLayer) return; + + textures.forEach(texture -> { + String id = texture.substring("textures/".length()); + if (assets.hasTexture(id)) candidates.add(id); + }); + }); + + return List.copyOf(candidates); + } + + private void indexDataVariants() { + assets.variants().forEach((entity, variants) -> { + for (McAssets.Variant variant : variants) { + String adultModel = targetModel(entity, variant.model()); + if (adultModel == null) { + if (knownModels.contains(entity)) + warnings.add("variant " + entity + "/" + variant.name() + ": no model '" + variant.model() + "'"); + continue; + } + + register(adultModel, variant, variant.adult()); + register(adultModel + BABY_SUFFIX, variant, variant.baby().isEmpty() ? variant.adult() : variant.baby()); + } + }); + } + + private void register(String model, McAssets.Variant variant, Map textures) { + if (!knownModels.contains(model)) return; + + List list = dataVariants.computeIfAbsent(model, key -> new ArrayList<>()); + textures.forEach((sub, texture) -> + list.add(new Variant(sub.isEmpty() ? variant.name() : variant.name() + "_" + sub, texture))); + } + + private String targetModel(String entity, String model) { + if (model == null) return knownModels.contains(entity) ? entity : null; + + String override = variantModelOverrides.getOrDefault(entity, Map.of()).get(model); + if (override != null) return override; + + for (String candidate : List.of(model + "_" + entity, entity + "_" + model)) + if (knownModels.contains(candidate)) return candidate; + + return null; + } + + private static Variant variant(String texture, String suffix) { + if (suffix != null) return new Variant(suffix, texture); + return new Variant(texture.substring(texture.lastIndexOf('/') + 1), texture); + } + + private static String base(String model) { + return model.endsWith(BABY_SUFFIX) ? model.substring(0, model.length() - BABY_SUFFIX.length()) : model; + } + + private static String camel(String name) { + StringBuilder camel = new StringBuilder(); + for (String part : name.split("[_/]")) { + if (part.isEmpty()) continue; + camel.append(Character.toUpperCase(part.charAt(0))).append(part.substring(1)); + } + return camel.toString(); + } + +} diff --git a/settings.gradle.kts b/settings.gradle.kts index 059ff09..2f1e384 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -4,3 +4,5 @@ pluginManagement { mavenCentral() } } + +include("generator") From 7080e1681717812189ff96c97b583fb44f480a86 Mon Sep 17 00:00:00 2001 From: miraculixx Date: Tue, 11 Aug 2026 01:28:56 +0200 Subject: [PATCH 04/34] add demo datapack, slightly faster than manually placing each mob --- .../function/group/aquatic.mcfunction | 14 ++++++++ .../function/group/armadillo.mcfunction | 5 +++ .../function/group/axolotl.mcfunction | 7 ++++ .../bme_test/function/group/bee.mcfunction | 5 +++ .../bme_test/function/group/camel.mcfunction | 5 +++ .../bme_test/function/group/cat.mcfunction | 15 ++++++++ .../function/group/chested_horse.mcfunction | 7 ++++ .../function/group/chicken.mcfunction | 7 ++++ .../function/group/copper_golem.mcfunction | 5 +++ .../bme_test/function/group/cow.mcfunction | 7 ++++ .../bme_test/function/group/fox.mcfunction | 7 ++++ .../bme_test/function/group/frog.mcfunction | 4 +++ .../bme_test/function/group/ghast.mcfunction | 4 +++ .../bme_test/function/group/golem.mcfunction | 4 +++ .../function/group/horse_baby.mcfunction | 8 +++++ .../group/horse_markings_0.mcfunction | 8 +++++ .../group/horse_markings_1.mcfunction | 8 +++++ .../group/horse_markings_2.mcfunction | 8 +++++ .../group/horse_markings_3.mcfunction | 8 +++++ .../group/horse_markings_4.mcfunction | 8 +++++ .../bme_test/function/group/llama.mcfunction | 24 +++++++++++++ .../bme_test/function/group/misc.mcfunction | 5 +++ .../bme_test/function/group/ocelot.mcfunction | 4 +++ .../bme_test/function/group/pig.mcfunction | 8 +++++ .../bme_test/function/group/sheep.mcfunction | 17 +++++++++ .../function/group/sheep_states.mcfunction | 8 +++++ .../function/group/skeleton.mcfunction | 6 ++++ .../function/group/trader_llama.mcfunction | 7 ++++ .../function/group/tropical_fish.mcfunction | 10 ++++++ .../function/group/undead_horse.mcfunction | 5 +++ .../bme_test/function/group/zombie.mcfunction | 7 ++++ .../data/bme_test/function/kill.mcfunction | 2 ++ .../bme_test/function/platform.mcfunction | 3 ++ .../data/bme_test/function/spawn.mcfunction | 36 +++++++++++++++++++ .../datapack/bluemap-entity-test/pack.mcmeta | 9 +++++ 35 files changed, 295 insertions(+) create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/aquatic.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/armadillo.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/axolotl.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/bee.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/camel.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/cat.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/chested_horse.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/chicken.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/copper_golem.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/cow.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/fox.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/frog.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/ghast.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/golem.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_baby.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_markings_0.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_markings_1.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_markings_2.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_markings_3.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_markings_4.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/llama.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/misc.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/ocelot.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/pig.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/sheep.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/sheep_states.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/skeleton.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/trader_llama.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/tropical_fish.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/undead_horse.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/zombie.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/kill.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/platform.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/spawn.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/pack.mcmeta diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/aquatic.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/aquatic.mcfunction new file mode 100644 index 0000000..d78f24e --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/aquatic.mcfunction @@ -0,0 +1,14 @@ +# aquatic (13 entities) +summon minecraft:squid ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:squid ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} +summon minecraft:glow_squid ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:glow_squid ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} +summon minecraft:dolphin ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:dolphin ~15 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} +summon minecraft:cod ~18 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:salmon ~21 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:pufferfish ~24 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],PuffState:0} +summon minecraft:pufferfish ~27 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],PuffState:1} +summon minecraft:pufferfish ~30 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],PuffState:2} +summon minecraft:guardian ~33 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:tadpole ~36 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/armadillo.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/armadillo.mcfunction new file mode 100644 index 0000000..aa79a11 --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/armadillo.mcfunction @@ -0,0 +1,5 @@ +# armadillo (4 entities) +summon minecraft:armadillo ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],state:"idle"} +summon minecraft:armadillo ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],state:"scared"} +summon minecraft:armadillo ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],state:"idle",Age:-24000} +summon minecraft:armadillo ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],state:"scared",Age:-24000} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/axolotl.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/axolotl.mcfunction new file mode 100644 index 0000000..9e216b8 --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/axolotl.mcfunction @@ -0,0 +1,7 @@ +# axolotl (6 entities) +summon minecraft:axolotl ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0} +summon minecraft:axolotl ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:1} +summon minecraft:axolotl ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:2} +summon minecraft:axolotl ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:3} +summon minecraft:axolotl ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:4} +summon minecraft:axolotl ~15 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,Age:-24000} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/bee.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/bee.mcfunction new file mode 100644 index 0000000..e973df6 --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/bee.mcfunction @@ -0,0 +1,5 @@ +# bee (4 entities) +summon minecraft:bee ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:bee ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],HasNectar:1} +summon minecraft:bee ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],HasStung:1b} +summon minecraft:bee ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/camel.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/camel.mcfunction new file mode 100644 index 0000000..82c588d --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/camel.mcfunction @@ -0,0 +1,5 @@ +# camel (4 entities) +summon minecraft:camel ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:camel ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} +summon minecraft:camel_husk ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:camel_husk ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/cat.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/cat.mcfunction new file mode 100644 index 0000000..eda3c59 --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/cat.mcfunction @@ -0,0 +1,15 @@ +# cat (14 entities) +summon minecraft:cat ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:tabby"} +summon minecraft:cat ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:black"} +summon minecraft:cat ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:red"} +summon minecraft:cat ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:siamese"} +summon minecraft:cat ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:british_shorthair"} +summon minecraft:cat ~15 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:calico"} +summon minecraft:cat ~18 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:persian"} +summon minecraft:cat ~21 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:ragdoll"} +summon minecraft:cat ~24 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:white"} +summon minecraft:cat ~27 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:jellie"} +summon minecraft:cat ~30 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:all_black"} +summon minecraft:cat ~33 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:tabby",Sitting:1b} +summon minecraft:cat ~36 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:tabby",Age:-24000} +summon minecraft:cat ~39 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:calico",Age:-24000} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/chested_horse.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/chested_horse.mcfunction new file mode 100644 index 0000000..3f5b855 --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/chested_horse.mcfunction @@ -0,0 +1,7 @@ +# chested_horse (6 entities) +summon minecraft:donkey ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:donkey ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],ChestedHorse:1b} +summon minecraft:donkey ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} +summon minecraft:mule ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:mule ~16 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],ChestedHorse:1b} +summon minecraft:mule ~20 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/chicken.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/chicken.mcfunction new file mode 100644 index 0000000..298fdc8 --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/chicken.mcfunction @@ -0,0 +1,7 @@ +# chicken (6 entities) +summon minecraft:chicken ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:temperate"} +summon minecraft:chicken ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:warm"} +summon minecraft:chicken ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:cold"} +summon minecraft:chicken ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:temperate",Age:-24000} +summon minecraft:chicken ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:warm",Age:-24000} +summon minecraft:chicken ~15 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:cold",Age:-24000} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/copper_golem.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/copper_golem.mcfunction new file mode 100644 index 0000000..3c1fcc2 --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/copper_golem.mcfunction @@ -0,0 +1,5 @@ +# copper_golem (4 entities) +summon minecraft:copper_golem ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],weather_state:"unaffected"} +summon minecraft:copper_golem ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],weather_state:"exposed"} +summon minecraft:copper_golem ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],weather_state:"weathered"} +summon minecraft:copper_golem ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],weather_state:"oxidized"} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/cow.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/cow.mcfunction new file mode 100644 index 0000000..f14f47d --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/cow.mcfunction @@ -0,0 +1,7 @@ +# cow (6 entities) +summon minecraft:cow ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:temperate"} +summon minecraft:cow ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:warm"} +summon minecraft:cow ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:cold"} +summon minecraft:cow ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:temperate",Age:-24000} +summon minecraft:cow ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:warm",Age:-24000} +summon minecraft:cow ~15 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:cold",Age:-24000} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/fox.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/fox.mcfunction new file mode 100644 index 0000000..2c98219 --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/fox.mcfunction @@ -0,0 +1,7 @@ +# fox (6 entities) +summon minecraft:fox ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Type:"red"} +summon minecraft:fox ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Type:"snow"} +summon minecraft:fox ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Type:"red",Sitting:1b} +summon minecraft:fox ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Type:"red",Sleeping:1b} +summon minecraft:fox ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Type:"red",Age:-24000} +summon minecraft:fox ~15 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Type:"snow",Age:-24000} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/frog.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/frog.mcfunction new file mode 100644 index 0000000..70d006e --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/frog.mcfunction @@ -0,0 +1,4 @@ +# frog (3 entities) +summon minecraft:frog ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:temperate"} +summon minecraft:frog ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:warm"} +summon minecraft:frog ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:cold"} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/ghast.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/ghast.mcfunction new file mode 100644 index 0000000..6a6a2b5 --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/ghast.mcfunction @@ -0,0 +1,4 @@ +# ghast (3 entities) +summon minecraft:ghast ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:happy_ghast ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:happy_ghast ~24 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/golem.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/golem.mcfunction new file mode 100644 index 0000000..9ffbc50 --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/golem.mcfunction @@ -0,0 +1,4 @@ +# golem (3 entities) +summon minecraft:snow_golem ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Pumpkin:1b} +summon minecraft:snow_golem ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Pumpkin:0b} +summon minecraft:iron_golem ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_baby.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_baby.mcfunction new file mode 100644 index 0000000..78e2df0 --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_baby.mcfunction @@ -0,0 +1,8 @@ +# horse_baby (7 entities) +summon minecraft:horse ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,Age:-24000} +summon minecraft:horse ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:1,Age:-24000} +summon minecraft:horse ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:2,Age:-24000} +summon minecraft:horse ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:3,Age:-24000} +summon minecraft:horse ~16 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:4,Age:-24000} +summon minecraft:horse ~20 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:5,Age:-24000} +summon minecraft:horse ~24 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:6,Age:-24000} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_markings_0.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_markings_0.mcfunction new file mode 100644 index 0000000..ad41d39 --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_markings_0.mcfunction @@ -0,0 +1,8 @@ +# horse_markings_0 (7 entities) +summon minecraft:horse ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0} +summon minecraft:horse ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:1} +summon minecraft:horse ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:2} +summon minecraft:horse ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:3} +summon minecraft:horse ~16 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:4} +summon minecraft:horse ~20 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:5} +summon minecraft:horse ~24 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:6} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_markings_1.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_markings_1.mcfunction new file mode 100644 index 0000000..09200dc --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_markings_1.mcfunction @@ -0,0 +1,8 @@ +# horse_markings_1 (7 entities) +summon minecraft:horse ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:256} +summon minecraft:horse ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:257} +summon minecraft:horse ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:258} +summon minecraft:horse ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:259} +summon minecraft:horse ~16 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:260} +summon minecraft:horse ~20 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:261} +summon minecraft:horse ~24 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:262} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_markings_2.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_markings_2.mcfunction new file mode 100644 index 0000000..5558aa1 --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_markings_2.mcfunction @@ -0,0 +1,8 @@ +# horse_markings_2 (7 entities) +summon minecraft:horse ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:512} +summon minecraft:horse ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:513} +summon minecraft:horse ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:514} +summon minecraft:horse ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:515} +summon minecraft:horse ~16 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:516} +summon minecraft:horse ~20 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:517} +summon minecraft:horse ~24 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:518} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_markings_3.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_markings_3.mcfunction new file mode 100644 index 0000000..a1698f9 --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_markings_3.mcfunction @@ -0,0 +1,8 @@ +# horse_markings_3 (7 entities) +summon minecraft:horse ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:768} +summon minecraft:horse ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:769} +summon minecraft:horse ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:770} +summon minecraft:horse ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:771} +summon minecraft:horse ~16 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:772} +summon minecraft:horse ~20 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:773} +summon minecraft:horse ~24 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:774} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_markings_4.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_markings_4.mcfunction new file mode 100644 index 0000000..a0acca6 --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_markings_4.mcfunction @@ -0,0 +1,8 @@ +# horse_markings_4 (7 entities) +summon minecraft:horse ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:1024} +summon minecraft:horse ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:1025} +summon minecraft:horse ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:1026} +summon minecraft:horse ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:1027} +summon minecraft:horse ~16 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:1028} +summon minecraft:horse ~20 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:1029} +summon minecraft:horse ~24 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:1030} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/llama.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/llama.mcfunction new file mode 100644 index 0000000..f49ccde --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/llama.mcfunction @@ -0,0 +1,24 @@ +# llama (23 entities) +summon minecraft:llama ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0} +summon minecraft:llama ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:1} +summon minecraft:llama ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:2} +summon minecraft:llama ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:3} +summon minecraft:llama ~16 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,ChestedHorse:1b} +summon minecraft:llama ~20 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,Age:-24000} +summon minecraft:llama ~24 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:2,Age:-24000} +summon minecraft:llama ~28 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:white_carpet",count:1}}} +summon minecraft:llama ~32 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:orange_carpet",count:1}}} +summon minecraft:llama ~36 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:magenta_carpet",count:1}}} +summon minecraft:llama ~40 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:light_blue_carpet",count:1}}} +summon minecraft:llama ~44 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:yellow_carpet",count:1}}} +summon minecraft:llama ~48 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:lime_carpet",count:1}}} +summon minecraft:llama ~52 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:pink_carpet",count:1}}} +summon minecraft:llama ~56 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:gray_carpet",count:1}}} +summon minecraft:llama ~60 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:light_gray_carpet",count:1}}} +summon minecraft:llama ~64 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:cyan_carpet",count:1}}} +summon minecraft:llama ~68 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:purple_carpet",count:1}}} +summon minecraft:llama ~72 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:blue_carpet",count:1}}} +summon minecraft:llama ~76 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:brown_carpet",count:1}}} +summon minecraft:llama ~80 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:green_carpet",count:1}}} +summon minecraft:llama ~84 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:red_carpet",count:1}}} +summon minecraft:llama ~88 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:black_carpet",count:1}}} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/misc.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/misc.mcfunction new file mode 100644 index 0000000..399eec5 --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/misc.mcfunction @@ -0,0 +1,5 @@ +# misc (4 entities) +summon minecraft:bat ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:allay ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:vex ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:breeze ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/ocelot.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/ocelot.mcfunction new file mode 100644 index 0000000..36ba7d1 --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/ocelot.mcfunction @@ -0,0 +1,4 @@ +# ocelot (3 entities) +summon minecraft:ocelot ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:ocelot ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Sitting:1} +summon minecraft:ocelot ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/pig.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/pig.mcfunction new file mode 100644 index 0000000..ffcf950 --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/pig.mcfunction @@ -0,0 +1,8 @@ +# pig (7 entities) +summon minecraft:pig ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:temperate"} +summon minecraft:pig ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:warm"} +summon minecraft:pig ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:cold"} +summon minecraft:pig ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:temperate",Age:-24000} +summon minecraft:pig ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:warm",Age:-24000} +summon minecraft:pig ~15 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:cold",Age:-24000} +summon minecraft:pig ~18 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:temperate",Saddle:1b} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/sheep.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/sheep.mcfunction new file mode 100644 index 0000000..de7ee98 --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/sheep.mcfunction @@ -0,0 +1,17 @@ +# sheep (16 entities) +summon minecraft:sheep ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:0b} +summon minecraft:sheep ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:1b} +summon minecraft:sheep ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:2b} +summon minecraft:sheep ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:3b} +summon minecraft:sheep ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:4b} +summon minecraft:sheep ~15 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:5b} +summon minecraft:sheep ~18 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:6b} +summon minecraft:sheep ~21 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:7b} +summon minecraft:sheep ~24 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:8b} +summon minecraft:sheep ~27 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:9b} +summon minecraft:sheep ~30 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:10b} +summon minecraft:sheep ~33 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:11b} +summon minecraft:sheep ~36 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:12b} +summon minecraft:sheep ~39 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:13b} +summon minecraft:sheep ~42 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:14b} +summon minecraft:sheep ~45 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:15b} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/sheep_states.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/sheep_states.mcfunction new file mode 100644 index 0000000..a221624 --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/sheep_states.mcfunction @@ -0,0 +1,8 @@ +# sheep_states (7 entities) +summon minecraft:sheep ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:0b,Sheared:1b} +summon minecraft:sheep ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:15b,Sheared:1b} +summon minecraft:sheep ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:14b,Sheared:1b} +summon minecraft:sheep ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:0b,Age:-24000} +summon minecraft:sheep ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:4b,Age:-24000} +summon minecraft:sheep ~15 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:14b,Age:-24000} +summon minecraft:sheep ~18 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:0b,Sheared:1b,Age:-24000} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/skeleton.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/skeleton.mcfunction new file mode 100644 index 0000000..56fc6bb --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/skeleton.mcfunction @@ -0,0 +1,6 @@ +# skeleton (5 entities) +summon minecraft:skeleton ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:wither_skeleton ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:stray ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:bogged ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:parched ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/trader_llama.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/trader_llama.mcfunction new file mode 100644 index 0000000..4ee7db9 --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/trader_llama.mcfunction @@ -0,0 +1,7 @@ +# trader_llama (6 entities) +summon minecraft:trader_llama ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0} +summon minecraft:trader_llama ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:1} +summon minecraft:trader_llama ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:2} +summon minecraft:trader_llama ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:3} +summon minecraft:trader_llama ~16 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,ChestedHorse:1b} +summon minecraft:trader_llama ~20 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,Age:-24000} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/tropical_fish.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/tropical_fish.mcfunction new file mode 100644 index 0000000..0e7905f --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/tropical_fish.mcfunction @@ -0,0 +1,10 @@ +# tropical_fish (9 entities) +summon minecraft:tropical_fish ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0} +summon minecraft:tropical_fish ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:1} +summon minecraft:tropical_fish ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:65536} +summon minecraft:tropical_fish ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:65537} +summon minecraft:tropical_fish ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:16777216} +summon minecraft:tropical_fish ~15 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:16777217} +summon minecraft:tropical_fish ~18 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:50790656} +summon minecraft:tropical_fish ~21 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:67108865} +summon minecraft:tropical_fish ~24 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:117506305} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/undead_horse.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/undead_horse.mcfunction new file mode 100644 index 0000000..134e25d --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/undead_horse.mcfunction @@ -0,0 +1,5 @@ +# undead_horse (4 entities) +summon minecraft:skeleton_horse ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:skeleton_horse ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} +summon minecraft:zombie_horse ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:zombie_horse ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/zombie.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/zombie.mcfunction new file mode 100644 index 0000000..b085d1e --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/zombie.mcfunction @@ -0,0 +1,7 @@ +# zombie (6 entities) +summon minecraft:zombie ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:zombie ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],IsBaby:1b} +summon minecraft:husk ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:husk ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],IsBaby:1b} +summon minecraft:drowned ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:drowned ~15 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],IsBaby:1b} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/kill.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/kill.mcfunction new file mode 100644 index 0000000..4672431 --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/kill.mcfunction @@ -0,0 +1,2 @@ + +kill @e[tag=bme_test] diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/platform.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/platform.mcfunction new file mode 100644 index 0000000..2e80c79 --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/platform.mcfunction @@ -0,0 +1,3 @@ + +fill ~-2 ~-1 ~-2 ~90 ~-1 ~147 minecraft:white_concrete +fill ~-2 ~ ~-2 ~90 ~8 ~147 minecraft:air diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/spawn.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/spawn.mcfunction new file mode 100644 index 0000000..8c86dac --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/spawn.mcfunction @@ -0,0 +1,36 @@ + +function bme_test:kill + +execute positioned ~ ~ ~0 run function bme_test:group/sheep +execute positioned ~ ~ ~4 run function bme_test:group/sheep_states +execute positioned ~ ~ ~8 run function bme_test:group/cow +execute positioned ~ ~ ~12 run function bme_test:group/pig +execute positioned ~ ~ ~16 run function bme_test:group/chicken +execute positioned ~ ~ ~20 run function bme_test:group/cat +execute positioned ~ ~ ~24 run function bme_test:group/ocelot +execute positioned ~ ~ ~28 run function bme_test:group/fox +execute positioned ~ ~ ~32 run function bme_test:group/frog +execute positioned ~ ~ ~36 run function bme_test:group/axolotl +execute positioned ~ ~ ~40 run function bme_test:group/bee +execute positioned ~ ~ ~44 run function bme_test:group/llama +execute positioned ~ ~ ~49 run function bme_test:group/trader_llama +execute positioned ~ ~ ~54 run function bme_test:group/horse_markings_0 +execute positioned ~ ~ ~59 run function bme_test:group/horse_markings_1 +execute positioned ~ ~ ~64 run function bme_test:group/horse_markings_2 +execute positioned ~ ~ ~69 run function bme_test:group/horse_markings_3 +execute positioned ~ ~ ~74 run function bme_test:group/horse_markings_4 +execute positioned ~ ~ ~79 run function bme_test:group/horse_baby +execute positioned ~ ~ ~84 run function bme_test:group/chested_horse +execute positioned ~ ~ ~89 run function bme_test:group/undead_horse +execute positioned ~ ~ ~94 run function bme_test:group/zombie +execute positioned ~ ~ ~98 run function bme_test:group/skeleton +execute positioned ~ ~ ~102 run function bme_test:group/armadillo +execute positioned ~ ~ ~106 run function bme_test:group/camel +execute positioned ~ ~ ~111 run function bme_test:group/copper_golem +execute positioned ~ ~ ~115 run function bme_test:group/golem +execute positioned ~ ~ ~120 run function bme_test:group/aquatic +execute positioned ~ ~ ~124 run function bme_test:group/tropical_fish +execute positioned ~ ~ ~128 run function bme_test:group/ghast +execute positioned ~ ~ ~142 run function bme_test:group/misc + +tellraw @s {"text":"[bme] spawned 214 test-entities in 31 groups","color":"green"} diff --git a/generator/datapack/bluemap-entity-test/pack.mcmeta b/generator/datapack/bluemap-entity-test/pack.mcmeta new file mode 100644 index 0000000..58e5006 --- /dev/null +++ b/generator/datapack/bluemap-entity-test/pack.mcmeta @@ -0,0 +1,9 @@ +{ + "pack": { + "description": "BlueMap entity test-scene: spawns every supported entity-variant on a grid", + "pack_format": 100, + "min_format": 48, + "max_format": 9999, + "supported_formats": { "min_inclusive": 48, "max_inclusive": 9999 } + } +} \ No newline at end of file From 73ef79a2da9e8b2bb95d6d519214cbca440dd300 Mon Sep 17 00:00:00 2001 From: miraculixx Date: Tue, 11 Aug 2026 20:18:55 +0200 Subject: [PATCH 05/34] Reflect changed path structure into renderer --- generator/config/split-parts.json | 9 ++ generator/config/textures.json | 91 ++++++++++++++----- .../bluemap/entities/generator/Geometry.java | 12 +++ .../bluemap/entities/generator/Main.java | 36 +++++++- .../bluemap/entities/generator/ModelJson.java | 3 +- .../entities/generator/ModelWriter.java | 5 + .../entities/generator/TextureResolver.java | 57 ++++++++++-- .../entities/renderer/ArmadilloRenderer.java | 4 +- .../entities/renderer/AxolotlRenderer.java | 4 +- .../entities/renderer/BeeRenderer.java | 4 +- .../entities/renderer/CamelRenderer.java | 8 +- .../entities/renderer/CatRenderer.java | 4 +- .../renderer/ChestedHorseRenderer.java | 35 ++++--- .../entities/renderer/ChickenRenderer.java | 10 +- .../renderer/CopperGolemRenderer.java | 8 +- .../entities/renderer/CowRenderer.java | 10 +- .../entities/renderer/DolphinRenderer.java | 4 +- .../entities/renderer/DrownedRenderer.java | 4 +- .../entities/renderer/FoxRenderer.java | 8 +- .../entities/renderer/FrogRenderer.java | 4 +- .../entities/renderer/GhastRenderer.java | 6 +- .../entities/renderer/HorseRenderer.java | 9 +- .../renderer/HostileHorseRenderer.java | 8 +- .../entities/renderer/HuskRenderer.java | 4 +- .../entities/renderer/LlamaRenderer.java | 31 +++---- .../entities/renderer/OcelotRenderer.java | 4 +- .../entities/renderer/PigRenderer.java | 10 +- .../entities/renderer/SheepRenderer.java | 8 +- .../entities/renderer/SkeletonRenderer.java | 10 +- .../entities/renderer/SnowGolemRenderer.java | 2 +- .../entities/renderer/SquidRenderer.java | 8 +- .../renderer/TropicalFishRenderer.java | 2 +- .../entities/renderer/ZombieRenderer.java | 4 +- 33 files changed, 271 insertions(+), 155 deletions(-) create mode 100644 generator/config/split-parts.json diff --git a/generator/config/split-parts.json b/generator/config/split-parts.json new file mode 100644 index 0000000..c32bfa5 --- /dev/null +++ b/generator/config/split-parts.json @@ -0,0 +1,9 @@ +{ + "donkey#main": { "chest": ["body/left_chest", "body/right_chest"] }, + "mule#main": { "chest": ["body/left_chest", "body/right_chest"] }, + + "llama#main": { "chest": ["left_chest", "right_chest"] }, + "llama_baby#main": { "chest": ["left_chest", "right_chest"] }, + "trader_llama#main": { "chest": ["left_chest", "right_chest"] }, + "trader_llama_baby#main": { "chest": ["left_chest", "right_chest"] } +} diff --git a/generator/config/textures.json b/generator/config/textures.json index 3f494d6..cc16e34 100644 --- a/generator/config/textures.json +++ b/generator/config/textures.json @@ -28,28 +28,71 @@ "entity/fish/tropical_b_pattern_6" ], - "copper_golem#main": [ - "entity/copper_golem/copper_golem", - "entity/copper_golem/copper_golem_exposed", - "entity/copper_golem/copper_golem_weathered", - "entity/copper_golem/copper_golem_oxidized" - ], - "copper_golem_running#main": [ - "entity/copper_golem/copper_golem", - "entity/copper_golem/copper_golem_exposed", - "entity/copper_golem/copper_golem_weathered", - "entity/copper_golem/copper_golem_oxidized" - ], - "copper_golem_sitting#main": [ - "entity/copper_golem/copper_golem", - "entity/copper_golem/copper_golem_exposed", - "entity/copper_golem/copper_golem_weathered", - "entity/copper_golem/copper_golem_oxidized" - ], - "copper_golem_star#main": [ - "entity/copper_golem/copper_golem", - "entity/copper_golem/copper_golem_exposed", - "entity/copper_golem/copper_golem_weathered", - "entity/copper_golem/copper_golem_oxidized" - ] + "copper_golem#main": { + "unaffected": "entity/copper_golem/copper_golem", + "exposed": "entity/copper_golem/copper_golem_exposed", + "weathered": "entity/copper_golem/copper_golem_weathered", + "oxidized": "entity/copper_golem/copper_golem_oxidized" + }, + "copper_golem_running#main": { + "unaffected": "entity/copper_golem/copper_golem", + "exposed": "entity/copper_golem/copper_golem_exposed", + "weathered": "entity/copper_golem/copper_golem_weathered", + "oxidized": "entity/copper_golem/copper_golem_oxidized" + }, + "copper_golem_sitting#main": { + "unaffected": "entity/copper_golem/copper_golem", + "exposed": "entity/copper_golem/copper_golem_exposed", + "weathered": "entity/copper_golem/copper_golem_weathered", + "oxidized": "entity/copper_golem/copper_golem_oxidized" + }, + "copper_golem_star#main": { + "unaffected": "entity/copper_golem/copper_golem", + "exposed": "entity/copper_golem/copper_golem_exposed", + "weathered": "entity/copper_golem/copper_golem_weathered", + "oxidized": "entity/copper_golem/copper_golem_oxidized" + }, + + "fox#main": { + "red": "entity/fox/fox", + "snow": "entity/fox/fox_snow" + }, + "fox_baby#main": { + "red": "entity/fox/fox_baby", + "snow": "entity/fox/fox_snow_baby" + }, + + "camel#main": { + "camel": "entity/camel/camel", + "husk": "entity/camel/camel_husk" + }, + "camel_baby#main": { + "camel": "entity/camel/camel_baby", + "husk": "entity/camel/camel_husk" + }, + + "llama#main": { + "creamy": "entity/llama/llama_creamy", + "white": "entity/llama/llama_white", + "brown": "entity/llama/llama_brown", + "gray": "entity/llama/llama_gray" + }, + "llama_baby#main": { + "creamy": "entity/llama/llama_creamy_baby", + "white": "entity/llama/llama_white_baby", + "brown": "entity/llama/llama_brown_baby", + "gray": "entity/llama/llama_gray_baby" + }, + "trader_llama#main": { + "creamy": "entity/llama/llama_creamy", + "white": "entity/llama/llama_white", + "brown": "entity/llama/llama_brown", + "gray": "entity/llama/llama_gray" + }, + "trader_llama_baby#main": { + "creamy": "entity/llama/llama_creamy_baby", + "white": "entity/llama/llama_white_baby", + "brown": "entity/llama/llama_brown_baby", + "gray": "entity/llama/llama_gray_baby" + } } diff --git a/generator/src/main/java/de/bluecolored/bluemap/entities/generator/Geometry.java b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/Geometry.java index 6f17ce5..e160d0c 100644 --- a/generator/src/main/java/de/bluecolored/bluemap/entities/generator/Geometry.java +++ b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/Geometry.java @@ -32,6 +32,18 @@ */ record Geometry(int textureWidth, int textureHeight, List elements, List warnings) { + /** The same geometry with only the elements whose part-name matches one of the given part-paths. */ + Geometry filter(List parts, boolean keepMatching) { + List filtered = elements.stream() + .filter(element -> matches(element.name(), parts) == keepMatching) + .toList(); + return new Geometry(textureWidth, textureHeight, filtered, warnings); + } + + private static boolean matches(String name, List parts) { + return parts.stream().anyMatch(part -> name.equals(part) || name.startsWith(part + "/") || name.startsWith(part + "_")); + } + /** * @param rotation nullable, {x, y, z} in degrees, applied by bluemap as rotateYXZ around {@code rotationOrigin} * @param faces direction ("north", "up", ...) to uv {x1, y1, x2, y2} in 16-space diff --git a/generator/src/main/java/de/bluecolored/bluemap/entities/generator/Main.java b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/Main.java index e43229b..c5e4396 100644 --- a/generator/src/main/java/de/bluecolored/bluemap/entities/generator/Main.java +++ b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/Main.java @@ -57,9 +57,11 @@ public final class Main { private static final String CONFIG_TEXTURES = "textures.json"; private static final String CONFIG_VARIANT_MODELS = "variant-models.json"; private static final String CONFIG_EQUIPMENT = "equipment.json"; + private static final String CONFIG_SPLIT_PARTS = "split-parts.json"; private final Arguments arguments; private final Report report = new Report(); + private Map>> splitParts = Map.of(); private Main(Arguments arguments) { this.arguments = arguments; @@ -76,6 +78,8 @@ private void run() throws IOException { Map layers = new TreeMap<>(Main::compare); layers.putAll(LayerDefinitions.createRoots()); + splitParts = readConfig(CONFIG_SPLIT_PARTS, new TypeToken<>() {}); + try (McAssets assets = new McAssets(arguments.clientJar)) { Set models = new LinkedHashSet<>(); layers.keySet().forEach(layer -> models.add(layer.model().getPath())); @@ -93,6 +97,11 @@ private void run() throws IOException { for (Map.Entry entry : layers.entrySet()) generate(entry.getKey(), entry.getValue(), textures, written); + for (TextureResolver.Alias alias : textures.aliases()) { + if (!written.contains(alias.target() + ".json")) continue; + write(alias.path(), ModelWriter.writeAlias(alias.target()), written); + } + removeStale(written); writeIndex(written); } @@ -107,7 +116,7 @@ private void generate( ) throws IOException { String model = location.model().getPath(); String layer = location.layer(); - String key = location.model() + "#" + layer; + String key = model + "#" + layer; if (!arguments.include.matcher(key).find()) return; if (arguments.exclude != null && arguments.exclude.matcher(key).find()) return; @@ -124,11 +133,30 @@ private void generate( if (resolution.isEmpty()) report.unresolved(key); else report.resolved(key, resolution.source(), resolution.variants().size()); - String base = model + "/" + layer; - write(base, ModelWriter.write(geometry, resolution.texture(), arguments.minecraftVersion, key), written); + // parts minecraft only shows sometimes (the chest of a donkey, ...) become models of their own + Geometry remaining = geometry; + for (Map.Entry> group : splitParts.getOrDefault(key, Map.of()).entrySet()) { + Geometry parts = geometry.filter(group.getValue(), true); + if (parts.elements().isEmpty()) { + report.warning(key + ": no parts matched the split-group '" + group.getKey() + "'"); + continue; + } + + writeModel(model + "/" + group.getKey(), parts, resolution, key, written); + remaining = remaining.filter(group.getValue(), false); + } + + writeModel(model + "/" + layer, remaining, resolution, key, written); + } + + private void writeModel( + String path, Geometry geometry, TextureResolver.Resolution resolution, + String key, Set written + ) throws IOException { + write(path, ModelWriter.write(geometry, resolution.texture(), arguments.minecraftVersion, key), written); for (TextureResolver.Variant variant : resolution.variants()) - write(base + "_" + variant.suffix(), ModelWriter.writeVariant(base, variant.texture()), written); + write(path + "_" + variant.suffix(), ModelWriter.writeVariant(path, variant.texture()), written); } private void write(String name, String generated, Set written) throws IOException { diff --git a/generator/src/main/java/de/bluecolored/bluemap/entities/generator/ModelJson.java b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/ModelJson.java index 5126d50..6ec12c0 100644 --- a/generator/src/main/java/de/bluecolored/bluemap/entities/generator/ModelJson.java +++ b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/ModelJson.java @@ -66,7 +66,8 @@ static ModelJson geometry(Geometry geometry, String texture, String minecraftVer } static ModelJson variant(String parent, String texture) { - return new ModelJson(null, null, null, "minecraft:entity/" + parent, Map.of("0", texture), null); + Map textures = texture == null ? null : Map.of("0", texture); + return new ModelJson(null, null, null, "minecraft:entity/" + parent, textures, null); } private static Element element(Geometry.Element element) { diff --git a/generator/src/main/java/de/bluecolored/bluemap/entities/generator/ModelWriter.java b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/ModelWriter.java index d891908..74da3f0 100644 --- a/generator/src/main/java/de/bluecolored/bluemap/entities/generator/ModelWriter.java +++ b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/ModelWriter.java @@ -67,6 +67,11 @@ static String writeVariant(String parent, String texture) { return write(ModelJson.variant(parent, texture)); } + /** A model that is nothing but a second name for an already written one. */ + static String writeAlias(String target) { + return write(ModelJson.variant(target, null)); + } + private static String write(ModelJson model) { StringWriter target = new StringWriter(); try (JsonWriter writer = new JsonWriter(target)) { diff --git a/generator/src/main/java/de/bluecolored/bluemap/entities/generator/TextureResolver.java b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/TextureResolver.java index 812bf2c..fe32581 100644 --- a/generator/src/main/java/de/bluecolored/bluemap/entities/generator/TextureResolver.java +++ b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/TextureResolver.java @@ -50,11 +50,15 @@ final class TextureResolver { private final Map equipmentOverrides; private final Set knownModels; private final Map> dataVariants = new TreeMap<>(); + private final List aliases = new ArrayList<>(); private final List warnings = new ArrayList<>(); /** A texture-only variation of a model-layer, written as an additional model with the given name-suffix. */ record Variant(String suffix, String texture) {} + /** A model that only points to another one, so variants stay reachable under the entity they belong to. */ + record Alias(String path, String target) {} + record Resolution(String texture, List variants, String source) { boolean isEmpty() { @@ -82,6 +86,10 @@ List warnings() { return Collections.unmodifiableList(warnings); } + List aliases() { + return Collections.unmodifiableList(aliases); + } + Resolution resolve(String model, String layer) { JsonElement override = textureOverrides.get(model + "#" + layer); if (override != null) return fromOverride(override); @@ -118,11 +126,18 @@ Resolution resolve(String model, String layer) { return new Resolution(null, List.of(), "unresolved"); } + /** A pinned texture: a single texture, an array (suffix = texture-name) or an object (suffix = key). */ private Resolution fromOverride(JsonElement override) { - if (!override.isJsonArray()) return new Resolution(override.getAsString(), List.of(), "config"); - List variants = new ArrayList<>(); - for (JsonElement texture : override.getAsJsonArray()) variants.add(variant(texture.getAsString(), null)); + + if (override.isJsonArray()) + for (JsonElement texture : override.getAsJsonArray()) variants.add(variant(texture.getAsString(), null)); + else if (override.isJsonObject()) + override.getAsJsonObject().asMap() + .forEach((suffix, texture) -> variants.add(new Variant(suffix, texture.getAsString()))); + else + return new Resolution(override.getAsString(), List.of(), "config"); + return new Resolution(null, variants, "config"); } @@ -262,25 +277,49 @@ private List fromRendererClasses(String model, String layer) { private void indexDataVariants() { assets.variants().forEach((entity, variants) -> { for (McAssets.Variant variant : variants) { - String adultModel = targetModel(entity, variant.model()); - if (adultModel == null) { + String model = targetModel(entity, variant.model()); + if (model == null) { if (knownModels.contains(entity)) warnings.add("variant " + entity + "/" + variant.name() + ": no model '" + variant.model() + "'"); continue; } - register(adultModel, variant, variant.adult()); - register(adultModel + BABY_SUFFIX, variant, variant.baby().isEmpty() ? variant.adult() : variant.baby()); + Map adult = variant.adult(); + Map baby = variant.baby().isEmpty() ? variant.adult() : variant.baby(); + + // not every variant-model has a baby-version (cold_pig has none), then the plain baby-model is used + String babyModel = model + BABY_SUFFIX; + if (!knownModels.contains(babyModel)) babyModel = entity + BABY_SUFFIX; + + register(model, variant, adult); + register(babyModel, variant, baby); + + // variants with an own model (cold_cow, cold_chicken, ...) also get an alias under the entity itself, + // so a renderer can always look up "entity//main_" + if (model.equals(entity)) continue; + alias(entity, model, variant, adult); + alias(entity + BABY_SUFFIX, babyModel, variant, baby); } }); } + private void alias(String model, String target, McAssets.Variant variant, Map textures) { + if (model.equals(target) || !knownModels.contains(model) || !knownModels.contains(target)) return; + textures.keySet().forEach(sub -> { + String suffix = suffix(variant, sub); + aliases.add(new Alias(model + "/main_" + suffix, target + "/main_" + suffix)); + }); + } + private void register(String model, McAssets.Variant variant, Map textures) { if (!knownModels.contains(model)) return; List list = dataVariants.computeIfAbsent(model, key -> new ArrayList<>()); - textures.forEach((sub, texture) -> - list.add(new Variant(sub.isEmpty() ? variant.name() : variant.name() + "_" + sub, texture))); + textures.forEach((sub, texture) -> list.add(new Variant(suffix(variant, sub), texture))); + } + + private static String suffix(McAssets.Variant variant, String sub) { + return sub.isEmpty() ? variant.name() : variant.name() + "_" + sub; } private String targetModel(String entity, String model) { diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/ArmadilloRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/ArmadilloRenderer.java index 8505996..c8f2df1 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/renderer/ArmadilloRenderer.java +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/ArmadilloRenderer.java @@ -39,8 +39,8 @@ public class ArmadilloRenderer extends CustomResourceModelRenderer { private final ResourcePath - ARMADILLO_ADULT = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/armadillo/armadillo_adult"), - ARMADILLO_BABY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/armadillo/armadillo_baby"), + ARMADILLO_ADULT = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/armadillo/main"), + ARMADILLO_BABY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/armadillo_baby/main"), ARMADILLO_ADULT_SCARED = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/armadillo/armadillo_adult_scared"), ARMADILLO_BABY_SCARED = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/armadillo/armadillo_baby_scared"); diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/AxolotlRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/AxolotlRenderer.java index c149570..2415e52 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/renderer/AxolotlRenderer.java +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/AxolotlRenderer.java @@ -46,10 +46,10 @@ public AxolotlRenderer(ResourcePack resourcePack, TextureGallery textureGallery, public void render(Entity entity, BlockNeighborhood block, Part part, TileModelView tileModel) { if (!(entity instanceof Axolotl axolotl)) return; - // base model "entity/axolotl/color/axolotl_{age}_{variant}" + // base model "entity/axolotl{age}/main_{variant}" boolean isBaby = axolotl.getAge() < 0; String variantName = axolotl.getVariant().toString().toLowerCase(); - String modelPath = "entity/axolotl/color/axolotl_" + (isBaby ? "baby_" : "adult_") + variantName; + String modelPath = "entity/axolotl" + (isBaby ? "_baby" : "") + "/main_" + variantName; ResourcePath model = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, modelPath); // render chosen model diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/BeeRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/BeeRenderer.java index d1ef427..d81bfd3 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/renderer/BeeRenderer.java +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/BeeRenderer.java @@ -39,8 +39,8 @@ public class BeeRenderer extends CustomResourceModelRenderer { private final ResourcePath - BEE_ADULT = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/bee/adult"), - BEE_BABY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/bee/baby"); + BEE_ADULT = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/bee/main"), + BEE_BABY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/bee_baby/main"); public BeeRenderer(ResourcePack resourcePack, TextureGallery textureGallery, RenderSettings renderSettings) { super(resourcePack, textureGallery, renderSettings); diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/CamelRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/CamelRenderer.java index eea701b..eb498fd 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/renderer/CamelRenderer.java +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/CamelRenderer.java @@ -40,10 +40,10 @@ public class CamelRenderer extends CustomResourceModelRenderer { private final ResourcePath - CAMEL_ADULT = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/camel/camel_adult"), - CAMEL_BABY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/camel/camel_baby"), - CAMEL_HUSK_ADULT = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/camel/camel_husk_adult"), - CAMEL_HUSK_BABY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/camel/camel_husk_baby"); + CAMEL_ADULT = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/camel/main_camel"), + CAMEL_BABY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/camel_baby/main_camel"), + CAMEL_HUSK_ADULT = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/camel/main_husk"), + CAMEL_HUSK_BABY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/camel_baby/main_husk"); public CamelRenderer(ResourcePack resourcePack, TextureGallery textureGallery, RenderSettings renderSettings) { super(resourcePack, textureGallery, renderSettings); diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/CatRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/CatRenderer.java index 01205ab..296e274 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/renderer/CatRenderer.java +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/CatRenderer.java @@ -46,8 +46,8 @@ public CatRenderer(ResourcePack resourcePack, TextureGallery textureGallery, Ren public void render(Entity entity, BlockNeighborhood block, Part part, TileModelView tileModel) { if (!(entity instanceof Cat cat)) return; - // choose correct model "entity/cat/color/cat_{age}_{variant}" - String modelPath = "entity/cat/color/cat_" + (cat.getAge() < 0 ? "baby_" : "adult_") + cat.getRawVariant(); + // choose correct model "entity/cat{age}/main_{variant}" + String modelPath = "entity/cat" + (cat.getAge() < 0 ? "_baby" : "") + "/main_" + cat.getRawVariant(); ResourcePath model = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, modelPath); // render chosen model diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/ChestedHorseRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/ChestedHorseRenderer.java index c081f86..9115198 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/renderer/ChestedHorseRenderer.java +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/ChestedHorseRenderer.java @@ -39,12 +39,12 @@ public class ChestedHorseRenderer extends CustomResourceModelRenderer { private final ResourcePath - MULE_HORSE_ADULT = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/horse/color/horse_adult_mule"), - MULE_HORSE_BABY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/horse/color/horse_baby_mule"), - DONKEY_HORSE_ADULT = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/horse/color/horse_adult_donkey"), - DONKEY_HORSE_BABY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/horse/color/horse_baby_donkey"), - CHEST_ADULT = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/horse/horse_adult_chest"), - CHEST_BABY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/horse/horse_baby_chest"); + MULE_HORSE_ADULT = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/mule/main"), + MULE_HORSE_BABY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/mule_baby/main"), + DONKEY_HORSE_ADULT = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/donkey/main"), + DONKEY_HORSE_BABY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/donkey_baby/main"), + MULE_CHEST = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/mule/chest"), + DONKEY_CHEST = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/donkey/chest"); public ChestedHorseRenderer(ResourcePack resourcePack, TextureGallery textureGallery, RenderSettings renderSettings) { super(resourcePack, textureGallery, renderSettings); @@ -55,28 +55,27 @@ public void render(Entity entity, BlockNeighborhood block, Part part, TileModelV if (!(entity instanceof ChestedHorse horse)) return; // render horse model - ResourcePath model; + ResourcePath model, chestModel; boolean isBaby = horse.getAge() < 0; switch (horse) { case Mule ignored -> { - if (isBaby) model = MULE_HORSE_BABY; - else model = MULE_HORSE_ADULT; + model = isBaby ? MULE_HORSE_BABY : MULE_HORSE_ADULT; + chestModel = MULE_CHEST; } case Donkey ignored -> { - if (isBaby) model = DONKEY_HORSE_BABY; - else model = DONKEY_HORSE_ADULT; + model = isBaby ? DONKEY_HORSE_BABY : DONKEY_HORSE_ADULT; + chestModel = DONKEY_CHEST; + } + default -> { + model = DONKEY_HORSE_ADULT; + chestModel = DONKEY_CHEST; } - default -> model = DONKEY_HORSE_ADULT; } super.render(entity, block, model.getResource(getModelProvider()), TintColorProvider.NO_TINT, tileModel); - // render chest model if present - if (horse.isChested()) { - ResourcePath chestModel; - if (isBaby) chestModel = CHEST_BABY; - else chestModel = CHEST_ADULT; + // render chest model if present (babies never carry chests) + if (horse.isChested() && !isBaby) super.render(entity, block, chestModel.getResource(getModelProvider()), TintColorProvider.NO_TINT, tileModel); - } // apply part transform diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/ChickenRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/ChickenRenderer.java index ecb6d5e..b9c3a8b 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/renderer/ChickenRenderer.java +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/ChickenRenderer.java @@ -46,14 +46,8 @@ public ChickenRenderer(ResourcePack resourcePack, TextureGallery textureGallery, public void render(Entity entity, BlockNeighborhood block, Part part, TileModelView tileModel) { if (!(entity instanceof AgeVariantEntity chicken)) return; - // craft model path based on "entity/chicken/{age}_{variant}" - String modelPath = "entity/chicken/"; - if (chicken.getAge() < 0) { - modelPath += "baby_"; - } else { - modelPath += "adult_"; - } - modelPath += chicken.getRawVariant(); + // craft model path based on "entity/chicken{age}/main_{variant}" + String modelPath = "entity/chicken" + (chicken.getAge() < 0 ? "_baby" : "") + "/main_" + chicken.getRawVariant(); ResourcePath model = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, modelPath); // render chosen model diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/CopperGolemRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/CopperGolemRenderer.java index 4276648..8764b12 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/renderer/CopperGolemRenderer.java +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/CopperGolemRenderer.java @@ -39,10 +39,10 @@ public class CopperGolemRenderer extends CustomResourceModelRenderer { private final ResourcePath - GOLEM_UNAFFECTED = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/copper_golem/copper_golem_statue_alive"), - GOLEM_OXIDIZED = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/copper_golem/oxidized_copper_golem_statue_alive"), - GOLEM_WEATHERED = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/copper_golem/weathered_copper_golem_statue_alive"), - GOLEM_EXPOSED = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/copper_golem/exposed_copper_golem_statue_alive"); + GOLEM_UNAFFECTED = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/copper_golem/main_unaffected"), + GOLEM_OXIDIZED = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/copper_golem/main_oxidized"), + GOLEM_WEATHERED = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/copper_golem/main_weathered"), + GOLEM_EXPOSED = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/copper_golem/main_exposed"); public CopperGolemRenderer(ResourcePack resourcePack, TextureGallery textureGallery, RenderSettings renderSettings) { super(resourcePack, textureGallery, renderSettings); diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/CowRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/CowRenderer.java index 97c41c6..707a4a8 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/renderer/CowRenderer.java +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/CowRenderer.java @@ -46,14 +46,8 @@ public CowRenderer(ResourcePack resourcePack, TextureGallery textureGallery, Ren public void render(Entity entity, BlockNeighborhood block, Part part, TileModelView tileModel) { if (!(entity instanceof AgeVariantEntity cow)) return; - // craft model path based on "entity/cow/{age}_{variant}" - String modelPath = "entity/cow/"; - if (cow.getAge() < 0) { - modelPath += "baby_"; - } else { - modelPath += "adult_"; - } - modelPath += cow.getRawVariant(); + // craft model path based on "entity/cow{age}/main_{variant}" + String modelPath = "entity/cow" + (cow.getAge() < 0 ? "_baby" : "") + "/main_" + cow.getRawVariant(); ResourcePath model = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, modelPath); // render chosen model diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/DolphinRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/DolphinRenderer.java index 3ab7dfc..03e9762 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/renderer/DolphinRenderer.java +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/DolphinRenderer.java @@ -39,8 +39,8 @@ public class DolphinRenderer extends CustomResourceModelRenderer { private final ResourcePath - DOLPHIN_ADULT = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/dolphin/adult"), - DOLPHIN_BABY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/dolphin/baby"); + DOLPHIN_ADULT = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/dolphin/main"), + DOLPHIN_BABY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/dolphin_baby/main"); public DolphinRenderer(ResourcePack resourcePack, TextureGallery textureGallery, RenderSettings renderSettings) { super(resourcePack, textureGallery, renderSettings); diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/DrownedRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/DrownedRenderer.java index 8f0e829..a420b2f 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/renderer/DrownedRenderer.java +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/DrownedRenderer.java @@ -39,8 +39,8 @@ public class DrownedRenderer extends CustomResourceModelRenderer { private final ResourcePath - ZOMBIE_ADULT = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/zombie/drowned_adult"), - ZOMBIE_BABY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/zombie/drowned_baby"); + ZOMBIE_ADULT = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/drowned/main"), + ZOMBIE_BABY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/drowned_baby/main"); public DrownedRenderer(ResourcePack resourcePack, TextureGallery textureGallery, RenderSettings renderSettings) { super(resourcePack, textureGallery, renderSettings); diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/FoxRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/FoxRenderer.java index 710322f..f06a429 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/renderer/FoxRenderer.java +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/FoxRenderer.java @@ -39,10 +39,10 @@ public class FoxRenderer extends CustomResourceModelRenderer { private final ResourcePath - FOX_ADULT_RED = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/fox/adult"), - FOX_ADULT_SNOW = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/fox/adult_snow"), - FOX_BABY_RED = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/fox/baby"), - FOX_BABY_SNOW = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/fox/baby_snow"); + FOX_ADULT_RED = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/fox/main_red"), + FOX_ADULT_SNOW = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/fox/main_snow"), + FOX_BABY_RED = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/fox_baby/main_red"), + FOX_BABY_SNOW = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/fox_baby/main_snow"); public FoxRenderer(ResourcePack resourcePack, TextureGallery textureGallery, RenderSettings renderSettings) { super(resourcePack, textureGallery, renderSettings); diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/FrogRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/FrogRenderer.java index 155483c..ba7b679 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/renderer/FrogRenderer.java +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/FrogRenderer.java @@ -46,8 +46,8 @@ public FrogRenderer(ResourcePack resourcePack, TextureGallery textureGallery, Re public void render(Entity entity, BlockNeighborhood block, Part part, TileModelView tileModel) { if (!(entity instanceof AgeVariantEntity frog)) return; - // craft model path based on "entity/frog/variant/frog_{variant}" - String modelPath = "entity/frog/variant/frog_" + frog.getRawVariant(); + // craft model path based on "entity/frog/main_{variant}" + String modelPath = "entity/frog/main_" + frog.getRawVariant(); ResourcePath model = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, modelPath); // render chosen model diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/GhastRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/GhastRenderer.java index ac87500..b9ac0c0 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/renderer/GhastRenderer.java +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/GhastRenderer.java @@ -41,9 +41,9 @@ public class GhastRenderer extends CustomResourceModelRenderer { private final ResourcePath - GHAST = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/ghast/ghast"), - HAPPY_GHAST = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/ghast/happy_ghast_adult"), - GHASTLING = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/ghast/happy_ghast_baby"); + GHAST = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/ghast/main"), + HAPPY_GHAST = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/happy_ghast/main"), + GHASTLING = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/happy_ghast_baby/main"); public GhastRenderer(ResourcePack resourcePack, TextureGallery textureGallery, RenderSettings renderSettings) { super(resourcePack, textureGallery, renderSettings); diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/HorseRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/HorseRenderer.java index 0ac8364..ca113af 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/renderer/HorseRenderer.java +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/HorseRenderer.java @@ -48,8 +48,9 @@ public void render(Entity entity, BlockNeighborhood block, Part part, TileModelV boolean isBaby = horse.getAge() < 0; - // render base model "entity/horse/color/horse_{age}_{color}" - String baseModelPath = "entity/horse/color/horse_" + (isBaby ? "baby_" : "adult_"); + // render base model "entity/horse{age}/main_{color}" + String horseModel = "entity/horse" + (isBaby ? "_baby" : ""); + String baseModelPath = horseModel + "/main_"; switch (horse.getBaseColor()) { case 0 -> baseModelPath += "white"; case 1 -> baseModelPath += "creamy"; @@ -64,8 +65,8 @@ public void render(Entity entity, BlockNeighborhood block, Part part, TileModelV super.render(entity, block, baseModel.getResource(getModelProvider()), TintColorProvider.NO_TINT, tileModel); - // render markings model "entity/horse/markings/horse_markings_{age}_{markings}" if present - String markingModelPath = "entity/horse/marking/horse_" + (isBaby ? "baby_" : "adult_"); + // render markings model "entity/horse{age}/main_markings_{markings}" if present + String markingModelPath = horseModel + "/main_markings_"; switch (horse.getMarkings()) { case 0 -> markingModelPath = null; // no markings case 1 -> markingModelPath += "white"; diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/HostileHorseRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/HostileHorseRenderer.java index c7339d2..2eef53b 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/renderer/HostileHorseRenderer.java +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/HostileHorseRenderer.java @@ -41,10 +41,10 @@ public class HostileHorseRenderer extends CustomResourceModelRenderer { private final ResourcePath - ZOMBIE_HORSE_ADULT = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/horse/color/horse_adult_zombie"), - ZOMBIE_HORSE_BABY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/horse/color/horse_baby_zombie"), - SKELETON_HORSE_ADULT = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/horse/color/horse_adult_skeleton"), - SKELETON_HORSE_BABY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/horse/color/horse_baby_skeleton"); + ZOMBIE_HORSE_ADULT = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/zombie_horse/main"), + ZOMBIE_HORSE_BABY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/zombie_horse_baby/main"), + SKELETON_HORSE_ADULT = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/skeleton_horse/main"), + SKELETON_HORSE_BABY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/skeleton_horse_baby/main"); public HostileHorseRenderer(ResourcePack resourcePack, TextureGallery textureGallery, RenderSettings renderSettings) { super(resourcePack, textureGallery, renderSettings); diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/HuskRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/HuskRenderer.java index e7014ab..821db0a 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/renderer/HuskRenderer.java +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/HuskRenderer.java @@ -39,8 +39,8 @@ public class HuskRenderer extends CustomResourceModelRenderer { private final ResourcePath - ZOMBIE_ADULT = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/zombie/husk_adult"), - ZOMBIE_BABY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/zombie/husk_baby"); + ZOMBIE_ADULT = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/husk/main"), + ZOMBIE_BABY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/husk_baby/main"); public HuskRenderer(ResourcePack resourcePack, TextureGallery textureGallery, RenderSettings renderSettings) { super(resourcePack, textureGallery, renderSettings); diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/LlamaRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/LlamaRenderer.java index e8b42cc..ebea90f 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/renderer/LlamaRenderer.java +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/LlamaRenderer.java @@ -43,9 +43,6 @@ public class LlamaRenderer extends CustomResourceModelRenderer { - private final ResourcePath - LLAMA_CHEST = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/llama/llama_chest"); - public LlamaRenderer(ResourcePack resourcePack, TextureGallery textureGallery, RenderSettings renderSettings) { super(resourcePack, textureGallery, renderSettings); } @@ -57,28 +54,28 @@ public void render(Entity entity, BlockNeighborhood block, Part part, TileModelV boolean isTraderLlama = entity instanceof TraderLlama; boolean isBaby = llama.getAge() < 0; - // base model "entity/llama/color/llama_{age}_{color}" - String baseModelPath = "entity/llama/color/llama_" + (isBaby ? "baby_" : "adult_"); - - switch (llama.getVariant()) { - case CREAMY -> baseModelPath += "creamy"; - case WHITE -> baseModelPath += "white"; - case BROWN -> baseModelPath += "brown"; - case GRAY -> baseModelPath += "gray"; - } + // base model "entity/{llama|trader_llama}{age}/main_{color}" + String llamaModel = "entity/" + (isTraderLlama ? "trader_llama" : "llama") + (isBaby ? "_baby" : ""); + String color = switch (llama.getVariant()) { + case CREAMY -> "creamy"; + case WHITE -> "white"; + case BROWN -> "brown"; + case GRAY -> "gray"; + }; - ResourcePath baseModel = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, baseModelPath); + ResourcePath baseModel = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, llamaModel + "/main_" + color); super.render(entity, block, baseModel.getResource(getModelProvider()), TintColorProvider.NO_TINT, tileModel); // chest model (only if adult) if (llama.isWithChest() && !isBaby) { - super.render(entity, block, LLAMA_CHEST.getResource(getModelProvider()), TintColorProvider.NO_TINT, tileModel); + ResourcePath chestModel = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, llamaModel + "/chest_" + color); + super.render(entity, block, chestModel.getResource(getModelProvider()), TintColorProvider.NO_TINT, tileModel); } - // decoration model "entity/llama/carpet/llama_{age}_{color}" - String decorationModelPath = "entity/llama/carpet/llama_" + (isBaby ? "baby_" : "adult_"); + // decoration model "entity/llama{age}/decor_{color}" + String decorationModelPath = "entity/llama" + (isBaby ? "_baby" : "") + "/decor_"; switch ( Optional.ofNullable(llama.getEquipment()) @@ -108,7 +105,7 @@ public void render(Entity entity, BlockNeighborhood block, Part part, TileModelV if (decorationModelPath == null && isTraderLlama) { // trader llama without carpet uses special decoration model - decorationModelPath = "entity/llama/carpet/llama_" + (isBaby ? "baby" : "adult") + "_trader_llama"; + decorationModelPath = "entity/llama" + (isBaby ? "_baby/decor_trader_llama_baby" : "/decor_trader_llama"); } if (decorationModelPath != null) { diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/OcelotRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/OcelotRenderer.java index 1259688..67ec17b 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/renderer/OcelotRenderer.java +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/OcelotRenderer.java @@ -39,8 +39,8 @@ public class OcelotRenderer extends CustomResourceModelRenderer { private final ResourcePath - OCELOT_ADULT = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/cat/color/cat_adult_ocelot"), - OCELOT_BABY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/cat/color/cat_baby_ocelot"); + OCELOT_ADULT = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/ocelot/main"), + OCELOT_BABY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/ocelot_baby/main"); public OcelotRenderer(ResourcePack resourcePack, TextureGallery textureGallery, RenderSettings renderSettings) { super(resourcePack, textureGallery, renderSettings); diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/PigRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/PigRenderer.java index 1d44f56..fadee9a 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/renderer/PigRenderer.java +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/PigRenderer.java @@ -46,14 +46,8 @@ public PigRenderer(ResourcePack resourcePack, TextureGallery textureGallery, Ren public void render(Entity entity, BlockNeighborhood block, Part part, TileModelView tileModel) { if (!(entity instanceof Pig pig)) return; - // craft model path based on "entity/pig/{age}_{variant}" - String modelPath = "entity/pig/"; - if (pig.getAge() < 0) { - modelPath += "baby_"; - } else { - modelPath += "adult_"; - } - modelPath += pig.getRawVariant(); + // craft model path based on "entity/pig{age}/main_{variant}" + String modelPath = "entity/pig" + (pig.getAge() < 0 ? "_baby" : "") + "/main_" + pig.getRawVariant(); ResourcePath model = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, modelPath); // render chosen model diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/SheepRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/SheepRenderer.java index b60dd51..6fca3a1 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/renderer/SheepRenderer.java +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/SheepRenderer.java @@ -39,10 +39,10 @@ public class SheepRenderer extends CustomResourceModelRenderer { private final ResourcePath - SHEEP_ADULT = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/sheep/adult"), - SHEEP_BABY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/sheep/baby"), - SHEEP_ADULT_WOOL = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/sheep/adult_wool"), - SHEEP_BABY_WOOL = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/sheep/baby_wool"); + SHEEP_ADULT = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/sheep/main"), + SHEEP_BABY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/sheep_baby/main"), + SHEEP_ADULT_WOOL = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/sheep/wool"), + SHEEP_BABY_WOOL = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/sheep_baby/wool"); public SheepRenderer(ResourcePack resourcePack, TextureGallery textureGallery, RenderSettings renderSettings) { super(resourcePack, textureGallery, renderSettings); diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/SkeletonRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/SkeletonRenderer.java index cfbf845..708846e 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/renderer/SkeletonRenderer.java +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/SkeletonRenderer.java @@ -39,11 +39,11 @@ public class SkeletonRenderer extends CustomResourceModelRenderer { private final ResourcePath - SKELETON = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/skeleton/skeleton"), - WITHER_SKELETON = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/skeleton/wither_skeleton"), - STRAY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/skeleton/stray"), - BOGGED = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/skeleton/bogged"), - PARCHED = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/skeleton/parched"); + SKELETON = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/skeleton/main"), + WITHER_SKELETON = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/wither_skeleton/main"), + STRAY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/stray/main"), + BOGGED = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/bogged/main"), + PARCHED = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/parched/main"); public SkeletonRenderer(ResourcePack resourcePack, TextureGallery textureGallery, RenderSettings renderSettings) { super(resourcePack, textureGallery, renderSettings); diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/SnowGolemRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/SnowGolemRenderer.java index 63f42a6..9fa12f4 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/renderer/SnowGolemRenderer.java +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/SnowGolemRenderer.java @@ -39,7 +39,7 @@ public class SnowGolemRenderer extends CustomResourceModelRenderer { private final ResourcePath - SNOW_GOLEM = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/snow_golem"); + SNOW_GOLEM = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/snow_golem/main"); public SnowGolemRenderer(ResourcePack resourcePack, TextureGallery textureGallery, RenderSettings renderSettings) { super(resourcePack, textureGallery, renderSettings); diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/SquidRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/SquidRenderer.java index 40b21c2..15c0bfc 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/renderer/SquidRenderer.java +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/SquidRenderer.java @@ -40,10 +40,10 @@ public class SquidRenderer extends CustomResourceModelRenderer { private final ResourcePath - SQUID_ADULT = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/squid/squid_adult"), - SQUID_BABY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/squid/squid_baby"), - GLOW_SQUID_ADULT = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/squid/glow_squid_adult"), - GLOW_SQUID_BABY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/squid/glow_squid_baby"); + SQUID_ADULT = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/squid/main"), + SQUID_BABY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/squid_baby/main"), + GLOW_SQUID_ADULT = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/glow_squid/main"), + GLOW_SQUID_BABY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/glow_squid_baby/main"); public SquidRenderer(ResourcePack resourcePack, TextureGallery textureGallery, RenderSettings renderSettings) { super(resourcePack, textureGallery, renderSettings); diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/TropicalFishRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/TropicalFishRenderer.java index bdc8c6b..e6d9318 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/renderer/TropicalFishRenderer.java +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/TropicalFishRenderer.java @@ -39,7 +39,7 @@ public class TropicalFishRenderer extends CustomResourceModelRenderer { private final ResourcePath - TROPICAL_FISH = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/tropical_fish/tropical_fish"); + TROPICAL_FISH = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/tropical_fish_small/main"); public TropicalFishRenderer(ResourcePack resourcePack, TextureGallery textureGallery, RenderSettings renderSettings) { super(resourcePack, textureGallery, renderSettings); diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/ZombieRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/ZombieRenderer.java index 4bea16f..7f87608 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/renderer/ZombieRenderer.java +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/ZombieRenderer.java @@ -39,8 +39,8 @@ public class ZombieRenderer extends CustomResourceModelRenderer { private final ResourcePath - ZOMBIE_ADULT = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/zombie/zombie_adult"), - ZOMBIE_BABY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/zombie/zombie_baby"); + ZOMBIE_ADULT = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/zombie/main"), + ZOMBIE_BABY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/zombie_baby/main"); public ZombieRenderer(ResourcePack resourcePack, TextureGallery textureGallery, RenderSettings renderSettings) { super(resourcePack, textureGallery, renderSettings); From c6a5b43107c1fd314eeca2adc0bdc6da6400d517 Mon Sep 17 00:00:00 2001 From: miraculixx Date: Tue, 11 Aug 2026 21:23:46 +0200 Subject: [PATCH 06/34] update bluemap --- build.gradle.kts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index e922ce4..784fcde 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -12,13 +12,13 @@ repositories { } dependencies { - compileOnly ( "de.bluecolored:bluemap-core:5.13" ) - compileOnly ( "org.projectlombok:lombok:1.18.32" ) - annotationProcessor ( "org.projectlombok:lombok:1.18.32" ) + compileOnly ( "de.bluecolored:bluemap-core:5.23" ) + compileOnly ( "org.projectlombok:lombok:1.18.46" ) + annotationProcessor ( "org.projectlombok:lombok:1.18.46" ) } java { - toolchain.languageVersion = JavaLanguageVersion.of(21) + toolchain.languageVersion = JavaLanguageVersion.of(25) withSourcesJar() } From 5260c669d188599525769e4329d05257c016dc0d Mon Sep 17 00:00:00 2001 From: miraculixx Date: Tue, 11 Aug 2026 21:24:00 +0200 Subject: [PATCH 07/34] add a test server that loads everything needed --- .gitignore | 2 + generator/build.gradle.kts | 93 +++++++++++++++++--------------------- 2 files changed, 44 insertions(+), 51 deletions(-) diff --git a/.gitignore b/.gitignore index 0bb893c..a0a1176 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,5 @@ build gradle.properties logs +run +run-client diff --git a/generator/build.gradle.kts b/generator/build.gradle.kts index 5818057..451624f 100644 --- a/generator/build.gradle.kts +++ b/generator/build.gradle.kts @@ -1,73 +1,44 @@ -import groovy.json.JsonSlurper -import java.net.URI - plugins { java + id("net.fabricmc.fabric-loom") version "1.17.19" } val mcVersion = (findProperty("mcVersion") as String?) ?: "26.2" -val mcDir = layout.buildDirectory.dir("minecraft/$mcVersion") +val loaderVersion = (findProperty("loaderVersion") as String?) ?: "0.19.3" +val serverDir = layout.projectDirectory.dir("run") -// the generator is a tool, not part of the addon -val requested = gradle.startParameter.taskNames.any { it.startsWith(":generator") || it == "generateEntityModels" } -val available = { requested || mcDir.get().file("client.jar").asFile.isFile } +val fabricApiVersion = "0.157.0+26.2" +val bluemapVersion = "5.23-fabric" java { toolchain.languageVersion = JavaLanguageVersion.of(25) } -@Suppress("UNCHECKED_CAST") -val downloadMinecraft by tasks.registering { - description = "Downloads the vanilla minecraft client-jar and its libraries for version $mcVersion" - val target = mcDir - outputs.dir(target) - onlyIf { available() } - doLast { - val dir = target.get().asFile - val libs = dir.resolve("libs").apply { mkdirs() } - - fun fetch(url: String, file: File, size: Long) { - if (file.isFile && file.length() == size) return - logger.lifecycle("downloading ${file.name}") - URI(url).toURL().openStream().use { input -> file.outputStream().use { input.copyTo(it) } } +loom { + runs { + named("server") { + runDirectory = serverDir + jvmArguments.add("-Xmx2G") } - - val manifest = JsonSlurper() - .parse(URI("https://launchermeta.mojang.com/mc/game/version_manifest_v2.json").toURL()) as Map - val entry = (manifest["versions"] as List>) - .firstOrNull { it["id"] == mcVersion } - ?: throw GradleException("unknown minecraft version: $mcVersion") - - val version = JsonSlurper().parse(URI(entry["url"] as String).toURL()) as Map - val client = (version["downloads"] as Map)["client"] as Map - fetch(client["url"] as String, dir.resolve("client.jar"), (client["size"] as Number).toLong()) - - val wanted = mutableSetOf("client.jar") - (version["libraries"] as List>).forEach { lib -> - val name = lib["name"] as String - if (name.contains("natives") || name.startsWith("org.lwjgl")) return@forEach - val artifact = (lib["downloads"] as Map?)?.get("artifact") as Map? ?: return@forEach - val file = libs.resolve(File(artifact["path"] as String).name) - fetch(artifact["url"] as String, file, (artifact["size"] as Number).toLong()) - wanted += file.name + named("client") { + runDirectory = layout.projectDirectory.dir("run-client") } - - libs.listFiles()?.forEach { if (it.name !in wanted) it.delete() } } } -val minecraftFiles = files({ - val dir = mcDir.get().asFile - listOf(dir.resolve("client.jar")) + (dir.resolve("libs").listFiles()?.sorted() ?: emptyList()) -}) +repositories { + maven("https://api.modrinth.com/maven") +} dependencies { - compileOnly(minecraftFiles) + minecraft("com.mojang:minecraft:$mcVersion") + implementation("net.fabricmc:fabric-loader:$loaderVersion") + + localRuntime("net.fabricmc.fabric-api:fabric-api:$fabricApiVersion") + localRuntime("maven.modrinth:bluemap:$bluemapVersion") } tasks.compileJava { - dependsOn(downloadMinecraft) - onlyIf { available() } options.encoding = "utf-8" } @@ -77,7 +48,7 @@ tasks.register("generateEntityModels") { dependsOn(tasks.compileJava) javaLauncher = javaToolchains.launcherFor { languageVersion = JavaLanguageVersion.of(25) } - classpath = sourceSets.main.get().runtimeClasspath + minecraftFiles + classpath = sourceSets.main.get().runtimeClasspath mainClass = "de.bluecolored.bluemap.entities.generator.Main" // -PoutDir= writes the models somewhere else (dry-run), -Players= generates a subset only @@ -85,10 +56,11 @@ tasks.register("generateEntityModels") { val out = outDir ?: rootProject.file("src/main/resources/assets/minecraft/models/entity").absolutePath val index = if (outDir != null) layout.buildDirectory.file("generated-index.txt").get().asFile.absolutePath else file("generated-index.txt").absolutePath + val clientJar = loom.namedMinecraftJars argumentProviders.add(CommandLineArgumentProvider { listOf( - "--client", mcDir.get().file("client.jar").asFile.absolutePath, + "--client", clientJar.singleFile.absolutePath, "--mc-version", mcVersion, "--out", out, "--index", index, @@ -98,3 +70,22 @@ tasks.register("generateEntityModels") { ) + (findProperty("layers") as String?)?.let { listOf("--include", it) }.orEmpty() }) } + +val installAddon = tasks.register("installAddon") { + group = "bluemap" + description = "Copies the built addon into the packs-folder of the test-server" + from(rootProject.tasks.named("jar")) + into(serverDir.dir("config/bluemap/packs")) +} + +val installTestDatapack = tasks.register("installTestDatapack") { + group = "bluemap" + description = "Copies the test-datapack into the world of the test-server" + from(layout.projectDirectory.dir("datapack/bluemap-entity-test")) + into(serverDir.dir("world/datapacks/bluemap-entity-test")) +} + +tasks.named("runServer") { + group = "bluemap" + dependsOn(installAddon, installTestDatapack) +} From 0d5b623a1b33a8df38af270f2b5947815e8c9014 Mon Sep 17 00:00:00 2001 From: miraculixx Date: Tue, 11 Aug 2026 21:24:15 +0200 Subject: [PATCH 08/34] add a test server that loads everything needed --- gradle/wrapper/gradle-wrapper.properties | 2 +- settings.gradle.kts | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 9144876..d03d4ec 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.7.0-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/settings.gradle.kts b/settings.gradle.kts index 2f1e384..8c41410 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -2,6 +2,7 @@ pluginManagement { repositories { gradlePluginPortal() mavenCentral() + maven ( "https://maven.fabricmc.net/" ) } } From 77e4b57094a99f859e38352b4521b8c5179e9c8c Mon Sep 17 00:00:00 2001 From: miraculixx Date: Tue, 11 Aug 2026 21:24:32 +0200 Subject: [PATCH 09/34] Updated mapping --- .../bluemap/entities/renderer/CustomResourceModelRenderer.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/CustomResourceModelRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/CustomResourceModelRenderer.java index cca4185..69ca83f 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/renderer/CustomResourceModelRenderer.java +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/CustomResourceModelRenderer.java @@ -39,6 +39,7 @@ import de.bluecolored.bluemap.core.resources.pack.resourcepack.model.Model; import de.bluecolored.bluemap.core.resources.pack.resourcepack.texture.Texture; import de.bluecolored.bluemap.core.util.Direction; +import de.bluecolored.bluemap.core.util.Key; import de.bluecolored.bluemap.core.util.math.Color; import de.bluecolored.bluemap.core.util.math.MatrixM4f; import de.bluecolored.bluemap.core.util.math.VectorM2f; @@ -57,7 +58,7 @@ public class CustomResourceModelRenderer implements EntityRenderer { private static final float SCALE = 1f / 16f; - @Getter private final Function, Model> modelProvider; + @Getter private final Function modelProvider; @Getter private final TextureGallery textureGallery; @Getter private final RenderSettings renderSettings; From 18068f982e9a0f39a1d42b48a9771b5a63ec8575 Mon Sep 17 00:00:00 2001 From: miraculixx Date: Tue, 11 Aug 2026 21:31:03 +0200 Subject: [PATCH 10/34] Update info --- generator/README.md | 62 +++++++++------------------------------------ 1 file changed, 12 insertions(+), 50 deletions(-) diff --git a/generator/README.md b/generator/README.md index 134bb7b..a969be2 100644 --- a/generator/README.md +++ b/generator/README.md @@ -5,62 +5,24 @@ are compiled into the vanilla minecraft client-jar, so they do not have to be re minecraft-version. ```bash -./gradlew :generator:generateEntityModels # current version (see mcVersion below) +./gradlew :generator:generateEntityModels ./gradlew :generator:generateEntityModels -PmcVersion=26.3 # a different minecraft-version ./gradlew :generator:generateEntityModels -Players='sheep|cow' # only some layers -./gradlew :generator:generateEntityModels -PoutDir=/tmp/models # write somewhere else (dry-run) +./gradlew :generator:generateEntityModels -PoutDir=/tmp/models # testing ``` -The client-jar and its libraries are downloaded from mojangs launcher-metadata into `generator/build/minecraft/` -(~100 MB, once per version). Nothing of it is shipped with the addon, only the generated models are. - -Gradle itself has to run on a JDK **21-24** (its kotlin-dsl compiler does not run on 25 yet), the generator is compiled -and run with a java-25 toolchain, since that is what the minecraft client-jar is built for. - -## How it works - -`LayerDefinitions.createRoots()` returns every entity-model-layer minecraft knows (358 in 26.2). Each layer is baked -(`LayerDefinition.bakeRoot()`) and walked with `ModelPart.visit(...)`, which yields every cube together with the -accumulated part-transform. Minecraft builds entity-models mirrored and upside-down (the entity-renderer applies a -`scale(-1, -1, 1)`) with the origin 1.5 blocks above the feet, so every coordinate is converted with -`x' = -x`, `y' = 24 - y`, `z' = z`, and the part-hierarchy is flattened into the single rotation a bluemap-element -supports. Uv-coordinates are taken from the baked polygon-vertices, which also covers mirrored and deformed cubes. - -## Output - -One geometry-model per layer, plus a thin model per texture-variant that only overrides the texture: - -``` -entity/sheep/main.json minecraft:sheep#main -entity/sheep/wool.json minecraft:sheep#wool (overlay-layer) -entity/sheep_baby/main.json minecraft:sheep_baby#main (baby-model) -entity/cat/main_tabby.json variant, parent: entity/cat/main -entity/zombie/helmet_iron.json equipment-material of minecraft:zombie#helmet -``` - -Textures use the vanilla paths (`entity/sheep/sheep`) and are resolved, in this order, from -`config/textures.json`, the data-driven variant-registries of the client-jar (cat, cow, pig, chicken, frog, wolf, ...), -the equipment-textures (`entity/equipment/...`), the vanilla naming-convention, the texture-family of the entity -(axolotl, horse, mooshroom, ...) and finally the texture-paths referenced by the compiled renderer-classes. +`LayerDefinitions.createRoots()` returns every entity-model-layer minecraft knows (358 in 26.2). +Each layer is baked (`LayerDefinition.bakeRoot()`) and walked with `ModelPart.visit(...)`. `generator/build/generation-report.txt` lists which models were added, changed and removed, where every texture came from, and which layers could not be resolved. -## Configuration - -| file | purpose | -|---|---| -| `config/textures.json` | pins a texture (string) or a set of variant-textures (array) for `#` | -| `config/variant-models.json` | maps the `model` field of a variant-registry-entry to its model-id | -| `config/equipment.json` | maps `#` to a folder in `entity/equipment` | -| `overrides/.json` | replaces a generated model entirely, e.g. for hand-fixed geometry | -| `generated-index.txt` | the files of the last run, used to delete models that vanished from minecraft | - -## Limits +## Config -- Layers are generated in their base pose. Animations (`setupAnim`) and renderer-side tints are not part of the - model-data and stay the job of the renderers in `de.bluecolored.bluemap.entities.renderer`. -- Which layers an entity stacks (wool over sheep, saddle over pig, armor over zombie) is renderer-logic in minecraft, - so it stays renderer-logic here too - the generator only provides the models. -- Elements that need a rotation around more than one axis (60 models in 26.2) require **bluemap-core 5.14 or newer**, - everything else also works with older versions. +| file | purpose | +|------------------------------|-------------------------------------------------------------------------------| +| `config/textures.json` | pins a texture: string (one), array (variants), object (variants after key) | +| `config/variant-models.json` | maps the `model` field to its model-id | +| `config/equipment.json` | maps a layer to a folder in `entity/equipment` | +| `config/split-parts.json` | in model variants (like chests on horse-ish mobs) | +| `overrides/.json` | replacing for manual edited entities | From 03d70a2a29749ef1c4876adfd675cd0ccf41c739 Mon Sep 17 00:00:00 2001 From: miraculixx Date: Tue, 11 Aug 2026 21:34:22 +0200 Subject: [PATCH 11/34] Avoid double scaling ghasts --- .../bluecolored/bluemap/entities/renderer/GhastRenderer.java | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/GhastRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/GhastRenderer.java index b9ac0c0..d213e8e 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/renderer/GhastRenderer.java +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/GhastRenderer.java @@ -55,23 +55,18 @@ public void render(Entity entity, BlockNeighborhood block, Part part, TileModelV // choose correct model & scale ResourcePath model; - Vector3f scale; if (ghast instanceof HappyGhast) { if (((HappyGhast) ghast).getAge() < 0) { model = GHASTLING; - scale = new Vector3f(0.9f, 0.9f, 0.9f); } else { model = HAPPY_GHAST; - scale = new Vector3f(4f, 4f, 4f); } } else { model = GHAST; - scale = new Vector3f(4.5, 4.5, 4.5); } // render chosen model super.render(entity, block, model.getResource(getModelProvider()), TintColorProvider.NO_TINT, tileModel); - tileModel.scale(scale.getX(), scale.getY(), scale.getZ()); // apply part transform if (part.isTransformed()) From 07c55b35590c6d2c850db5a98f9d746101c54591 Mon Sep 17 00:00:00 2001 From: miraculixx Date: Tue, 11 Aug 2026 23:20:10 +0200 Subject: [PATCH 12/34] Ignore generic equipment for every model --- generator/config/equipment.json | 3 --- .../de/bluecolored/bluemap/entities/generator/Main.java | 9 +++++++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/generator/config/equipment.json b/generator/config/equipment.json index 4e2a3b2..433731b 100644 --- a/generator/config/equipment.json +++ b/generator/config/equipment.json @@ -1,7 +1,4 @@ { - "elytra#main": "wings", - "elytra_baby#main": "wings", - "undead_horse_armor#main": "horse_body", "happy_ghast_baby_harness#main": "happy_ghast_body", "happy_ghast_ropes#main": "happy_ghast_body", "happy_ghast_baby_ropes#main": "happy_ghast_body" diff --git a/generator/src/main/java/de/bluecolored/bluemap/entities/generator/Main.java b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/Main.java index c5e4396..2e07bc9 100644 --- a/generator/src/main/java/de/bluecolored/bluemap/entities/generator/Main.java +++ b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/Main.java @@ -59,6 +59,10 @@ public final class Main { private static final String CONFIG_EQUIPMENT = "equipment.json"; private static final String CONFIG_SPLIT_PARTS = "split-parts.json"; + /** worn equipment that is skipped for now */ + private static final Set SKIPPED_LAYERS = Set.of("helmet", "chestplate", "boots", "leggings"); + private static final Set SKIPPED_MODELS = Set.of("elytra", "elytra_baby"); + private final Arguments arguments; private final Report report = new Report(); private Map>> splitParts = Map.of(); @@ -120,6 +124,7 @@ private void generate( if (!arguments.include.matcher(key).find()) return; if (arguments.exclude != null && arguments.exclude.matcher(key).find()) return; + if (isEquipment(model, layer)) return; Geometry geometry = LayerConverter.convert(definition); geometry.warnings().forEach(warning -> report.warning(key + ": " + warning)); @@ -149,6 +154,10 @@ private void generate( writeModel(model + "/" + layer, remaining, resolution, key, written); } + private static boolean isEquipment(String model, String layer) { + return SKIPPED_LAYERS.contains(layer) || SKIPPED_MODELS.contains(model) || model.endsWith("_armor"); + } + private void writeModel( String path, Geometry geometry, TextureResolver.Resolution resolution, String key, Set written From 9c58c602cca2abd07ab03c1c9ba63ceee707e090 Mon Sep 17 00:00:00 2001 From: miraculixx Date: Wed, 12 Aug 2026 17:22:02 +0200 Subject: [PATCH 13/34] Add tint for entities with multi-colors (sheep) --- generator/README.md | 1 + generator/config/tints.json | 5 ++++ .../bluemap/entities/generator/Main.java | 5 +++- .../bluemap/entities/generator/ModelJson.java | 10 +++---- .../entities/generator/ModelWriter.java | 7 +++-- .../entities/generator/TextureResolver.java | 6 ++++ .../entities/renderer/SheepRenderer.java | 30 +++++++++++++++---- 7 files changed, 50 insertions(+), 14 deletions(-) create mode 100644 generator/config/tints.json diff --git a/generator/README.md b/generator/README.md index a969be2..061d81e 100644 --- a/generator/README.md +++ b/generator/README.md @@ -25,4 +25,5 @@ from, and which layers could not be resolved. | `config/variant-models.json` | maps the `model` field to its model-id | | `config/equipment.json` | maps a layer to a folder in `entity/equipment` | | `config/split-parts.json` | in model variants (like chests on horse-ish mobs) | +| `config/tints.json` | writes a `tintindex` on every face of a layer, colored by its renderer | | `overrides/.json` | replacing for manual edited entities | diff --git a/generator/config/tints.json b/generator/config/tints.json new file mode 100644 index 0000000..f9801c7 --- /dev/null +++ b/generator/config/tints.json @@ -0,0 +1,5 @@ +{ + "sheep#wool": 0, + "sheep#wool_undercoat": 0, + "sheep_baby#wool": 0 +} diff --git a/generator/src/main/java/de/bluecolored/bluemap/entities/generator/Main.java b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/Main.java index 2e07bc9..304d3f5 100644 --- a/generator/src/main/java/de/bluecolored/bluemap/entities/generator/Main.java +++ b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/Main.java @@ -58,6 +58,7 @@ public final class Main { private static final String CONFIG_VARIANT_MODELS = "variant-models.json"; private static final String CONFIG_EQUIPMENT = "equipment.json"; private static final String CONFIG_SPLIT_PARTS = "split-parts.json"; + private static final String CONFIG_TINTS = "tints.json"; /** worn equipment that is skipped for now */ private static final Set SKIPPED_LAYERS = Set.of("helmet", "chestplate", "boots", "leggings"); @@ -66,6 +67,7 @@ public final class Main { private final Arguments arguments; private final Report report = new Report(); private Map>> splitParts = Map.of(); + private Map tints = Map.of(); private Main(Arguments arguments) { this.arguments = arguments; @@ -83,6 +85,7 @@ private void run() throws IOException { layers.putAll(LayerDefinitions.createRoots()); splitParts = readConfig(CONFIG_SPLIT_PARTS, new TypeToken<>() {}); + tints = readConfig(CONFIG_TINTS, new TypeToken<>() {}); try (McAssets assets = new McAssets(arguments.clientJar)) { Set models = new LinkedHashSet<>(); @@ -162,7 +165,7 @@ private void writeModel( String path, Geometry geometry, TextureResolver.Resolution resolution, String key, Set written ) throws IOException { - write(path, ModelWriter.write(geometry, resolution.texture(), arguments.minecraftVersion, key), written); + write(path, ModelWriter.write(geometry, resolution.texture(), arguments.minecraftVersion, key, tints.get(key)), written); for (TextureResolver.Variant variant : resolution.variants()) write(path + "_" + variant.suffix(), ModelWriter.writeVariant(path, variant.texture()), written); diff --git a/generator/src/main/java/de/bluecolored/bluemap/entities/generator/ModelJson.java b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/ModelJson.java index 6ec12c0..d03d589 100644 --- a/generator/src/main/java/de/bluecolored/bluemap/entities/generator/ModelJson.java +++ b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/ModelJson.java @@ -51,10 +51,10 @@ record Element(String name, float[] from, float[] to, Rotation rotation, Map elements = geometry.elements().stream().map(ModelJson::element).toList(); + static ModelJson geometry(Geometry geometry, String texture, String minecraftVersion, String layer, Integer tintindex) { + List elements = geometry.elements().stream().map(element -> element(element, tintindex)).toList(); return new ModelJson( minecraftVersion, "Generated from minecraft " + minecraftVersion + " (" + layer + ")", @@ -70,9 +70,9 @@ static ModelJson variant(String parent, String texture) { return new ModelJson(null, null, null, "minecraft:entity/" + parent, textures, null); } - private static Element element(Geometry.Element element) { + private static Element element(Geometry.Element element, Integer tintindex) { Map faces = new LinkedHashMap<>(); - element.faces().forEach((direction, uv) -> faces.put(direction, new Face(uv, "#0"))); + element.faces().forEach((direction, uv) -> faces.put(direction, new Face(uv, "#0", tintindex))); return new Element( element.name(), diff --git a/generator/src/main/java/de/bluecolored/bluemap/entities/generator/ModelWriter.java b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/ModelWriter.java index 74da3f0..d093727 100644 --- a/generator/src/main/java/de/bluecolored/bluemap/entities/generator/ModelWriter.java +++ b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/ModelWriter.java @@ -58,8 +58,8 @@ private static Gson gson() { private ModelWriter() {} - static String write(Geometry geometry, String texture, String minecraftVersion, String layer) { - return write(ModelJson.geometry(geometry, texture, minecraftVersion, layer)); + static String write(Geometry geometry, String texture, String minecraftVersion, String layer, Integer tintindex) { + return write(ModelJson.geometry(geometry, texture, minecraftVersion, layer, tintindex)); } /** A texture-variant of an already written model, which only overrides its texture. */ @@ -84,7 +84,8 @@ private static String write(ModelJson model) { } private static String inline(ModelJson.Face face) { - return "{\"uv\": " + inline(face.uv()) + ", \"texture\": \"" + face.texture() + "\"}"; + return "{\"uv\": " + inline(face.uv()) + ", \"texture\": \"" + face.texture() + "\"" + + (face.tintindex() == null ? "" : ", \"tintindex\": " + face.tintindex()) + "}"; } private static String inline(float[] values) { diff --git a/generator/src/main/java/de/bluecolored/bluemap/entities/generator/TextureResolver.java b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/TextureResolver.java index fe32581..f22cce7 100644 --- a/generator/src/main/java/de/bluecolored/bluemap/entities/generator/TextureResolver.java +++ b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/TextureResolver.java @@ -185,6 +185,12 @@ private List conventions(String model, String layer) { candidates.add("entity/" + base + "/" + base); candidates.add("entity/" + base); } else { + // baby-textures of a layer keep the baby-suffix last + if (!model.equals(base)) { + candidates.add("entity/" + base + "/" + base + "_" + layer + BABY_SUFFIX); + candidates.add("entity/" + base + "/" + layer + BABY_SUFFIX); + } + candidates.add("entity/" + base + "/" + model + "_" + layer); candidates.add("entity/" + base + "/" + base + "_" + layer); candidates.add("entity/" + model + "/" + model + "_" + layer); diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/SheepRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/SheepRenderer.java index 6fca3a1..2a6dfc3 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/renderer/SheepRenderer.java +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/SheepRenderer.java @@ -38,11 +38,20 @@ public class SheepRenderer extends CustomResourceModelRenderer { + /** {@code DyeColor#getTextureDiffuseColor} darkened by 0.75 (mc does it) */ + private static final int[] WOOL_COLORS = { + 0xE6E6E6, 0xBA6015, 0x953A8D, 0x2B86A3, + 0xBEA22D, 0x609517, 0xB6687F, 0x353B3D, + 0x757571, 0x107575, 0x66258A, 0x2D337F, + 0x623F25, 0x465D10, 0x84221C, 0x151518 + }; + private final ResourcePath SHEEP_ADULT = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/sheep/main"), SHEEP_BABY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/sheep_baby/main"), SHEEP_ADULT_WOOL = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/sheep/wool"), - SHEEP_BABY_WOOL = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/sheep_baby/wool"); + SHEEP_BABY_WOOL = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/sheep_baby/wool"), + SHEEP_ADULT_WOOL_UNDERCOAT = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/sheep/wool_undercoat"); public SheepRenderer(ResourcePack resourcePack, TextureGallery textureGallery, RenderSettings renderSettings) { super(resourcePack, textureGallery, renderSettings); @@ -52,24 +61,35 @@ public SheepRenderer(ResourcePack resourcePack, TextureGallery textureGallery, R public void render(Entity entity, BlockNeighborhood block, Part part, TileModelView tileModel) { if (!(entity instanceof Sheep sheep)) return; + boolean isBaby = sheep.getAge() < 0; + // render base body ResourcePath baseModel; - if (sheep.getAge() < 0) { + if (isBaby) { baseModel = SHEEP_BABY; } else { baseModel = SHEEP_ADULT; } super.render(entity, block, baseModel.getResource(getModelProvider()), TintColorProvider.NO_TINT, tileModel); - // render wool layer if not sheared (TODO wool tint) + // render wool layer if not sheared, tinted by the wool-color if (!sheep.isSheared()) { + int color = sheep.getColor() & 0xFF; + if (color >= WOOL_COLORS.length) color = 0; + int woolColor = 0xFF000000 | WOOL_COLORS[color]; + TintColorProvider woolTint = (index, target) -> target.set(woolColor, true); + ResourcePath woolModel; - if (sheep.getAge() < 0) { + if (isBaby) { woolModel = SHEEP_BABY_WOOL; } else { woolModel = SHEEP_ADULT_WOOL; } - super.render(entity, block, woolModel.getResource(getModelProvider()), TintColorProvider.NO_TINT, tileModel); + super.render(entity, block, woolModel.getResource(getModelProvider()), woolTint, tileModel); + + if (!isBaby && color != 0) { + super.render(entity, block, SHEEP_ADULT_WOOL_UNDERCOAT.getResource(getModelProvider()), woolTint, tileModel); + } } // apply part transform From d7c92f9b9ddd4d1584fce97a4a87a7f80a65f162 Mon Sep 17 00:00:00 2001 From: miraculixx Date: Wed, 12 Aug 2026 17:36:53 +0200 Subject: [PATCH 14/34] Add tint for tropical fish --- generator/config/tints.json | 7 +++- .../function/group/tropical_fish.mcfunction | 23 +++++++------ .../bluemap/entities/entity/TropicalFish.java | 17 ++++++++++ .../renderer/TropicalFishRenderer.java | 32 +++++++++++++++---- 4 files changed, 62 insertions(+), 17 deletions(-) diff --git a/generator/config/tints.json b/generator/config/tints.json index f9801c7..ebfb821 100644 --- a/generator/config/tints.json +++ b/generator/config/tints.json @@ -1,5 +1,10 @@ { "sheep#wool": 0, "sheep#wool_undercoat": 0, - "sheep_baby#wool": 0 + "sheep_baby#wool": 0, + + "tropical_fish_small#main": 0, + "tropical_fish_small#pattern": 0, + "tropical_fish_large#main": 0, + "tropical_fish_large#pattern": 0 } diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/tropical_fish.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/tropical_fish.mcfunction index 0e7905f..9222f6d 100644 --- a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/tropical_fish.mcfunction +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/tropical_fish.mcfunction @@ -1,10 +1,13 @@ -# tropical_fish (9 entities) -summon minecraft:tropical_fish ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0} -summon minecraft:tropical_fish ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:1} -summon minecraft:tropical_fish ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:65536} -summon minecraft:tropical_fish ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:65537} -summon minecraft:tropical_fish ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:16777216} -summon minecraft:tropical_fish ~15 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:16777217} -summon minecraft:tropical_fish ~18 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:50790656} -summon minecraft:tropical_fish ~21 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:67108865} -summon minecraft:tropical_fish ~24 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:117506305} +# tropical_fish (12 entities, every pattern of both body-sizes) +summon minecraft:tropical_fish ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:251723776} +summon minecraft:tropical_fish ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:262400} +summon minecraft:tropical_fish ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:251986432} +summon minecraft:tropical_fish ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:590592} +summon minecraft:tropical_fish ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:252380160} +summon minecraft:tropical_fish ~15 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:918784} +summon minecraft:tropical_fish ~18 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:251723777} +summon minecraft:tropical_fish ~21 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:262401} +summon minecraft:tropical_fish ~24 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:251986433} +summon minecraft:tropical_fish ~27 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:590593} +summon minecraft:tropical_fish ~30 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:252380161} +summon minecraft:tropical_fish ~33 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:918785} diff --git a/src/main/java/de/bluecolored/bluemap/entities/entity/TropicalFish.java b/src/main/java/de/bluecolored/bluemap/entities/entity/TropicalFish.java index 3a5af35..5345b38 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/entity/TropicalFish.java +++ b/src/main/java/de/bluecolored/bluemap/entities/entity/TropicalFish.java @@ -38,4 +38,21 @@ public class TropicalFish extends MCAEntity { @NBTName("Variant") int variant; + public boolean isLarge() { + return (variant & 0xFF) != 0; + } + + /** 0 - 5 */ + public int getPattern() { + return (variant >> 8) & 0xFF; + } + + public int getBaseColor() { + return (variant >> 16) & 0xFF; + } + + public int getPatternColor() { + return (variant >> 24) & 0xFF; + } + } diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/TropicalFishRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/TropicalFishRenderer.java index e6d9318..deae187 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/renderer/TropicalFishRenderer.java +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/TropicalFishRenderer.java @@ -38,8 +38,15 @@ public class TropicalFishRenderer extends CustomResourceModelRenderer { - private final ResourcePath - TROPICAL_FISH = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/tropical_fish_small/main"); + /** {@code DyeColor#getTextureDiffuseColor} */ + private static final int[] DYE_COLORS = { + 0xF9FFFE, 0xF9801D, 0xC74EBD, 0x3AB3DA, + 0xFED83D, 0x80C71F, 0xF38BAA, 0x474F52, + 0x9D9D97, 0x169C9C, 0x8932B8, 0x3C44AA, + 0x835432, 0x5E7C16, 0xB02E26, 0x1D1D21 + }; + + private static final int PATTERNS = 6; public TropicalFishRenderer(ResourcePack resourcePack, TextureGallery textureGallery, RenderSettings renderSettings) { super(resourcePack, textureGallery, renderSettings); @@ -49,15 +56,28 @@ public TropicalFishRenderer(ResourcePack resourcePack, TextureGallery textureGal public void render(Entity entity, BlockNeighborhood block, Part part, TileModelView tileModel) { if (!(entity instanceof TropicalFish tropicalFish)) return; - // choose correct model - ResourcePath model = TROPICAL_FISH; + boolean isLarge = tropicalFish.isLarge(); + int pattern = tropicalFish.getPattern(); + if (pattern >= PATTERNS) pattern = 0; + + // "entity/tropical_fish_{small|large}/main" tint base-color + String fishModel = "entity/tropical_fish_" + (isLarge ? "large" : "small") + "/"; + ResourcePath baseModel = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, fishModel + "main"); + super.render(entity, block, baseModel.getResource(getModelProvider()), tint(tropicalFish.getBaseColor()), tileModel); - // render chosen model - super.render(entity, block, model.getResource(getModelProvider()), TintColorProvider.NO_TINT, tileModel); + // "entity/tropical_fish_{small|large}/pattern_tropical_{a|b}_pattern_{1-6}" + String patternModel = fishModel + "pattern_tropical_" + (isLarge ? "b" : "a") + "_pattern_" + (pattern + 1); + ResourcePath patternPath = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, patternModel); + super.render(entity, block, patternPath.getResource(getModelProvider()), tint(tropicalFish.getPatternColor()), tileModel); // apply part transform if (part.isTransformed()) tileModel.transform(part.getTransformMatrix()); } + private TintColorProvider tint(int dyeColor) { + int color = 0xFF000000 | DYE_COLORS[dyeColor & 0xF]; + return (index, target) -> target.set(color, true); + } + } From 862d823a65f782d0bc8e53c96a3e9463b1da2d4c Mon Sep 17 00:00:00 2001 From: miraculixx Date: Wed, 12 Aug 2026 18:13:54 +0200 Subject: [PATCH 15/34] Fix overlay for drowned and skeleton types --- .../bluemap/entities/generator/TextureResolver.java | 4 ++++ .../bluemap/entities/renderer/DrownedRenderer.java | 11 ++++++++--- .../bluemap/entities/renderer/SkeletonRenderer.java | 13 ++++++++++++- 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/generator/src/main/java/de/bluecolored/bluemap/entities/generator/TextureResolver.java b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/TextureResolver.java index f22cce7..a540693 100644 --- a/generator/src/main/java/de/bluecolored/bluemap/entities/generator/TextureResolver.java +++ b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/TextureResolver.java @@ -218,6 +218,10 @@ private List names(String model, String layer) { if (layer.equals("main")) { names.add(alias); } else { + if (alias.endsWith(BABY_SUFFIX)) { + names.add(base(alias) + "_" + layer + BABY_SUFFIX); + names.add(base(alias) + "_" + layer + "_layer" + BABY_SUFFIX); + } names.add(alias + "_" + layer); names.add(alias + "_" + layer + "_layer"); } diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/DrownedRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/DrownedRenderer.java index a420b2f..9deb654 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/renderer/DrownedRenderer.java +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/DrownedRenderer.java @@ -40,7 +40,9 @@ public class DrownedRenderer extends CustomResourceModelRenderer { private final ResourcePath ZOMBIE_ADULT = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/drowned/main"), - ZOMBIE_BABY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/drowned_baby/main"); + ZOMBIE_BABY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/drowned_baby/main"), + ZOMBIE_ADULT_OUTER = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/drowned/outer"), + ZOMBIE_BABY_OUTER = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/drowned_baby/outer"); public DrownedRenderer(ResourcePack resourcePack, TextureGallery textureGallery, RenderSettings renderSettings) { super(resourcePack, textureGallery, renderSettings); @@ -51,15 +53,18 @@ public void render(Entity entity, BlockNeighborhood block, Part part, TileModelV if (!(entity instanceof Zombie drowned)) return; // choose correct model - ResourcePath model; + ResourcePath model, outerModel; if (drowned.isBaby()) { model = ZOMBIE_BABY; + outerModel = ZOMBIE_BABY_OUTER; } else { model = ZOMBIE_ADULT; + outerModel = ZOMBIE_ADULT_OUTER; } - // render chosen model + // render chosen model and its overlay layer super.render(entity, block, model.getResource(getModelProvider()), TintColorProvider.NO_TINT, tileModel); + super.render(entity, block, outerModel.getResource(getModelProvider()), TintColorProvider.NO_TINT, tileModel); // apply part transform if (part.isTransformed()) diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/SkeletonRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/SkeletonRenderer.java index 708846e..bb2ec5f 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/renderer/SkeletonRenderer.java +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/SkeletonRenderer.java @@ -43,7 +43,9 @@ public class SkeletonRenderer extends CustomResourceModelRenderer { WITHER_SKELETON = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/wither_skeleton/main"), STRAY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/stray/main"), BOGGED = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/bogged/main"), - PARCHED = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/parched/main"); + PARCHED = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/parched/main"), + STRAY_OUTER = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/stray/outer"), + BOGGED_OUTER = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/bogged/outer"); public SkeletonRenderer(ResourcePack resourcePack, TextureGallery textureGallery, RenderSettings renderSettings) { super(resourcePack, textureGallery, renderSettings); @@ -65,6 +67,15 @@ public void render(Entity entity, BlockNeighborhood block, Part part, TileModelV // render chosen model super.render(entity, block, model.getResource(getModelProvider()), TintColorProvider.NO_TINT, tileModel); + // render overlay layer, parched has no overlay-texture + ResourcePath outerModel = switch (skeleton) { + case Stray ignored -> STRAY_OUTER; + case Bogged ignored -> BOGGED_OUTER; + default -> null; + }; + if (outerModel != null) + super.render(entity, block, outerModel.getResource(getModelProvider()), TintColorProvider.NO_TINT, tileModel); + // apply part transform if (part.isTransformed()) tileModel.transform(part.getTransformMatrix()); From 7c9678b679bbfcdaa611c0b1c3ad0e77925ae69d Mon Sep 17 00:00:00 2001 From: miraculixx Date: Wed, 12 Aug 2026 18:39:32 +0200 Subject: [PATCH 16/34] Add full datapack coverage (testing) --- .../function/group/aquatic.mcfunction | 23 +++--- .../function/group/armadillo.mcfunction | 6 +- .../function/group/axolotl.mcfunction | 10 +-- .../bme_test/function/group/beast.mcfunction | 11 +++ .../bme_test/function/group/bee.mcfunction | 6 +- .../bme_test/function/group/boat.mcfunction | 11 +++ .../bme_test/function/group/cat.mcfunction | 26 +++---- .../function/group/cat_collar.mcfunction | 17 ++++ .../function/group/chest_boat.mcfunction | 11 +++ .../function/group/chested_horse.mcfunction | 10 +-- .../function/group/chicken.mcfunction | 10 +-- .../function/group/copper_golem.mcfunction | 6 +- .../bme_test/function/group/cow.mcfunction | 10 +-- .../bme_test/function/group/cube.mcfunction | 8 ++ .../function/group/ender_dragon.mcfunction | 2 + .../bme_test/function/group/fox.mcfunction | 10 +-- .../bme_test/function/group/frog.mcfunction | 4 +- .../bme_test/function/group/ghast.mcfunction | 4 +- .../bme_test/function/group/golem.mcfunction | 4 +- .../bme_test/function/group/hoglin.mcfunction | 7 ++ .../function/group/horse_baby.mcfunction | 12 +-- .../group/horse_markings_0.mcfunction | 12 +-- .../group/horse_markings_1.mcfunction | 12 +-- .../group/horse_markings_2.mcfunction | 12 +-- .../group/horse_markings_3.mcfunction | 12 +-- .../group/horse_markings_4.mcfunction | 12 +-- .../bme_test/function/group/llama.mcfunction | 30 ++----- .../function/group/llama_carpet.mcfunction | 17 ++++ .../bme_test/function/group/misc.mcfunction | 6 +- .../function/group/monster.mcfunction | 16 ++++ .../function/group/monster_big.mcfunction | 6 ++ .../function/group/mooshroom.mcfunction | 5 ++ .../bme_test/function/group/ocelot.mcfunction | 4 +- .../bme_test/function/group/parrot.mcfunction | 6 ++ .../bme_test/function/group/pig.mcfunction | 12 +-- .../bme_test/function/group/piglin.mcfunction | 6 ++ .../bme_test/function/group/prop.mcfunction | 11 +++ .../bme_test/function/group/rabbit.mcfunction | 9 +++ .../bme_test/function/group/salmon.mcfunction | 7 ++ .../bme_test/function/group/sheep.mcfunction | 30 +++---- .../function/group/sheep_states.mcfunction | 12 +-- .../function/group/skeleton.mcfunction | 8 +- .../function/group/trader_llama.mcfunction | 10 +-- .../function/group/tropical_fish.mcfunction | 24 +++--- .../function/group/undead_horse.mcfunction | 6 +- .../function/group/villager.mcfunction | 6 ++ .../bme_test/function/group/wolf.mcfunction | 12 +++ .../bme_test/function/group/zombie.mcfunction | 10 +-- .../bme_test/function/platform.mcfunction | 4 +- .../data/bme_test/function/spawn.mcfunction | 78 ++++++++++++------- 50 files changed, 386 insertions(+), 217 deletions(-) create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/beast.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/boat.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/cat_collar.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/chest_boat.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/cube.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/ender_dragon.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/hoglin.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/llama_carpet.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/monster.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/monster_big.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/mooshroom.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/parrot.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/piglin.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/prop.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/rabbit.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/salmon.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/villager.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/wolf.mcfunction diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/aquatic.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/aquatic.mcfunction index d78f24e..7afbe28 100644 --- a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/aquatic.mcfunction +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/aquatic.mcfunction @@ -1,14 +1,13 @@ -# aquatic (13 entities) +# aquatic (12 entities) summon minecraft:squid ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} -summon minecraft:squid ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} -summon minecraft:glow_squid ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} -summon minecraft:glow_squid ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} -summon minecraft:dolphin ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} -summon minecraft:dolphin ~15 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} +summon minecraft:squid ~2 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} +summon minecraft:glow_squid ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:glow_squid ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} +summon minecraft:dolphin ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:dolphin ~10 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} +summon minecraft:nautilus ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:nautilus ~14 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} +summon minecraft:zombie_nautilus ~16 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} summon minecraft:cod ~18 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} -summon minecraft:salmon ~21 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} -summon minecraft:pufferfish ~24 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],PuffState:0} -summon minecraft:pufferfish ~27 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],PuffState:1} -summon minecraft:pufferfish ~30 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],PuffState:2} -summon minecraft:guardian ~33 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} -summon minecraft:tadpole ~36 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:guardian ~20 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:tadpole ~22 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/armadillo.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/armadillo.mcfunction index aa79a11..231a3a8 100644 --- a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/armadillo.mcfunction +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/armadillo.mcfunction @@ -1,5 +1,5 @@ # armadillo (4 entities) summon minecraft:armadillo ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],state:"idle"} -summon minecraft:armadillo ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],state:"scared"} -summon minecraft:armadillo ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],state:"idle",Age:-24000} -summon minecraft:armadillo ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],state:"scared",Age:-24000} +summon minecraft:armadillo ~2 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],state:"scared"} +summon minecraft:armadillo ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],state:"idle",Age:-24000} +summon minecraft:armadillo ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],state:"scared",Age:-24000} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/axolotl.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/axolotl.mcfunction index 9e216b8..dfb0d71 100644 --- a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/axolotl.mcfunction +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/axolotl.mcfunction @@ -1,7 +1,7 @@ # axolotl (6 entities) summon minecraft:axolotl ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0} -summon minecraft:axolotl ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:1} -summon minecraft:axolotl ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:2} -summon minecraft:axolotl ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:3} -summon minecraft:axolotl ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:4} -summon minecraft:axolotl ~15 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,Age:-24000} +summon minecraft:axolotl ~2 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:1} +summon minecraft:axolotl ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:2} +summon minecraft:axolotl ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:3} +summon minecraft:axolotl ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:4} +summon minecraft:axolotl ~10 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,Age:-24000} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/beast.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/beast.mcfunction new file mode 100644 index 0000000..89e8f2f --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/beast.mcfunction @@ -0,0 +1,11 @@ +# beast (10 entities) +summon minecraft:goat ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:goat ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} +summon minecraft:panda ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:panda ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} +summon minecraft:sniffer ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:sniffer ~15 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} +summon minecraft:turtle ~18 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:turtle ~21 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} +summon minecraft:polar_bear ~24 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:polar_bear ~27 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/bee.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/bee.mcfunction index e973df6..0aedf13 100644 --- a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/bee.mcfunction +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/bee.mcfunction @@ -1,5 +1,5 @@ # bee (4 entities) summon minecraft:bee ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} -summon minecraft:bee ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],HasNectar:1} -summon minecraft:bee ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],HasStung:1b} -summon minecraft:bee ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} +summon minecraft:bee ~2 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],HasNectar:1b} +summon minecraft:bee ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],HasStung:1b} +summon minecraft:bee ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/boat.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/boat.mcfunction new file mode 100644 index 0000000..b016e99 --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/boat.mcfunction @@ -0,0 +1,11 @@ +# boat (10 entities) +summon minecraft:oak_boat ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:spruce_boat ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:birch_boat ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:jungle_boat ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:acacia_boat ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:dark_oak_boat ~15 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:mangrove_boat ~18 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:cherry_boat ~21 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:pale_oak_boat ~24 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:bamboo_raft ~27 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/cat.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/cat.mcfunction index eda3c59..611ca90 100644 --- a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/cat.mcfunction +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/cat.mcfunction @@ -1,15 +1,15 @@ # cat (14 entities) summon minecraft:cat ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:tabby"} -summon minecraft:cat ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:black"} -summon minecraft:cat ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:red"} -summon minecraft:cat ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:siamese"} -summon minecraft:cat ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:british_shorthair"} -summon minecraft:cat ~15 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:calico"} -summon minecraft:cat ~18 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:persian"} -summon minecraft:cat ~21 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:ragdoll"} -summon minecraft:cat ~24 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:white"} -summon minecraft:cat ~27 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:jellie"} -summon minecraft:cat ~30 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:all_black"} -summon minecraft:cat ~33 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:tabby",Sitting:1b} -summon minecraft:cat ~36 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:tabby",Age:-24000} -summon minecraft:cat ~39 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:calico",Age:-24000} +summon minecraft:cat ~2 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:black"} +summon minecraft:cat ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:red"} +summon minecraft:cat ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:siamese"} +summon minecraft:cat ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:british_shorthair"} +summon minecraft:cat ~10 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:calico"} +summon minecraft:cat ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:persian"} +summon minecraft:cat ~14 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:ragdoll"} +summon minecraft:cat ~16 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:white"} +summon minecraft:cat ~18 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:jellie"} +summon minecraft:cat ~20 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:all_black"} +summon minecraft:cat ~22 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:tabby",Sitting:1b} +summon minecraft:cat ~24 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:tabby",Age:-24000} +summon minecraft:cat ~26 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:calico",Age:-24000} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/cat_collar.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/cat_collar.mcfunction new file mode 100644 index 0000000..712e6aa --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/cat_collar.mcfunction @@ -0,0 +1,17 @@ +# cat_collar (16 entities) +summon minecraft:cat ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:tabby",Owner:[I;1,2,3,4],CollarColor:0b} +summon minecraft:cat ~2 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:tabby",Owner:[I;1,2,3,4],CollarColor:1b} +summon minecraft:cat ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:tabby",Owner:[I;1,2,3,4],CollarColor:2b} +summon minecraft:cat ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:tabby",Owner:[I;1,2,3,4],CollarColor:3b} +summon minecraft:cat ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:tabby",Owner:[I;1,2,3,4],CollarColor:4b} +summon minecraft:cat ~10 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:tabby",Owner:[I;1,2,3,4],CollarColor:5b} +summon minecraft:cat ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:tabby",Owner:[I;1,2,3,4],CollarColor:6b} +summon minecraft:cat ~14 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:tabby",Owner:[I;1,2,3,4],CollarColor:7b} +summon minecraft:cat ~16 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:tabby",Owner:[I;1,2,3,4],CollarColor:8b} +summon minecraft:cat ~18 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:tabby",Owner:[I;1,2,3,4],CollarColor:9b} +summon minecraft:cat ~20 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:tabby",Owner:[I;1,2,3,4],CollarColor:10b} +summon minecraft:cat ~22 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:tabby",Owner:[I;1,2,3,4],CollarColor:11b} +summon minecraft:cat ~24 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:tabby",Owner:[I;1,2,3,4],CollarColor:12b} +summon minecraft:cat ~26 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:tabby",Owner:[I;1,2,3,4],CollarColor:13b} +summon minecraft:cat ~28 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:tabby",Owner:[I;1,2,3,4],CollarColor:14b} +summon minecraft:cat ~30 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:tabby",Owner:[I;1,2,3,4],CollarColor:15b} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/chest_boat.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/chest_boat.mcfunction new file mode 100644 index 0000000..2919885 --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/chest_boat.mcfunction @@ -0,0 +1,11 @@ +# chest_boat (10 entities) +summon minecraft:oak_chest_boat ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:spruce_chest_boat ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:birch_chest_boat ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:jungle_chest_boat ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:acacia_chest_boat ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:dark_oak_chest_boat ~15 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:mangrove_chest_boat ~18 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:cherry_chest_boat ~21 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:pale_oak_chest_boat ~24 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:bamboo_chest_raft ~27 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/chested_horse.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/chested_horse.mcfunction index 3f5b855..67bc5a0 100644 --- a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/chested_horse.mcfunction +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/chested_horse.mcfunction @@ -1,7 +1,7 @@ # chested_horse (6 entities) summon minecraft:donkey ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} -summon minecraft:donkey ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],ChestedHorse:1b} -summon minecraft:donkey ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} -summon minecraft:mule ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} -summon minecraft:mule ~16 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],ChestedHorse:1b} -summon minecraft:mule ~20 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} +summon minecraft:donkey ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],ChestedHorse:1b} +summon minecraft:donkey ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} +summon minecraft:mule ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:mule ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],ChestedHorse:1b} +summon minecraft:mule ~15 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/chicken.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/chicken.mcfunction index 298fdc8..f32da92 100644 --- a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/chicken.mcfunction +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/chicken.mcfunction @@ -1,7 +1,7 @@ # chicken (6 entities) summon minecraft:chicken ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:temperate"} -summon minecraft:chicken ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:warm"} -summon minecraft:chicken ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:cold"} -summon minecraft:chicken ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:temperate",Age:-24000} -summon minecraft:chicken ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:warm",Age:-24000} -summon minecraft:chicken ~15 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:cold",Age:-24000} +summon minecraft:chicken ~2 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:warm"} +summon minecraft:chicken ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:cold"} +summon minecraft:chicken ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:temperate",Age:-24000} +summon minecraft:chicken ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:warm",Age:-24000} +summon minecraft:chicken ~10 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:cold",Age:-24000} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/copper_golem.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/copper_golem.mcfunction index 3c1fcc2..297530f 100644 --- a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/copper_golem.mcfunction +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/copper_golem.mcfunction @@ -1,5 +1,5 @@ # copper_golem (4 entities) summon minecraft:copper_golem ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],weather_state:"unaffected"} -summon minecraft:copper_golem ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],weather_state:"exposed"} -summon minecraft:copper_golem ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],weather_state:"weathered"} -summon minecraft:copper_golem ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],weather_state:"oxidized"} +summon minecraft:copper_golem ~2 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],weather_state:"exposed"} +summon minecraft:copper_golem ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],weather_state:"weathered"} +summon minecraft:copper_golem ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],weather_state:"oxidized"} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/cow.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/cow.mcfunction index f14f47d..aa44cea 100644 --- a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/cow.mcfunction +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/cow.mcfunction @@ -1,7 +1,7 @@ # cow (6 entities) summon minecraft:cow ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:temperate"} -summon minecraft:cow ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:warm"} -summon minecraft:cow ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:cold"} -summon minecraft:cow ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:temperate",Age:-24000} -summon minecraft:cow ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:warm",Age:-24000} -summon minecraft:cow ~15 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:cold",Age:-24000} +summon minecraft:cow ~2 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:warm"} +summon minecraft:cow ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:cold"} +summon minecraft:cow ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:temperate",Age:-24000} +summon minecraft:cow ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:warm",Age:-24000} +summon minecraft:cow ~10 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:cold",Age:-24000} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/cube.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/cube.mcfunction new file mode 100644 index 0000000..8a08bb6 --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/cube.mcfunction @@ -0,0 +1,8 @@ +# cube (7 entities) +summon minecraft:slime ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Size:0} +summon minecraft:slime ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Size:1} +summon minecraft:slime ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Size:3} +summon minecraft:magma_cube ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Size:0} +summon minecraft:magma_cube ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Size:1} +summon minecraft:magma_cube ~15 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Size:3} +summon minecraft:sulfur_cube ~18 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/ender_dragon.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/ender_dragon.mcfunction new file mode 100644 index 0000000..657ea1e --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/ender_dragon.mcfunction @@ -0,0 +1,2 @@ +# ender_dragon (1 entities) +summon minecraft:ender_dragon ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/fox.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/fox.mcfunction index 2c98219..f41a4ea 100644 --- a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/fox.mcfunction +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/fox.mcfunction @@ -1,7 +1,7 @@ # fox (6 entities) summon minecraft:fox ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Type:"red"} -summon minecraft:fox ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Type:"snow"} -summon minecraft:fox ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Type:"red",Sitting:1b} -summon minecraft:fox ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Type:"red",Sleeping:1b} -summon minecraft:fox ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Type:"red",Age:-24000} -summon minecraft:fox ~15 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Type:"snow",Age:-24000} +summon minecraft:fox ~2 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Type:"snow"} +summon minecraft:fox ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Type:"red",Sitting:1b} +summon minecraft:fox ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Type:"red",Sleeping:1b} +summon minecraft:fox ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Type:"red",Age:-24000} +summon minecraft:fox ~10 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Type:"snow",Age:-24000} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/frog.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/frog.mcfunction index 70d006e..e40e5d9 100644 --- a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/frog.mcfunction +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/frog.mcfunction @@ -1,4 +1,4 @@ # frog (3 entities) summon minecraft:frog ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:temperate"} -summon minecraft:frog ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:warm"} -summon minecraft:frog ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:cold"} +summon minecraft:frog ~2 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:warm"} +summon minecraft:frog ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:cold"} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/ghast.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/ghast.mcfunction index 6a6a2b5..fcb6ab1 100644 --- a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/ghast.mcfunction +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/ghast.mcfunction @@ -1,4 +1,4 @@ # ghast (3 entities) summon minecraft:ghast ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} -summon minecraft:happy_ghast ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} -summon minecraft:happy_ghast ~24 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} +summon minecraft:happy_ghast ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:happy_ghast ~16 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/golem.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/golem.mcfunction index 9ffbc50..c7ddd73 100644 --- a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/golem.mcfunction +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/golem.mcfunction @@ -1,4 +1,4 @@ # golem (3 entities) summon minecraft:snow_golem ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Pumpkin:1b} -summon minecraft:snow_golem ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Pumpkin:0b} -summon minecraft:iron_golem ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:snow_golem ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Pumpkin:0b} +summon minecraft:iron_golem ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/hoglin.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/hoglin.mcfunction new file mode 100644 index 0000000..a19d8cc --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/hoglin.mcfunction @@ -0,0 +1,7 @@ +# hoglin (6 entities) +summon minecraft:hoglin ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:hoglin ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} +summon minecraft:zoglin ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:zoglin ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} +summon minecraft:strider ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:strider ~15 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_baby.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_baby.mcfunction index 78e2df0..e9532f3 100644 --- a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_baby.mcfunction +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_baby.mcfunction @@ -1,8 +1,8 @@ # horse_baby (7 entities) summon minecraft:horse ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,Age:-24000} -summon minecraft:horse ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:1,Age:-24000} -summon minecraft:horse ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:2,Age:-24000} -summon minecraft:horse ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:3,Age:-24000} -summon minecraft:horse ~16 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:4,Age:-24000} -summon minecraft:horse ~20 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:5,Age:-24000} -summon minecraft:horse ~24 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:6,Age:-24000} +summon minecraft:horse ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:1,Age:-24000} +summon minecraft:horse ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:2,Age:-24000} +summon minecraft:horse ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:3,Age:-24000} +summon minecraft:horse ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:4,Age:-24000} +summon minecraft:horse ~15 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:5,Age:-24000} +summon minecraft:horse ~18 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:6,Age:-24000} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_markings_0.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_markings_0.mcfunction index ad41d39..c5e966f 100644 --- a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_markings_0.mcfunction +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_markings_0.mcfunction @@ -1,8 +1,8 @@ # horse_markings_0 (7 entities) summon minecraft:horse ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0} -summon minecraft:horse ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:1} -summon minecraft:horse ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:2} -summon minecraft:horse ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:3} -summon minecraft:horse ~16 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:4} -summon minecraft:horse ~20 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:5} -summon minecraft:horse ~24 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:6} +summon minecraft:horse ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:1} +summon minecraft:horse ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:2} +summon minecraft:horse ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:3} +summon minecraft:horse ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:4} +summon minecraft:horse ~15 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:5} +summon minecraft:horse ~18 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:6} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_markings_1.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_markings_1.mcfunction index 09200dc..d50153d 100644 --- a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_markings_1.mcfunction +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_markings_1.mcfunction @@ -1,8 +1,8 @@ # horse_markings_1 (7 entities) summon minecraft:horse ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:256} -summon minecraft:horse ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:257} -summon minecraft:horse ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:258} -summon minecraft:horse ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:259} -summon minecraft:horse ~16 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:260} -summon minecraft:horse ~20 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:261} -summon minecraft:horse ~24 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:262} +summon minecraft:horse ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:257} +summon minecraft:horse ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:258} +summon minecraft:horse ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:259} +summon minecraft:horse ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:260} +summon minecraft:horse ~15 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:261} +summon minecraft:horse ~18 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:262} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_markings_2.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_markings_2.mcfunction index 5558aa1..d10f68a 100644 --- a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_markings_2.mcfunction +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_markings_2.mcfunction @@ -1,8 +1,8 @@ # horse_markings_2 (7 entities) summon minecraft:horse ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:512} -summon minecraft:horse ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:513} -summon minecraft:horse ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:514} -summon minecraft:horse ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:515} -summon minecraft:horse ~16 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:516} -summon minecraft:horse ~20 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:517} -summon minecraft:horse ~24 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:518} +summon minecraft:horse ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:513} +summon minecraft:horse ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:514} +summon minecraft:horse ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:515} +summon minecraft:horse ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:516} +summon minecraft:horse ~15 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:517} +summon minecraft:horse ~18 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:518} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_markings_3.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_markings_3.mcfunction index a1698f9..cc41e4c 100644 --- a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_markings_3.mcfunction +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_markings_3.mcfunction @@ -1,8 +1,8 @@ # horse_markings_3 (7 entities) summon minecraft:horse ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:768} -summon minecraft:horse ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:769} -summon minecraft:horse ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:770} -summon minecraft:horse ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:771} -summon minecraft:horse ~16 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:772} -summon minecraft:horse ~20 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:773} -summon minecraft:horse ~24 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:774} +summon minecraft:horse ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:769} +summon minecraft:horse ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:770} +summon minecraft:horse ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:771} +summon minecraft:horse ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:772} +summon minecraft:horse ~15 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:773} +summon minecraft:horse ~18 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:774} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_markings_4.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_markings_4.mcfunction index a0acca6..a91aab5 100644 --- a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_markings_4.mcfunction +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/horse_markings_4.mcfunction @@ -1,8 +1,8 @@ # horse_markings_4 (7 entities) summon minecraft:horse ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:1024} -summon minecraft:horse ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:1025} -summon minecraft:horse ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:1026} -summon minecraft:horse ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:1027} -summon minecraft:horse ~16 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:1028} -summon minecraft:horse ~20 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:1029} -summon minecraft:horse ~24 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:1030} +summon minecraft:horse ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:1025} +summon minecraft:horse ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:1026} +summon minecraft:horse ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:1027} +summon minecraft:horse ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:1028} +summon minecraft:horse ~15 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:1029} +summon minecraft:horse ~18 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:1030} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/llama.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/llama.mcfunction index f49ccde..a05a298 100644 --- a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/llama.mcfunction +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/llama.mcfunction @@ -1,24 +1,8 @@ -# llama (23 entities) +# llama (7 entities) summon minecraft:llama ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0} -summon minecraft:llama ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:1} -summon minecraft:llama ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:2} -summon minecraft:llama ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:3} -summon minecraft:llama ~16 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,ChestedHorse:1b} -summon minecraft:llama ~20 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,Age:-24000} -summon minecraft:llama ~24 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:2,Age:-24000} -summon minecraft:llama ~28 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:white_carpet",count:1}}} -summon minecraft:llama ~32 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:orange_carpet",count:1}}} -summon minecraft:llama ~36 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:magenta_carpet",count:1}}} -summon minecraft:llama ~40 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:light_blue_carpet",count:1}}} -summon minecraft:llama ~44 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:yellow_carpet",count:1}}} -summon minecraft:llama ~48 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:lime_carpet",count:1}}} -summon minecraft:llama ~52 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:pink_carpet",count:1}}} -summon minecraft:llama ~56 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:gray_carpet",count:1}}} -summon minecraft:llama ~60 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:light_gray_carpet",count:1}}} -summon minecraft:llama ~64 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:cyan_carpet",count:1}}} -summon minecraft:llama ~68 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:purple_carpet",count:1}}} -summon minecraft:llama ~72 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:blue_carpet",count:1}}} -summon minecraft:llama ~76 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:brown_carpet",count:1}}} -summon minecraft:llama ~80 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:green_carpet",count:1}}} -summon minecraft:llama ~84 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:red_carpet",count:1}}} -summon minecraft:llama ~88 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:black_carpet",count:1}}} +summon minecraft:llama ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:1} +summon minecraft:llama ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:2} +summon minecraft:llama ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:3} +summon minecraft:llama ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,ChestedHorse:1b} +summon minecraft:llama ~15 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,Age:-24000} +summon minecraft:llama ~18 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:2,Age:-24000} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/llama_carpet.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/llama_carpet.mcfunction new file mode 100644 index 0000000..f22e7dc --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/llama_carpet.mcfunction @@ -0,0 +1,17 @@ +# llama_carpet (16 entities) +summon minecraft:llama ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:white_carpet",count:1}}} +summon minecraft:llama ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:orange_carpet",count:1}}} +summon minecraft:llama ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:magenta_carpet",count:1}}} +summon minecraft:llama ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:light_blue_carpet",count:1}}} +summon minecraft:llama ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:yellow_carpet",count:1}}} +summon minecraft:llama ~15 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:lime_carpet",count:1}}} +summon minecraft:llama ~18 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:pink_carpet",count:1}}} +summon minecraft:llama ~21 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:gray_carpet",count:1}}} +summon minecraft:llama ~24 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:light_gray_carpet",count:1}}} +summon minecraft:llama ~27 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:cyan_carpet",count:1}}} +summon minecraft:llama ~30 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:purple_carpet",count:1}}} +summon minecraft:llama ~33 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:blue_carpet",count:1}}} +summon minecraft:llama ~36 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:brown_carpet",count:1}}} +summon minecraft:llama ~39 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:green_carpet",count:1}}} +summon minecraft:llama ~42 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:red_carpet",count:1}}} +summon minecraft:llama ~45 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,equipment:{body:{id:"minecraft:black_carpet",count:1}}} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/misc.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/misc.mcfunction index 399eec5..dedc83f 100644 --- a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/misc.mcfunction +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/misc.mcfunction @@ -1,5 +1,5 @@ # misc (4 entities) summon minecraft:bat ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} -summon minecraft:allay ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} -summon minecraft:vex ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} -summon minecraft:breeze ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:allay ~2 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:vex ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:breeze ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/monster.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/monster.mcfunction new file mode 100644 index 0000000..83e4ec6 --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/monster.mcfunction @@ -0,0 +1,16 @@ +# monster (15 entities) +summon minecraft:creeper ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:spider ~2 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:cave_spider ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:silverfish ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:endermite ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:enderman ~10 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:blaze ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:witch ~14 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:evoker ~16 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:vindicator ~18 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:pillager ~20 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:illusioner ~22 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:phantom ~24 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:shulker ~26 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:creaking ~28 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/monster_big.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/monster_big.mcfunction new file mode 100644 index 0000000..df1db1c --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/monster_big.mcfunction @@ -0,0 +1,6 @@ +# monster_big (5 entities) +summon minecraft:ravager ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:warden ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:wither ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:elder_guardian ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:giant ~16 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/mooshroom.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/mooshroom.mcfunction new file mode 100644 index 0000000..ce3ffb0 --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/mooshroom.mcfunction @@ -0,0 +1,5 @@ +# mooshroom (4 entities) +summon minecraft:mooshroom ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:red"} +summon minecraft:mooshroom ~2 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:brown"} +summon minecraft:mooshroom ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:red",Age:-24000} +summon minecraft:mooshroom ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:brown",Age:-24000} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/ocelot.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/ocelot.mcfunction index 36ba7d1..bc3f897 100644 --- a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/ocelot.mcfunction +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/ocelot.mcfunction @@ -1,4 +1,4 @@ # ocelot (3 entities) summon minecraft:ocelot ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} -summon minecraft:ocelot ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Sitting:1} -summon minecraft:ocelot ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} +summon minecraft:ocelot ~2 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Sitting:1b} +summon minecraft:ocelot ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/parrot.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/parrot.mcfunction new file mode 100644 index 0000000..cf7075b --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/parrot.mcfunction @@ -0,0 +1,6 @@ +# parrot (5 entities) +summon minecraft:parrot ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:red_blue"} +summon minecraft:parrot ~2 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:blue"} +summon minecraft:parrot ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:green"} +summon minecraft:parrot ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:yellow_blue"} +summon minecraft:parrot ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:gray"} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/pig.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/pig.mcfunction index ffcf950..778d55d 100644 --- a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/pig.mcfunction +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/pig.mcfunction @@ -1,8 +1,8 @@ # pig (7 entities) summon minecraft:pig ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:temperate"} -summon minecraft:pig ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:warm"} -summon minecraft:pig ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:cold"} -summon minecraft:pig ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:temperate",Age:-24000} -summon minecraft:pig ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:warm",Age:-24000} -summon minecraft:pig ~15 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:cold",Age:-24000} -summon minecraft:pig ~18 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:temperate",Saddle:1b} +summon minecraft:pig ~2 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:warm"} +summon minecraft:pig ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:cold"} +summon minecraft:pig ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:temperate",Age:-24000} +summon minecraft:pig ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:warm",Age:-24000} +summon minecraft:pig ~10 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:cold",Age:-24000} +summon minecraft:pig ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:temperate",Saddle:1b} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/piglin.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/piglin.mcfunction new file mode 100644 index 0000000..3aab06d --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/piglin.mcfunction @@ -0,0 +1,6 @@ +# piglin (5 entities) +summon minecraft:piglin ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:piglin ~2 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],IsBaby:1b} +summon minecraft:piglin_brute ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:zombified_piglin ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:zombified_piglin ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],IsBaby:1b} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/prop.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/prop.mcfunction new file mode 100644 index 0000000..cf04053 --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/prop.mcfunction @@ -0,0 +1,11 @@ +# prop (10 entities) +summon minecraft:armor_stand ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:armor_stand ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Small:1b} +summon minecraft:end_crystal ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:minecart ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:chest_minecart ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:furnace_minecart ~15 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:hopper_minecart ~18 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:tnt_minecart ~21 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:spawner_minecart ~24 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:command_block_minecart ~27 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/rabbit.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/rabbit.mcfunction new file mode 100644 index 0000000..39d7b77 --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/rabbit.mcfunction @@ -0,0 +1,9 @@ +# rabbit (8 entities) +summon minecraft:rabbit ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:brown"} +summon minecraft:rabbit ~2 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:white"} +summon minecraft:rabbit ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:black"} +summon minecraft:rabbit ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:white_splotched"} +summon minecraft:rabbit ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:gold"} +summon minecraft:rabbit ~10 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:salt"} +summon minecraft:rabbit ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:evil"} +summon minecraft:rabbit ~14 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:brown",Age:-24000} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/salmon.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/salmon.mcfunction new file mode 100644 index 0000000..cd031ad --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/salmon.mcfunction @@ -0,0 +1,7 @@ +# salmon (6 entities) +summon minecraft:salmon ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],type:"small"} +summon minecraft:salmon ~2 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],type:"medium"} +summon minecraft:salmon ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],type:"large"} +summon minecraft:pufferfish ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],PuffState:0} +summon minecraft:pufferfish ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],PuffState:1} +summon minecraft:pufferfish ~10 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],PuffState:2} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/sheep.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/sheep.mcfunction index de7ee98..b2aa84c 100644 --- a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/sheep.mcfunction +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/sheep.mcfunction @@ -1,17 +1,17 @@ # sheep (16 entities) summon minecraft:sheep ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:0b} -summon minecraft:sheep ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:1b} -summon minecraft:sheep ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:2b} -summon minecraft:sheep ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:3b} -summon minecraft:sheep ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:4b} -summon minecraft:sheep ~15 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:5b} -summon minecraft:sheep ~18 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:6b} -summon minecraft:sheep ~21 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:7b} -summon minecraft:sheep ~24 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:8b} -summon minecraft:sheep ~27 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:9b} -summon minecraft:sheep ~30 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:10b} -summon minecraft:sheep ~33 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:11b} -summon minecraft:sheep ~36 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:12b} -summon minecraft:sheep ~39 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:13b} -summon minecraft:sheep ~42 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:14b} -summon minecraft:sheep ~45 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:15b} +summon minecraft:sheep ~2 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:1b} +summon minecraft:sheep ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:2b} +summon minecraft:sheep ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:3b} +summon minecraft:sheep ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:4b} +summon minecraft:sheep ~10 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:5b} +summon minecraft:sheep ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:6b} +summon minecraft:sheep ~14 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:7b} +summon minecraft:sheep ~16 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:8b} +summon minecraft:sheep ~18 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:9b} +summon minecraft:sheep ~20 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:10b} +summon minecraft:sheep ~22 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:11b} +summon minecraft:sheep ~24 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:12b} +summon minecraft:sheep ~26 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:13b} +summon minecraft:sheep ~28 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:14b} +summon minecraft:sheep ~30 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:15b} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/sheep_states.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/sheep_states.mcfunction index a221624..93e62dc 100644 --- a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/sheep_states.mcfunction +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/sheep_states.mcfunction @@ -1,8 +1,8 @@ # sheep_states (7 entities) summon minecraft:sheep ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:0b,Sheared:1b} -summon minecraft:sheep ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:15b,Sheared:1b} -summon minecraft:sheep ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:14b,Sheared:1b} -summon minecraft:sheep ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:0b,Age:-24000} -summon minecraft:sheep ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:4b,Age:-24000} -summon minecraft:sheep ~15 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:14b,Age:-24000} -summon minecraft:sheep ~18 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:0b,Sheared:1b,Age:-24000} +summon minecraft:sheep ~2 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:15b,Sheared:1b} +summon minecraft:sheep ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:14b,Sheared:1b} +summon minecraft:sheep ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:0b,Age:-24000} +summon minecraft:sheep ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:4b,Age:-24000} +summon minecraft:sheep ~10 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:14b,Age:-24000} +summon minecraft:sheep ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Color:0b,Sheared:1b,Age:-24000} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/skeleton.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/skeleton.mcfunction index 56fc6bb..a8e4c65 100644 --- a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/skeleton.mcfunction +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/skeleton.mcfunction @@ -1,6 +1,6 @@ # skeleton (5 entities) summon minecraft:skeleton ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} -summon minecraft:wither_skeleton ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} -summon minecraft:stray ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} -summon minecraft:bogged ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} -summon minecraft:parched ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:wither_skeleton ~2 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:stray ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:bogged ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:parched ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/trader_llama.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/trader_llama.mcfunction index 4ee7db9..af42b64 100644 --- a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/trader_llama.mcfunction +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/trader_llama.mcfunction @@ -1,7 +1,7 @@ # trader_llama (6 entities) summon minecraft:trader_llama ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0} -summon minecraft:trader_llama ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:1} -summon minecraft:trader_llama ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:2} -summon minecraft:trader_llama ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:3} -summon minecraft:trader_llama ~16 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,ChestedHorse:1b} -summon minecraft:trader_llama ~20 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,Age:-24000} +summon minecraft:trader_llama ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:1} +summon minecraft:trader_llama ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:2} +summon minecraft:trader_llama ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:3} +summon minecraft:trader_llama ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,ChestedHorse:1b} +summon minecraft:trader_llama ~15 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0,Age:-24000} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/tropical_fish.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/tropical_fish.mcfunction index 9222f6d..3a2fdf4 100644 --- a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/tropical_fish.mcfunction +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/tropical_fish.mcfunction @@ -1,13 +1,13 @@ -# tropical_fish (12 entities, every pattern of both body-sizes) +# tropical_fish (12 entities) summon minecraft:tropical_fish ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:251723776} -summon minecraft:tropical_fish ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:262400} -summon minecraft:tropical_fish ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:251986432} -summon minecraft:tropical_fish ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:590592} -summon minecraft:tropical_fish ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:252380160} -summon minecraft:tropical_fish ~15 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:918784} -summon minecraft:tropical_fish ~18 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:251723777} -summon minecraft:tropical_fish ~21 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:262401} -summon minecraft:tropical_fish ~24 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:251986433} -summon minecraft:tropical_fish ~27 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:590593} -summon minecraft:tropical_fish ~30 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:252380161} -summon minecraft:tropical_fish ~33 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:918785} +summon minecraft:tropical_fish ~2 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:262400} +summon minecraft:tropical_fish ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:251986432} +summon minecraft:tropical_fish ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:590592} +summon minecraft:tropical_fish ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:252380160} +summon minecraft:tropical_fish ~10 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:918784} +summon minecraft:tropical_fish ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:251723777} +summon minecraft:tropical_fish ~14 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:262401} +summon minecraft:tropical_fish ~16 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:251986433} +summon minecraft:tropical_fish ~18 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:590593} +summon minecraft:tropical_fish ~20 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:252380161} +summon minecraft:tropical_fish ~22 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:918785} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/undead_horse.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/undead_horse.mcfunction index 134e25d..8fff1db 100644 --- a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/undead_horse.mcfunction +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/undead_horse.mcfunction @@ -1,5 +1,5 @@ # undead_horse (4 entities) summon minecraft:skeleton_horse ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} -summon minecraft:skeleton_horse ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} -summon minecraft:zombie_horse ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} -summon minecraft:zombie_horse ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} +summon minecraft:skeleton_horse ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} +summon minecraft:zombie_horse ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:zombie_horse ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/villager.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/villager.mcfunction new file mode 100644 index 0000000..9e3b134 --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/villager.mcfunction @@ -0,0 +1,6 @@ +# villager (5 entities) +summon minecraft:villager ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:villager ~2 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} +summon minecraft:zombie_villager ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:zombie_villager ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],IsBaby:1b} +summon minecraft:wandering_trader ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/wolf.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/wolf.mcfunction new file mode 100644 index 0000000..3adc8e4 --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/wolf.mcfunction @@ -0,0 +1,12 @@ +# wolf (11 entities) +summon minecraft:wolf ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:pale"} +summon minecraft:wolf ~2 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:ashen"} +summon minecraft:wolf ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:black"} +summon minecraft:wolf ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:chestnut"} +summon minecraft:wolf ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:rusty"} +summon minecraft:wolf ~10 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:snowy"} +summon minecraft:wolf ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:spotted"} +summon minecraft:wolf ~14 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:striped"} +summon minecraft:wolf ~16 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:woods"} +summon minecraft:wolf ~18 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:pale",Age:-24000} +summon minecraft:wolf ~20 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:pale",Owner:[I;1,2,3,4]} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/zombie.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/zombie.mcfunction index b085d1e..139591f 100644 --- a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/zombie.mcfunction +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/zombie.mcfunction @@ -1,7 +1,7 @@ # zombie (6 entities) summon minecraft:zombie ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} -summon minecraft:zombie ~3 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],IsBaby:1b} -summon minecraft:husk ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} -summon minecraft:husk ~9 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],IsBaby:1b} -summon minecraft:drowned ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} -summon minecraft:drowned ~15 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],IsBaby:1b} +summon minecraft:zombie ~2 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],IsBaby:1b} +summon minecraft:husk ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:husk ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],IsBaby:1b} +summon minecraft:drowned ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:drowned ~10 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],IsBaby:1b} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/platform.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/platform.mcfunction index 2e80c79..804f5c6 100644 --- a/generator/datapack/bluemap-entity-test/data/bme_test/function/platform.mcfunction +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/platform.mcfunction @@ -1,3 +1,3 @@ -fill ~-2 ~-1 ~-2 ~90 ~-1 ~147 minecraft:white_concrete -fill ~-2 ~ ~-2 ~90 ~8 ~147 minecraft:air +fill ~-2 ~-1 ~-2 ~47 ~-1 ~193 minecraft:white_concrete +fill ~-2 ~ ~-2 ~47 ~10 ~193 minecraft:air diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/spawn.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/spawn.mcfunction index 8c86dac..7c60d6b 100644 --- a/generator/datapack/bluemap-entity-test/data/bme_test/function/spawn.mcfunction +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/spawn.mcfunction @@ -2,35 +2,53 @@ function bme_test:kill execute positioned ~ ~ ~0 run function bme_test:group/sheep -execute positioned ~ ~ ~4 run function bme_test:group/sheep_states -execute positioned ~ ~ ~8 run function bme_test:group/cow +execute positioned ~ ~ ~3 run function bme_test:group/sheep_states +execute positioned ~ ~ ~6 run function bme_test:group/cow +execute positioned ~ ~ ~9 run function bme_test:group/mooshroom execute positioned ~ ~ ~12 run function bme_test:group/pig -execute positioned ~ ~ ~16 run function bme_test:group/chicken -execute positioned ~ ~ ~20 run function bme_test:group/cat -execute positioned ~ ~ ~24 run function bme_test:group/ocelot -execute positioned ~ ~ ~28 run function bme_test:group/fox -execute positioned ~ ~ ~32 run function bme_test:group/frog -execute positioned ~ ~ ~36 run function bme_test:group/axolotl -execute positioned ~ ~ ~40 run function bme_test:group/bee -execute positioned ~ ~ ~44 run function bme_test:group/llama -execute positioned ~ ~ ~49 run function bme_test:group/trader_llama -execute positioned ~ ~ ~54 run function bme_test:group/horse_markings_0 -execute positioned ~ ~ ~59 run function bme_test:group/horse_markings_1 -execute positioned ~ ~ ~64 run function bme_test:group/horse_markings_2 -execute positioned ~ ~ ~69 run function bme_test:group/horse_markings_3 -execute positioned ~ ~ ~74 run function bme_test:group/horse_markings_4 -execute positioned ~ ~ ~79 run function bme_test:group/horse_baby -execute positioned ~ ~ ~84 run function bme_test:group/chested_horse -execute positioned ~ ~ ~89 run function bme_test:group/undead_horse -execute positioned ~ ~ ~94 run function bme_test:group/zombie -execute positioned ~ ~ ~98 run function bme_test:group/skeleton -execute positioned ~ ~ ~102 run function bme_test:group/armadillo -execute positioned ~ ~ ~106 run function bme_test:group/camel -execute positioned ~ ~ ~111 run function bme_test:group/copper_golem -execute positioned ~ ~ ~115 run function bme_test:group/golem -execute positioned ~ ~ ~120 run function bme_test:group/aquatic -execute positioned ~ ~ ~124 run function bme_test:group/tropical_fish -execute positioned ~ ~ ~128 run function bme_test:group/ghast -execute positioned ~ ~ ~142 run function bme_test:group/misc +execute positioned ~ ~ ~15 run function bme_test:group/chicken +execute positioned ~ ~ ~18 run function bme_test:group/rabbit +execute positioned ~ ~ ~21 run function bme_test:group/parrot +execute positioned ~ ~ ~24 run function bme_test:group/cat +execute positioned ~ ~ ~27 run function bme_test:group/cat_collar +execute positioned ~ ~ ~30 run function bme_test:group/ocelot +execute positioned ~ ~ ~33 run function bme_test:group/fox +execute positioned ~ ~ ~36 run function bme_test:group/wolf +execute positioned ~ ~ ~39 run function bme_test:group/beast +execute positioned ~ ~ ~43 run function bme_test:group/frog +execute positioned ~ ~ ~46 run function bme_test:group/axolotl +execute positioned ~ ~ ~49 run function bme_test:group/bee +execute positioned ~ ~ ~52 run function bme_test:group/llama +execute positioned ~ ~ ~56 run function bme_test:group/llama_carpet +execute positioned ~ ~ ~60 run function bme_test:group/trader_llama +execute positioned ~ ~ ~64 run function bme_test:group/horse_markings_0 +execute positioned ~ ~ ~68 run function bme_test:group/horse_markings_1 +execute positioned ~ ~ ~72 run function bme_test:group/horse_markings_2 +execute positioned ~ ~ ~76 run function bme_test:group/horse_markings_3 +execute positioned ~ ~ ~80 run function bme_test:group/horse_markings_4 +execute positioned ~ ~ ~84 run function bme_test:group/horse_baby +execute positioned ~ ~ ~88 run function bme_test:group/chested_horse +execute positioned ~ ~ ~92 run function bme_test:group/undead_horse +execute positioned ~ ~ ~96 run function bme_test:group/camel +execute positioned ~ ~ ~101 run function bme_test:group/armadillo +execute positioned ~ ~ ~104 run function bme_test:group/zombie +execute positioned ~ ~ ~107 run function bme_test:group/skeleton +execute positioned ~ ~ ~110 run function bme_test:group/piglin +execute positioned ~ ~ ~113 run function bme_test:group/hoglin +execute positioned ~ ~ ~117 run function bme_test:group/villager +execute positioned ~ ~ ~120 run function bme_test:group/monster +execute positioned ~ ~ ~123 run function bme_test:group/monster_big +execute positioned ~ ~ ~128 run function bme_test:group/cube +execute positioned ~ ~ ~132 run function bme_test:group/copper_golem +execute positioned ~ ~ ~135 run function bme_test:group/golem +execute positioned ~ ~ ~139 run function bme_test:group/aquatic +execute positioned ~ ~ ~142 run function bme_test:group/salmon +execute positioned ~ ~ ~145 run function bme_test:group/tropical_fish +execute positioned ~ ~ ~148 run function bme_test:group/ghast +execute positioned ~ ~ ~158 run function bme_test:group/misc +execute positioned ~ ~ ~161 run function bme_test:group/ender_dragon +execute positioned ~ ~ ~181 run function bme_test:group/prop +execute positioned ~ ~ ~185 run function bme_test:group/boat +execute positioned ~ ~ ~189 run function bme_test:group/chest_boat -tellraw @s {"text":"[bme] spawned 214 test-entities in 31 groups","color":"green"} +tellraw @s {"text":"[bme] spawned 350 test-entities in 49 groups","color":"green"} From 230b0c0da0b72c5d597c3efa376af33170728816 Mon Sep 17 00:00:00 2001 From: miraculixx Date: Wed, 12 Aug 2026 19:20:24 +0200 Subject: [PATCH 17/34] Fix variant naming --- .../bme_test/function/group/mooshroom.mcfunction | 8 ++++---- .../bme_test/function/group/parrot.mcfunction | 10 +++++----- .../bme_test/function/group/rabbit.mcfunction | 16 ++++++++-------- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/mooshroom.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/mooshroom.mcfunction index ce3ffb0..df98bac 100644 --- a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/mooshroom.mcfunction +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/mooshroom.mcfunction @@ -1,5 +1,5 @@ # mooshroom (4 entities) -summon minecraft:mooshroom ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:red"} -summon minecraft:mooshroom ~2 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:brown"} -summon minecraft:mooshroom ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:red",Age:-24000} -summon minecraft:mooshroom ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:brown",Age:-24000} +summon minecraft:mooshroom ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Type:"red"} +summon minecraft:mooshroom ~2 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Type:"brown"} +summon minecraft:mooshroom ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Type:"red",Age:-24000} +summon minecraft:mooshroom ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Type:"brown",Age:-24000} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/parrot.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/parrot.mcfunction index cf7075b..85177bf 100644 --- a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/parrot.mcfunction +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/parrot.mcfunction @@ -1,6 +1,6 @@ # parrot (5 entities) -summon minecraft:parrot ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:red_blue"} -summon minecraft:parrot ~2 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:blue"} -summon minecraft:parrot ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:green"} -summon minecraft:parrot ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:yellow_blue"} -summon minecraft:parrot ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:gray"} +summon minecraft:parrot ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:0} +summon minecraft:parrot ~2 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:1} +summon minecraft:parrot ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:2} +summon minecraft:parrot ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:3} +summon minecraft:parrot ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Variant:4} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/rabbit.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/rabbit.mcfunction index 39d7b77..f41c3bc 100644 --- a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/rabbit.mcfunction +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/rabbit.mcfunction @@ -1,9 +1,9 @@ # rabbit (8 entities) -summon minecraft:rabbit ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:brown"} -summon minecraft:rabbit ~2 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:white"} -summon minecraft:rabbit ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:black"} -summon minecraft:rabbit ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:white_splotched"} -summon minecraft:rabbit ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:gold"} -summon minecraft:rabbit ~10 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:salt"} -summon minecraft:rabbit ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:evil"} -summon minecraft:rabbit ~14 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:brown",Age:-24000} +summon minecraft:rabbit ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],RabbitType:0} +summon minecraft:rabbit ~2 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],RabbitType:1} +summon minecraft:rabbit ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],RabbitType:2} +summon minecraft:rabbit ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],RabbitType:3} +summon minecraft:rabbit ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],RabbitType:4} +summon minecraft:rabbit ~10 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],RabbitType:5} +summon minecraft:rabbit ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],RabbitType:99} +summon minecraft:rabbit ~14 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],RabbitType:0,Age:-24000} From 35e4d4dfbf0b44e08a13ac7a2bb3c7b1d6ee63e5 Mon Sep 17 00:00:00 2001 From: miraculixx Date: Wed, 12 Aug 2026 19:21:37 +0200 Subject: [PATCH 18/34] Render cat collars --- .../de/bluecolored/bluemap/entities/entity/Cat.java | 6 ++++++ .../bluemap/entities/renderer/CatRenderer.java | 11 +++++++++++ 2 files changed, 17 insertions(+) diff --git a/src/main/java/de/bluecolored/bluemap/entities/entity/Cat.java b/src/main/java/de/bluecolored/bluemap/entities/entity/Cat.java index 529c0c9..024a534 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/entity/Cat.java +++ b/src/main/java/de/bluecolored/bluemap/entities/entity/Cat.java @@ -36,4 +36,10 @@ public class Cat extends AgeVariantEntity { @NBTName("Sitting") boolean sitting; + @NBTName("CollarColor") byte collarColor; + @NBTName("Owner") int[] owner; + + public boolean isTame() { + return owner != null && owner.length > 0; + } } diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/CatRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/CatRenderer.java index 296e274..039e0fb 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/renderer/CatRenderer.java +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/CatRenderer.java @@ -34,6 +34,7 @@ import de.bluecolored.bluemap.core.util.Key; import de.bluecolored.bluemap.core.world.Entity; import de.bluecolored.bluemap.core.world.block.BlockNeighborhood; +import de.bluecolored.bluemap.entities.data.DyeColors; import de.bluecolored.bluemap.entities.entity.Cat; public class CatRenderer extends CustomResourceModelRenderer { @@ -53,6 +54,16 @@ public void render(Entity entity, BlockNeighborhood block, Part part, TileModelV // render chosen model super.render(entity, block, model.getResource(getModelProvider()), TintColorProvider.NO_TINT, tileModel); + // render collar layer tinted color + if (cat.isTame()) { + int collarColor = DyeColors.argb(cat.getCollarColor()); + TintColorProvider collarTint = (index, target) -> target.set(collarColor, true); + + String collarPath = "entity/cat" + (cat.getAge() < 0 ? "_baby" : "") + "/collar"; + ResourcePath collar = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, collarPath); + super.render(entity, block, collar.getResource(getModelProvider()), collarTint, tileModel); + } + // apply part transform if (part.isTransformed()) tileModel.transform(part.getTransformMatrix()); From 23245dd18c244d7d00953d7705a906beb2ed4a75 Mon Sep 17 00:00:00 2001 From: miraculixx Date: Wed, 12 Aug 2026 19:22:49 +0200 Subject: [PATCH 19/34] Add missing mobs & props --- .../bluecolored/bluemap/entities/Addon.java | 31 +++++++++ .../bluemap/entities/data/DyeColors.java | 44 +++++++++++++ .../bluemap/entities/entity/ArmorStand.java | 40 ++++++++++++ .../bluemap/entities/entity/BabyEntity.java | 40 ++++++++++++ .../bluemap/entities/entity/Mooshroom.java | 45 +++++++++++++ .../bluemap/entities/entity/Parrot.java | 51 +++++++++++++++ .../bluemap/entities/entity/Pufferfish.java | 49 ++++++++++++++ .../bluemap/entities/entity/Rabbit.java | 53 +++++++++++++++ .../bluemap/entities/entity/Salmon.java | 50 ++++++++++++++ .../bluemap/entities/entity/Wolf.java | 44 +++++++++++++ .../bluemap/entities/entity/Zombie.java | 12 +--- .../entities/renderer/AgeRenderer.java | 60 +++++++++++++++++ .../entities/renderer/ArmorStandRenderer.java | 59 +++++++++++++++++ .../entities/renderer/BabyRenderer.java | 60 +++++++++++++++++ .../renderer/CustomResourceModelRenderer.java | 6 ++ .../entities/renderer/PufferfishRenderer.java | 57 ++++++++++++++++ .../entities/renderer/SalmonRenderer.java | 59 +++++++++++++++++ .../entities/renderer/VariantRenderer.java | 60 +++++++++++++++++ .../entities/renderer/WolfRenderer.java | 65 +++++++++++++++++++ .../minecraft/entitystates/acacia_boat.json | 5 ++ .../entitystates/acacia_chest_boat.json | 5 ++ .../minecraft/entitystates/armor_stand.json | 5 ++ .../entitystates/bamboo_chest_raft.json | 5 ++ .../minecraft/entitystates/bamboo_raft.json | 5 ++ .../minecraft/entitystates/birch_boat.json | 5 ++ .../entitystates/birch_chest_boat.json | 5 ++ .../assets/minecraft/entitystates/blaze.json | 5 ++ .../minecraft/entitystates/cave_spider.json | 5 ++ .../minecraft/entitystates/cherry_boat.json | 5 ++ .../entitystates/cherry_chest_boat.json | 5 ++ .../entitystates/chest_minecart.json | 5 ++ .../entitystates/command_block_minecart.json | 5 ++ .../minecraft/entitystates/creaking.json | 6 ++ .../minecraft/entitystates/creeper.json | 5 ++ .../minecraft/entitystates/dark_oak_boat.json | 5 ++ .../entitystates/dark_oak_chest_boat.json | 5 ++ .../entitystates/elder_guardian.json | 5 ++ .../minecraft/entitystates/end_crystal.json | 5 ++ .../minecraft/entitystates/ender_dragon.json | 5 ++ .../minecraft/entitystates/enderman.json | 5 ++ .../minecraft/entitystates/endermite.json | 5 ++ .../assets/minecraft/entitystates/evoker.json | 5 ++ .../minecraft/entitystates/evoker_fangs.json | 5 ++ .../entitystates/furnace_minecart.json | 5 ++ .../assets/minecraft/entitystates/giant.json | 5 ++ .../assets/minecraft/entitystates/goat.json | 5 ++ .../assets/minecraft/entitystates/hoglin.json | 5 ++ .../entitystates/hopper_minecart.json | 5 ++ .../minecraft/entitystates/illusioner.json | 5 ++ .../minecraft/entitystates/jungle_boat.json | 5 ++ .../entitystates/jungle_chest_boat.json | 5 ++ .../minecraft/entitystates/leash_knot.json | 5 ++ .../minecraft/entitystates/magma_cube.json | 5 ++ .../minecraft/entitystates/mangrove_boat.json | 5 ++ .../entitystates/mangrove_chest_boat.json | 5 ++ .../minecraft/entitystates/minecart.json | 5 ++ .../minecraft/entitystates/mooshroom.json | 5 ++ .../minecraft/entitystates/nautilus.json | 5 ++ .../minecraft/entitystates/oak_boat.json | 5 ++ .../entitystates/oak_chest_boat.json | 5 ++ .../minecraft/entitystates/pale_oak_boat.json | 5 ++ .../entitystates/pale_oak_chest_boat.json | 5 ++ .../assets/minecraft/entitystates/panda.json | 5 ++ .../assets/minecraft/entitystates/parrot.json | 5 ++ .../minecraft/entitystates/phantom.json | 5 ++ .../assets/minecraft/entitystates/piglin.json | 5 ++ .../minecraft/entitystates/piglin_brute.json | 5 ++ .../minecraft/entitystates/pillager.json | 5 ++ .../minecraft/entitystates/polar_bear.json | 5 ++ .../assets/minecraft/entitystates/rabbit.json | 5 ++ .../minecraft/entitystates/ravager.json | 5 ++ .../minecraft/entitystates/shulker.json | 5 ++ .../minecraft/entitystates/silverfish.json | 5 ++ .../assets/minecraft/entitystates/slime.json | 6 ++ .../minecraft/entitystates/sniffer.json | 5 ++ .../entitystates/spawner_minecart.json | 5 ++ .../assets/minecraft/entitystates/spider.json | 5 ++ .../minecraft/entitystates/spruce_boat.json | 5 ++ .../entitystates/spruce_chest_boat.json | 5 ++ .../minecraft/entitystates/strider.json | 5 ++ .../minecraft/entitystates/sulfur_cube.json | 5 ++ .../minecraft/entitystates/tnt_minecart.json | 5 ++ .../assets/minecraft/entitystates/turtle.json | 5 ++ .../minecraft/entitystates/villager.json | 5 ++ .../minecraft/entitystates/vindicator.json | 5 ++ .../entitystates/wandering_trader.json | 5 ++ .../assets/minecraft/entitystates/warden.json | 5 ++ .../assets/minecraft/entitystates/witch.json | 5 ++ .../assets/minecraft/entitystates/wither.json | 5 ++ .../assets/minecraft/entitystates/wolf.json | 5 ++ .../assets/minecraft/entitystates/zoglin.json | 5 ++ .../entitystates/zombie_nautilus.json | 5 ++ .../entitystates/zombie_villager.json | 5 ++ .../entitystates/zombified_piglin.json | 5 ++ 94 files changed, 1253 insertions(+), 9 deletions(-) create mode 100644 src/main/java/de/bluecolored/bluemap/entities/data/DyeColors.java create mode 100644 src/main/java/de/bluecolored/bluemap/entities/entity/ArmorStand.java create mode 100644 src/main/java/de/bluecolored/bluemap/entities/entity/BabyEntity.java create mode 100644 src/main/java/de/bluecolored/bluemap/entities/entity/Mooshroom.java create mode 100644 src/main/java/de/bluecolored/bluemap/entities/entity/Parrot.java create mode 100644 src/main/java/de/bluecolored/bluemap/entities/entity/Pufferfish.java create mode 100644 src/main/java/de/bluecolored/bluemap/entities/entity/Rabbit.java create mode 100644 src/main/java/de/bluecolored/bluemap/entities/entity/Salmon.java create mode 100644 src/main/java/de/bluecolored/bluemap/entities/entity/Wolf.java create mode 100644 src/main/java/de/bluecolored/bluemap/entities/renderer/AgeRenderer.java create mode 100644 src/main/java/de/bluecolored/bluemap/entities/renderer/ArmorStandRenderer.java create mode 100644 src/main/java/de/bluecolored/bluemap/entities/renderer/BabyRenderer.java create mode 100644 src/main/java/de/bluecolored/bluemap/entities/renderer/PufferfishRenderer.java create mode 100644 src/main/java/de/bluecolored/bluemap/entities/renderer/SalmonRenderer.java create mode 100644 src/main/java/de/bluecolored/bluemap/entities/renderer/VariantRenderer.java create mode 100644 src/main/java/de/bluecolored/bluemap/entities/renderer/WolfRenderer.java create mode 100644 src/main/resources/assets/minecraft/entitystates/acacia_boat.json create mode 100644 src/main/resources/assets/minecraft/entitystates/acacia_chest_boat.json create mode 100644 src/main/resources/assets/minecraft/entitystates/armor_stand.json create mode 100644 src/main/resources/assets/minecraft/entitystates/bamboo_chest_raft.json create mode 100644 src/main/resources/assets/minecraft/entitystates/bamboo_raft.json create mode 100644 src/main/resources/assets/minecraft/entitystates/birch_boat.json create mode 100644 src/main/resources/assets/minecraft/entitystates/birch_chest_boat.json create mode 100644 src/main/resources/assets/minecraft/entitystates/blaze.json create mode 100644 src/main/resources/assets/minecraft/entitystates/cave_spider.json create mode 100644 src/main/resources/assets/minecraft/entitystates/cherry_boat.json create mode 100644 src/main/resources/assets/minecraft/entitystates/cherry_chest_boat.json create mode 100644 src/main/resources/assets/minecraft/entitystates/chest_minecart.json create mode 100644 src/main/resources/assets/minecraft/entitystates/command_block_minecart.json create mode 100644 src/main/resources/assets/minecraft/entitystates/creaking.json create mode 100644 src/main/resources/assets/minecraft/entitystates/creeper.json create mode 100644 src/main/resources/assets/minecraft/entitystates/dark_oak_boat.json create mode 100644 src/main/resources/assets/minecraft/entitystates/dark_oak_chest_boat.json create mode 100644 src/main/resources/assets/minecraft/entitystates/elder_guardian.json create mode 100644 src/main/resources/assets/minecraft/entitystates/end_crystal.json create mode 100644 src/main/resources/assets/minecraft/entitystates/ender_dragon.json create mode 100644 src/main/resources/assets/minecraft/entitystates/enderman.json create mode 100644 src/main/resources/assets/minecraft/entitystates/endermite.json create mode 100644 src/main/resources/assets/minecraft/entitystates/evoker.json create mode 100644 src/main/resources/assets/minecraft/entitystates/evoker_fangs.json create mode 100644 src/main/resources/assets/minecraft/entitystates/furnace_minecart.json create mode 100644 src/main/resources/assets/minecraft/entitystates/giant.json create mode 100644 src/main/resources/assets/minecraft/entitystates/goat.json create mode 100644 src/main/resources/assets/minecraft/entitystates/hoglin.json create mode 100644 src/main/resources/assets/minecraft/entitystates/hopper_minecart.json create mode 100644 src/main/resources/assets/minecraft/entitystates/illusioner.json create mode 100644 src/main/resources/assets/minecraft/entitystates/jungle_boat.json create mode 100644 src/main/resources/assets/minecraft/entitystates/jungle_chest_boat.json create mode 100644 src/main/resources/assets/minecraft/entitystates/leash_knot.json create mode 100644 src/main/resources/assets/minecraft/entitystates/magma_cube.json create mode 100644 src/main/resources/assets/minecraft/entitystates/mangrove_boat.json create mode 100644 src/main/resources/assets/minecraft/entitystates/mangrove_chest_boat.json create mode 100644 src/main/resources/assets/minecraft/entitystates/minecart.json create mode 100644 src/main/resources/assets/minecraft/entitystates/mooshroom.json create mode 100644 src/main/resources/assets/minecraft/entitystates/nautilus.json create mode 100644 src/main/resources/assets/minecraft/entitystates/oak_boat.json create mode 100644 src/main/resources/assets/minecraft/entitystates/oak_chest_boat.json create mode 100644 src/main/resources/assets/minecraft/entitystates/pale_oak_boat.json create mode 100644 src/main/resources/assets/minecraft/entitystates/pale_oak_chest_boat.json create mode 100644 src/main/resources/assets/minecraft/entitystates/panda.json create mode 100644 src/main/resources/assets/minecraft/entitystates/parrot.json create mode 100644 src/main/resources/assets/minecraft/entitystates/phantom.json create mode 100644 src/main/resources/assets/minecraft/entitystates/piglin.json create mode 100644 src/main/resources/assets/minecraft/entitystates/piglin_brute.json create mode 100644 src/main/resources/assets/minecraft/entitystates/pillager.json create mode 100644 src/main/resources/assets/minecraft/entitystates/polar_bear.json create mode 100644 src/main/resources/assets/minecraft/entitystates/rabbit.json create mode 100644 src/main/resources/assets/minecraft/entitystates/ravager.json create mode 100644 src/main/resources/assets/minecraft/entitystates/shulker.json create mode 100644 src/main/resources/assets/minecraft/entitystates/silverfish.json create mode 100644 src/main/resources/assets/minecraft/entitystates/slime.json create mode 100644 src/main/resources/assets/minecraft/entitystates/sniffer.json create mode 100644 src/main/resources/assets/minecraft/entitystates/spawner_minecart.json create mode 100644 src/main/resources/assets/minecraft/entitystates/spider.json create mode 100644 src/main/resources/assets/minecraft/entitystates/spruce_boat.json create mode 100644 src/main/resources/assets/minecraft/entitystates/spruce_chest_boat.json create mode 100644 src/main/resources/assets/minecraft/entitystates/strider.json create mode 100644 src/main/resources/assets/minecraft/entitystates/sulfur_cube.json create mode 100644 src/main/resources/assets/minecraft/entitystates/tnt_minecart.json create mode 100644 src/main/resources/assets/minecraft/entitystates/turtle.json create mode 100644 src/main/resources/assets/minecraft/entitystates/villager.json create mode 100644 src/main/resources/assets/minecraft/entitystates/vindicator.json create mode 100644 src/main/resources/assets/minecraft/entitystates/wandering_trader.json create mode 100644 src/main/resources/assets/minecraft/entitystates/warden.json create mode 100644 src/main/resources/assets/minecraft/entitystates/witch.json create mode 100644 src/main/resources/assets/minecraft/entitystates/wither.json create mode 100644 src/main/resources/assets/minecraft/entitystates/wolf.json create mode 100644 src/main/resources/assets/minecraft/entitystates/zoglin.json create mode 100644 src/main/resources/assets/minecraft/entitystates/zombie_nautilus.json create mode 100644 src/main/resources/assets/minecraft/entitystates/zombie_villager.json create mode 100644 src/main/resources/assets/minecraft/entitystates/zombified_piglin.json diff --git a/src/main/java/de/bluecolored/bluemap/entities/Addon.java b/src/main/java/de/bluecolored/bluemap/entities/Addon.java index 45fc3d8..a28d429 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/Addon.java +++ b/src/main/java/de/bluecolored/bluemap/entities/Addon.java @@ -14,6 +14,15 @@ public class Addon implements Runnable { public static Logger LOGGER = Logger.getLogger("BlueMap Entities Addon"); + /** all baby/adult models where "Age" is a number */ + private static final String[] AGE_TYPES = { + "goat", "hoglin", "panda", "sniffer", "turtle", "strider", + "zoglin", "polar_bear", "nautilus", "villager" + }; + + /** all baby/dault models where "IsBaby" is a bool */ + private static final String[] BABY_TYPES = { "piglin", "zombified_piglin", "zombie_villager" }; + @Override public void run() { EntityType.REGISTRY.register(new EntityType.Impl(Key.minecraft("llama"), Llama.class)); @@ -52,6 +61,17 @@ public void run() { EntityType.REGISTRY.register(new EntityType.Impl(Key.minecraft("frog"), AgeVariantEntity.class)); EntityType.REGISTRY.register(new EntityType.Impl(Key.minecraft("ghast"), MCAEntity.class)); EntityType.REGISTRY.register(new EntityType.Impl(Key.minecraft("happy_ghast"), HappyGhast.class)); + for (String type : AGE_TYPES) + EntityType.REGISTRY.register(new EntityType.Impl(Key.minecraft(type), AgeEntity.class)); + for (String type : BABY_TYPES) + EntityType.REGISTRY.register(new EntityType.Impl(Key.minecraft(type), BabyEntity.class)); + EntityType.REGISTRY.register(new EntityType.Impl(Key.minecraft("mooshroom"), Mooshroom.class)); + EntityType.REGISTRY.register(new EntityType.Impl(Key.minecraft("rabbit"), Rabbit.class)); + EntityType.REGISTRY.register(new EntityType.Impl(Key.minecraft("parrot"), Parrot.class)); + EntityType.REGISTRY.register(new EntityType.Impl(Key.minecraft("wolf"), Wolf.class)); + EntityType.REGISTRY.register(new EntityType.Impl(Key.minecraft("salmon"), Salmon.class)); + EntityType.REGISTRY.register(new EntityType.Impl(Key.minecraft("armor_stand"), ArmorStand.class)); + EntityType.REGISTRY.register(new EntityType.Impl(Key.minecraft("pufferfish"), Pufferfish.class)); EntityRendererType.REGISTRY.register(new EntityRendererType.Impl(Key.minecraft("llama"), LlamaRenderer::new)); @@ -90,6 +110,17 @@ public void run() { EntityRendererType.REGISTRY.register(new EntityRendererType.Impl(Key.minecraft("frog"), FrogRenderer::new)); EntityRendererType.REGISTRY.register(new EntityRendererType.Impl(Key.minecraft("ghast"), GhastRenderer::new)); EntityRendererType.REGISTRY.register(new EntityRendererType.Impl(Key.minecraft("happy_ghast"), GhastRenderer::new)); + for (String type : AGE_TYPES) + EntityRendererType.REGISTRY.register(new EntityRendererType.Impl(Key.minecraft(type), AgeRenderer::new)); + for (String type : BABY_TYPES) + EntityRendererType.REGISTRY.register(new EntityRendererType.Impl(Key.minecraft(type), BabyRenderer::new)); + EntityRendererType.REGISTRY.register(new EntityRendererType.Impl(Key.minecraft("mooshroom"), VariantRenderer::new)); + EntityRendererType.REGISTRY.register(new EntityRendererType.Impl(Key.minecraft("rabbit"), VariantRenderer::new)); + EntityRendererType.REGISTRY.register(new EntityRendererType.Impl(Key.minecraft("parrot"), VariantRenderer::new)); + EntityRendererType.REGISTRY.register(new EntityRendererType.Impl(Key.minecraft("wolf"), WolfRenderer::new)); + EntityRendererType.REGISTRY.register(new EntityRendererType.Impl(Key.minecraft("salmon"), SalmonRenderer::new)); + EntityRendererType.REGISTRY.register(new EntityRendererType.Impl(Key.minecraft("armor_stand"), ArmorStandRenderer::new)); + EntityRendererType.REGISTRY.register(new EntityRendererType.Impl(Key.minecraft("pufferfish"), PufferfishRenderer::new)); } } diff --git a/src/main/java/de/bluecolored/bluemap/entities/data/DyeColors.java b/src/main/java/de/bluecolored/bluemap/entities/data/DyeColors.java new file mode 100644 index 0000000..1512751 --- /dev/null +++ b/src/main/java/de/bluecolored/bluemap/entities/data/DyeColors.java @@ -0,0 +1,44 @@ +/* + * This file is part of BlueMap, licensed under the MIT License (MIT). + * + * Copyright (c) Blue (Lukas Rieger) + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package de.bluecolored.bluemap.entities.data; + +/** + * The 16 dye-colors as minecraft tints them on textures (collars, harnesses, ...). + */ +public final class DyeColors { + + private static final int[] COLORS = { + 0xF9FFFE, 0xF9801D, 0xC74EBD, 0x3AB3DA, + 0xFED83D, 0x80C71F, 0xF38BAA, 0x474F52, + 0x9D9D97, 0x169C9C, 0x8932B8, 0x3C44AA, + 0x835432, 0x5E7C16, 0xB02E26, 0x1D1D21 + }; + + private DyeColors() {} + + public static int argb(int color) { + return 0xFF000000 | COLORS[Math.floorMod(color, COLORS.length)]; + } +} diff --git a/src/main/java/de/bluecolored/bluemap/entities/entity/ArmorStand.java b/src/main/java/de/bluecolored/bluemap/entities/entity/ArmorStand.java new file mode 100644 index 0000000..943c5e1 --- /dev/null +++ b/src/main/java/de/bluecolored/bluemap/entities/entity/ArmorStand.java @@ -0,0 +1,40 @@ +/* + * This file is part of BlueMap, licensed under the MIT License (MIT). + * + * Copyright (c) Blue (Lukas Rieger) + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package de.bluecolored.bluemap.entities.entity; + +import de.bluecolored.bluemap.core.world.mca.entity.MCAEntity; +import de.bluecolored.bluenbt.NBTName; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.ToString; + +@Getter +@EqualsAndHashCode(callSuper = true) +@ToString +@SuppressWarnings("FieldMayBeFinal") +public class ArmorStand extends MCAEntity { + + @NBTName("Small") boolean small; +} diff --git a/src/main/java/de/bluecolored/bluemap/entities/entity/BabyEntity.java b/src/main/java/de/bluecolored/bluemap/entities/entity/BabyEntity.java new file mode 100644 index 0000000..be9318b --- /dev/null +++ b/src/main/java/de/bluecolored/bluemap/entities/entity/BabyEntity.java @@ -0,0 +1,40 @@ +/* + * This file is part of BlueMap, licensed under the MIT License (MIT). + * + * Copyright (c) Blue (Lukas Rieger) + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package de.bluecolored.bluemap.entities.entity; + +import de.bluecolored.bluemap.core.world.mca.entity.MCAEntity; +import de.bluecolored.bluenbt.NBTName; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.ToString; + +@Getter +@EqualsAndHashCode(callSuper = true) +@ToString +@SuppressWarnings("FieldMayBeFinal") +public class BabyEntity extends MCAEntity { + + @NBTName("IsBaby") boolean isBaby; +} diff --git a/src/main/java/de/bluecolored/bluemap/entities/entity/Mooshroom.java b/src/main/java/de/bluecolored/bluemap/entities/entity/Mooshroom.java new file mode 100644 index 0000000..4af0a69 --- /dev/null +++ b/src/main/java/de/bluecolored/bluemap/entities/entity/Mooshroom.java @@ -0,0 +1,45 @@ +/* + * This file is part of BlueMap, licensed under the MIT License (MIT). + * + * Copyright (c) Blue (Lukas Rieger) + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package de.bluecolored.bluemap.entities.entity; + +import de.bluecolored.bluenbt.NBTName; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.ToString; + +@Getter +@EqualsAndHashCode(callSuper = true) +@ToString +@SuppressWarnings("FieldMayBeFinal") +public class Mooshroom extends AgeVariantEntity { + + @NBTName("Type") String type; + + /** Mooshrooms keep their variant in "Type" and without a namespace. */ + @Override + public String getRawVariant() { + return type == null || type.isEmpty() ? "red" : type; + } +} diff --git a/src/main/java/de/bluecolored/bluemap/entities/entity/Parrot.java b/src/main/java/de/bluecolored/bluemap/entities/entity/Parrot.java new file mode 100644 index 0000000..eb665ee --- /dev/null +++ b/src/main/java/de/bluecolored/bluemap/entities/entity/Parrot.java @@ -0,0 +1,51 @@ +/* + * This file is part of BlueMap, licensed under the MIT License (MIT). + * + * Copyright (c) Blue (Lukas Rieger) + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package de.bluecolored.bluemap.entities.entity; + +import de.bluecolored.bluenbt.NBTName; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.ToString; + +@Getter +@EqualsAndHashCode(callSuper = true) +@ToString +@SuppressWarnings("FieldMayBeFinal") +public class Parrot extends AgeVariantEntity { + + @NBTName("Variant") int parrotVariant; + + /** Parrots keep their variant as a number, the grey one is spelled the british way. */ + @Override + public String getRawVariant() { + return switch (parrotVariant) { + case 1 -> "blue"; + case 2 -> "green"; + case 3 -> "yellow_blue"; + case 4 -> "grey"; + default -> "red_blue"; + }; + } +} diff --git a/src/main/java/de/bluecolored/bluemap/entities/entity/Pufferfish.java b/src/main/java/de/bluecolored/bluemap/entities/entity/Pufferfish.java new file mode 100644 index 0000000..3a1350b --- /dev/null +++ b/src/main/java/de/bluecolored/bluemap/entities/entity/Pufferfish.java @@ -0,0 +1,49 @@ +/* + * This file is part of BlueMap, licensed under the MIT License (MIT). + * + * Copyright (c) Blue (Lukas Rieger) + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package de.bluecolored.bluemap.entities.entity; + +import de.bluecolored.bluemap.core.world.mca.entity.MCAEntity; +import de.bluecolored.bluenbt.NBTName; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.ToString; + +@Getter +@EqualsAndHashCode(callSuper = true) +@ToString +@SuppressWarnings("FieldMayBeFinal") +public class Pufferfish extends MCAEntity { + + @NBTName("PuffState") int puffState; + + /** The three puff-states are separate models instead of a variant-suffix. */ + public String getModel() { + return switch (puffState) { + case 1 -> "pufferfish_medium"; + case 2 -> "pufferfish_big"; + default -> "pufferfish_small"; + }; + } +} diff --git a/src/main/java/de/bluecolored/bluemap/entities/entity/Rabbit.java b/src/main/java/de/bluecolored/bluemap/entities/entity/Rabbit.java new file mode 100644 index 0000000..6da87f2 --- /dev/null +++ b/src/main/java/de/bluecolored/bluemap/entities/entity/Rabbit.java @@ -0,0 +1,53 @@ +/* + * This file is part of BlueMap, licensed under the MIT License (MIT). + * + * Copyright (c) Blue (Lukas Rieger) + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package de.bluecolored.bluemap.entities.entity; + +import de.bluecolored.bluenbt.NBTName; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.ToString; + +@Getter +@EqualsAndHashCode(callSuper = true) +@ToString +@SuppressWarnings("FieldMayBeFinal") +public class Rabbit extends AgeVariantEntity { + + @NBTName("RabbitType") int rabbitType; + + /** Rabbits keep their variant as a number, the killer-bunny is 99. */ + @Override + public String getRawVariant() { + return switch (rabbitType) { + case 1 -> "white"; + case 2 -> "black"; + case 3 -> "white_splotched"; + case 4 -> "gold"; + case 5 -> "salt"; + case 99 -> "caerbannog"; + default -> "brown"; + }; + } +} diff --git a/src/main/java/de/bluecolored/bluemap/entities/entity/Salmon.java b/src/main/java/de/bluecolored/bluemap/entities/entity/Salmon.java new file mode 100644 index 0000000..f9e6e41 --- /dev/null +++ b/src/main/java/de/bluecolored/bluemap/entities/entity/Salmon.java @@ -0,0 +1,50 @@ +/* + * This file is part of BlueMap, licensed under the MIT License (MIT). + * + * Copyright (c) Blue (Lukas Rieger) + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package de.bluecolored.bluemap.entities.entity; + +import de.bluecolored.bluemap.core.world.mca.entity.MCAEntity; +import de.bluecolored.bluenbt.NBTName; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.ToString; + +@Getter +@EqualsAndHashCode(callSuper = true) +@ToString +@SuppressWarnings("FieldMayBeFinal") +public class Salmon extends MCAEntity { + + @NBTName("type") String type; + + /** The model-folder of this salmon, sizes are separate models instead of a variant-suffix. */ + public String getModel() { + if (type == null) return "salmon"; + return switch (type) { + case "small" -> "salmon_small"; + case "large" -> "salmon_large"; + default -> "salmon"; + }; + } +} diff --git a/src/main/java/de/bluecolored/bluemap/entities/entity/Wolf.java b/src/main/java/de/bluecolored/bluemap/entities/entity/Wolf.java new file mode 100644 index 0000000..d48fc44 --- /dev/null +++ b/src/main/java/de/bluecolored/bluemap/entities/entity/Wolf.java @@ -0,0 +1,44 @@ +/* + * This file is part of BlueMap, licensed under the MIT License (MIT). + * + * Copyright (c) Blue (Lukas Rieger) + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package de.bluecolored.bluemap.entities.entity; + +import de.bluecolored.bluenbt.NBTName; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.ToString; + +@Getter +@EqualsAndHashCode(callSuper = true) +@ToString +@SuppressWarnings("FieldMayBeFinal") +public class Wolf extends AgeVariantEntity { + + @NBTName("Owner") int[] owner; + @NBTName("CollarColor") byte collarColor; + + public boolean isTame() { + return owner != null && owner.length > 0; + } +} diff --git a/src/main/java/de/bluecolored/bluemap/entities/entity/Zombie.java b/src/main/java/de/bluecolored/bluemap/entities/entity/Zombie.java index ca52d36..0ead023 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/entity/Zombie.java +++ b/src/main/java/de/bluecolored/bluemap/entities/entity/Zombie.java @@ -24,15 +24,9 @@ */ package de.bluecolored.bluemap.entities.entity; -import de.bluecolored.bluemap.core.world.mca.entity.MCAEntity; -import de.bluecolored.bluenbt.NBTName; -import lombok.Getter; +import lombok.EqualsAndHashCode; import lombok.ToString; -@Getter +@EqualsAndHashCode(callSuper = true) @ToString -@SuppressWarnings("FieldMayBeFinal") -public class Zombie extends MCAEntity { - - @NBTName("IsBaby") boolean isBaby; -} +public class Zombie extends BabyEntity {} diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/AgeRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/AgeRenderer.java new file mode 100644 index 0000000..d6f20e1 --- /dev/null +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/AgeRenderer.java @@ -0,0 +1,60 @@ +/* + * This file is part of BlueMap, licensed under the MIT License (MIT). + * + * Copyright (c) Blue (Lukas Rieger) + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package de.bluecolored.bluemap.entities.renderer; + +import de.bluecolored.bluemap.core.map.TextureGallery; +import de.bluecolored.bluemap.core.map.hires.RenderSettings; +import de.bluecolored.bluemap.core.map.hires.TileModelView; +import de.bluecolored.bluemap.core.resources.ResourcePath; +import de.bluecolored.bluemap.core.resources.pack.resourcepack.ResourcePack; +import de.bluecolored.bluemap.core.resources.pack.resourcepack.entitystate.Part; +import de.bluecolored.bluemap.core.resources.pack.resourcepack.model.Model; +import de.bluecolored.bluemap.core.util.Key; +import de.bluecolored.bluemap.core.world.Entity; +import de.bluecolored.bluemap.core.world.block.BlockNeighborhood; +import de.bluecolored.bluemap.entities.entity.AgeEntity; + +public class AgeRenderer extends CustomResourceModelRenderer { + + public AgeRenderer(ResourcePack resourcePack, TextureGallery textureGallery, RenderSettings renderSettings) { + super(resourcePack, textureGallery, renderSettings); + } + + @Override + public void render(Entity entity, BlockNeighborhood block, Part part, TileModelView tileModel) { + if (!(entity instanceof AgeEntity aged)) return; + + // model-folder is the entity-type itself, "entity/{type}{age}/main" + String modelPath = "entity/" + entity.getId().getValue() + (aged.getAge() < 0 ? "_baby" : "") + "/main"; + ResourcePath model = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, modelPath); + + super.render(entity, block, model.getResource(getModelProvider()), TintColorProvider.NO_TINT, tileModel); + + // apply part transform + if (part.isTransformed()) + tileModel.transform(part.getTransformMatrix()); + } + +} diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/ArmorStandRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/ArmorStandRenderer.java new file mode 100644 index 0000000..bb6cb8a --- /dev/null +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/ArmorStandRenderer.java @@ -0,0 +1,59 @@ +/* + * This file is part of BlueMap, licensed under the MIT License (MIT). + * + * Copyright (c) Blue (Lukas Rieger) + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package de.bluecolored.bluemap.entities.renderer; + +import de.bluecolored.bluemap.core.map.TextureGallery; +import de.bluecolored.bluemap.core.map.hires.RenderSettings; +import de.bluecolored.bluemap.core.map.hires.TileModelView; +import de.bluecolored.bluemap.core.resources.ResourcePath; +import de.bluecolored.bluemap.core.resources.pack.resourcepack.ResourcePack; +import de.bluecolored.bluemap.core.resources.pack.resourcepack.entitystate.Part; +import de.bluecolored.bluemap.core.resources.pack.resourcepack.model.Model; +import de.bluecolored.bluemap.core.util.Key; +import de.bluecolored.bluemap.core.world.Entity; +import de.bluecolored.bluemap.core.world.block.BlockNeighborhood; +import de.bluecolored.bluemap.entities.entity.ArmorStand; + +public class ArmorStandRenderer extends CustomResourceModelRenderer { + + public ArmorStandRenderer(ResourcePack resourcePack, TextureGallery textureGallery, RenderSettings renderSettings) { + super(resourcePack, textureGallery, renderSettings); + } + + @Override + public void render(Entity entity, BlockNeighborhood block, Part part, TileModelView tileModel) { + if (!(entity instanceof ArmorStand armorStand)) return; + + ResourcePath model = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, + armorStand.isSmall() ? "entity/armor_stand_small/main" : "entity/armor_stand/main"); + + super.render(entity, block, model.getResource(getModelProvider()), TintColorProvider.NO_TINT, tileModel); + + // apply part transform + if (part.isTransformed()) + tileModel.transform(part.getTransformMatrix()); + } + +} diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/BabyRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/BabyRenderer.java new file mode 100644 index 0000000..153aa8e --- /dev/null +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/BabyRenderer.java @@ -0,0 +1,60 @@ +/* + * This file is part of BlueMap, licensed under the MIT License (MIT). + * + * Copyright (c) Blue (Lukas Rieger) + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package de.bluecolored.bluemap.entities.renderer; + +import de.bluecolored.bluemap.core.map.TextureGallery; +import de.bluecolored.bluemap.core.map.hires.RenderSettings; +import de.bluecolored.bluemap.core.map.hires.TileModelView; +import de.bluecolored.bluemap.core.resources.ResourcePath; +import de.bluecolored.bluemap.core.resources.pack.resourcepack.ResourcePack; +import de.bluecolored.bluemap.core.resources.pack.resourcepack.entitystate.Part; +import de.bluecolored.bluemap.core.resources.pack.resourcepack.model.Model; +import de.bluecolored.bluemap.core.util.Key; +import de.bluecolored.bluemap.core.world.Entity; +import de.bluecolored.bluemap.core.world.block.BlockNeighborhood; +import de.bluecolored.bluemap.entities.entity.BabyEntity; + +public class BabyRenderer extends CustomResourceModelRenderer { + + public BabyRenderer(ResourcePack resourcePack, TextureGallery textureGallery, RenderSettings renderSettings) { + super(resourcePack, textureGallery, renderSettings); + } + + @Override + public void render(Entity entity, BlockNeighborhood block, Part part, TileModelView tileModel) { + if (!(entity instanceof BabyEntity baby)) return; + + // model-folder is the entity-type itself, "entity/{type}{age}/main" + String modelPath = "entity/" + entity.getId().getValue() + (baby.isBaby() ? "_baby" : "") + "/main"; + ResourcePath model = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, modelPath); + + super.render(entity, block, model.getResource(getModelProvider()), TintColorProvider.NO_TINT, tileModel); + + // apply part transform + if (part.isTransformed()) + tileModel.transform(part.getTransformMatrix()); + } + +} diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/CustomResourceModelRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/CustomResourceModelRenderer.java index 69ca83f..c8587c5 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/renderer/CustomResourceModelRenderer.java +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/CustomResourceModelRenderer.java @@ -48,6 +48,7 @@ import de.bluecolored.bluemap.core.world.LightData; import de.bluecolored.bluemap.core.world.block.BlockNeighborhood; import lombok.Getter; +import org.checkerframework.checker.nullness.qual.Nullable; import java.util.function.Function; @@ -82,6 +83,11 @@ public CustomResourceModelRenderer(ResourcePack resourcePack, TextureGallery tex for (int i = 0; i < rawUvs.length; i++) rawUvs[i] = new VectorM2f(0, 0); } + @Nullable + protected Model model(String path) { + return new ResourcePath(Key.MINECRAFT_NAMESPACE, path).getResource(modelProvider); + } + @Override public void render(Entity entity, BlockNeighborhood block, Part part, TileModelView tileModel) { render( diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/PufferfishRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/PufferfishRenderer.java new file mode 100644 index 0000000..ecc1c64 --- /dev/null +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/PufferfishRenderer.java @@ -0,0 +1,57 @@ +/* + * This file is part of BlueMap, licensed under the MIT License (MIT). + * + * Copyright (c) Blue (Lukas Rieger) + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package de.bluecolored.bluemap.entities.renderer; + +import de.bluecolored.bluemap.core.map.TextureGallery; +import de.bluecolored.bluemap.core.map.hires.RenderSettings; +import de.bluecolored.bluemap.core.map.hires.TileModelView; +import de.bluecolored.bluemap.core.resources.pack.resourcepack.ResourcePack; +import de.bluecolored.bluemap.core.resources.pack.resourcepack.entitystate.Part; +import de.bluecolored.bluemap.core.resources.pack.resourcepack.model.Model; +import de.bluecolored.bluemap.core.world.Entity; +import de.bluecolored.bluemap.core.world.block.BlockNeighborhood; +import de.bluecolored.bluemap.entities.entity.Pufferfish; + +public class PufferfishRenderer extends CustomResourceModelRenderer { + + public PufferfishRenderer(ResourcePack resourcePack, TextureGallery textureGallery, RenderSettings renderSettings) { + super(resourcePack, textureGallery, renderSettings); + } + + @Override + public void render(Entity entity, BlockNeighborhood block, Part part, TileModelView tileModel) { + if (!(entity instanceof Pufferfish pufferfish)) return; + + Model model = model("entity/" + pufferfish.getModel() + "/main"); + if (model == null) return; + + super.render(entity, block, model, TintColorProvider.NO_TINT, tileModel); + + // apply part transform + if (part.isTransformed()) + tileModel.transform(part.getTransformMatrix()); + } + +} diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/SalmonRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/SalmonRenderer.java new file mode 100644 index 0000000..a7f8c40 --- /dev/null +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/SalmonRenderer.java @@ -0,0 +1,59 @@ +/* + * This file is part of BlueMap, licensed under the MIT License (MIT). + * + * Copyright (c) Blue (Lukas Rieger) + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package de.bluecolored.bluemap.entities.renderer; + +import de.bluecolored.bluemap.core.map.TextureGallery; +import de.bluecolored.bluemap.core.map.hires.RenderSettings; +import de.bluecolored.bluemap.core.map.hires.TileModelView; +import de.bluecolored.bluemap.core.resources.ResourcePath; +import de.bluecolored.bluemap.core.resources.pack.resourcepack.ResourcePack; +import de.bluecolored.bluemap.core.resources.pack.resourcepack.entitystate.Part; +import de.bluecolored.bluemap.core.resources.pack.resourcepack.model.Model; +import de.bluecolored.bluemap.core.util.Key; +import de.bluecolored.bluemap.core.world.Entity; +import de.bluecolored.bluemap.core.world.block.BlockNeighborhood; +import de.bluecolored.bluemap.entities.entity.Salmon; + +public class SalmonRenderer extends CustomResourceModelRenderer { + + public SalmonRenderer(ResourcePack resourcePack, TextureGallery textureGallery, RenderSettings renderSettings) { + super(resourcePack, textureGallery, renderSettings); + } + + @Override + public void render(Entity entity, BlockNeighborhood block, Part part, TileModelView tileModel) { + if (!(entity instanceof Salmon salmon)) return; + + // the three sizes are separate models, "entity/salmon{size}/main" + ResourcePath model = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/" + salmon.getModel() + "/main"); + + super.render(entity, block, model.getResource(getModelProvider()), TintColorProvider.NO_TINT, tileModel); + + // apply part transform + if (part.isTransformed()) + tileModel.transform(part.getTransformMatrix()); + } + +} diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/VariantRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/VariantRenderer.java new file mode 100644 index 0000000..65e588a --- /dev/null +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/VariantRenderer.java @@ -0,0 +1,60 @@ +/* + * This file is part of BlueMap, licensed under the MIT License (MIT). + * + * Copyright (c) Blue (Lukas Rieger) + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package de.bluecolored.bluemap.entities.renderer; + +import de.bluecolored.bluemap.core.map.TextureGallery; +import de.bluecolored.bluemap.core.map.hires.RenderSettings; +import de.bluecolored.bluemap.core.map.hires.TileModelView; +import de.bluecolored.bluemap.core.resources.pack.resourcepack.ResourcePack; +import de.bluecolored.bluemap.core.resources.pack.resourcepack.entitystate.Part; +import de.bluecolored.bluemap.core.resources.pack.resourcepack.model.Model; +import de.bluecolored.bluemap.core.world.Entity; +import de.bluecolored.bluemap.core.world.block.BlockNeighborhood; +import de.bluecolored.bluemap.entities.entity.AgeVariantEntity; + +public class VariantRenderer extends CustomResourceModelRenderer { + + public VariantRenderer(ResourcePack resourcePack, TextureGallery textureGallery, RenderSettings renderSettings) { + super(resourcePack, textureGallery, renderSettings); + } + + @Override + public void render(Entity entity, BlockNeighborhood block, Part part, TileModelView tileModel) { + if (!(entity instanceof AgeVariantEntity variant)) return; + + // model-folder is the entity-type itself, "entity/{type}{age}/main_{variant}" + String folder = "entity/" + entity.getId().getValue() + (variant.getAge() < 0 ? "_baby" : ""); + Model model = model(folder + "/main_" + variant.getRawVariant()); + if (model == null) model = model(folder + "/main"); + if (model == null) return; + + super.render(entity, block, model, TintColorProvider.NO_TINT, tileModel); + + // apply part transform + if (part.isTransformed()) + tileModel.transform(part.getTransformMatrix()); + } + +} diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/WolfRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/WolfRenderer.java new file mode 100644 index 0000000..26132bf --- /dev/null +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/WolfRenderer.java @@ -0,0 +1,65 @@ +/* + * This file is part of BlueMap, licensed under the MIT License (MIT). + * + * Copyright (c) Blue (Lukas Rieger) + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package de.bluecolored.bluemap.entities.renderer; + +import de.bluecolored.bluemap.core.map.TextureGallery; +import de.bluecolored.bluemap.core.map.hires.RenderSettings; +import de.bluecolored.bluemap.core.map.hires.TileModelView; +import de.bluecolored.bluemap.core.resources.pack.resourcepack.ResourcePack; +import de.bluecolored.bluemap.core.resources.pack.resourcepack.entitystate.Part; +import de.bluecolored.bluemap.core.resources.pack.resourcepack.model.Model; +import de.bluecolored.bluemap.core.world.Entity; +import de.bluecolored.bluemap.core.world.block.BlockNeighborhood; +import de.bluecolored.bluemap.entities.entity.Wolf; + +public class WolfRenderer extends CustomResourceModelRenderer { + + private static final String DEFAULT_VARIANT = "pale"; + + public WolfRenderer(ResourcePack resourcePack, TextureGallery textureGallery, RenderSettings renderSettings) { + super(resourcePack, textureGallery, renderSettings); + } + + @Override + public void render(Entity entity, BlockNeighborhood block, Part part, TileModelView tileModel) { + if (!(entity instanceof Wolf wolf)) return; + + // choose correct model "entity/wolf{age}/main_{variant}_{state}" + String variant = wolf.getRawVariant(); + if (variant.isEmpty()) variant = DEFAULT_VARIANT; + String folder = "entity/wolf" + (wolf.getAge() < 0 ? "_baby" : ""); + Model model = model(folder + "/main_" + variant + (wolf.isTame() ? "_tame" : "_wild")); + if (model == null) model = model(folder + "/main_" + DEFAULT_VARIANT + "_wild"); + if (model == null) return; + + // render chosen model + super.render(entity, block, model, TintColorProvider.NO_TINT, tileModel); + + // apply part transform + if (part.isTransformed()) + tileModel.transform(part.getTransformMatrix()); + } + +} diff --git a/src/main/resources/assets/minecraft/entitystates/acacia_boat.json b/src/main/resources/assets/minecraft/entitystates/acacia_boat.json new file mode 100644 index 0000000..34484fd --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/acacia_boat.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/boat/acacia/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/acacia_chest_boat.json b/src/main/resources/assets/minecraft/entitystates/acacia_chest_boat.json new file mode 100644 index 0000000..9d72ed6 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/acacia_chest_boat.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/chest_boat/acacia/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/armor_stand.json b/src/main/resources/assets/minecraft/entitystates/armor_stand.json new file mode 100644 index 0000000..f346aca --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/armor_stand.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "renderer": "minecraft:armor_stand" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/bamboo_chest_raft.json b/src/main/resources/assets/minecraft/entitystates/bamboo_chest_raft.json new file mode 100644 index 0000000..744aec0 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/bamboo_chest_raft.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/chest_boat/bamboo/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/bamboo_raft.json b/src/main/resources/assets/minecraft/entitystates/bamboo_raft.json new file mode 100644 index 0000000..f08b2b0 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/bamboo_raft.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/boat/bamboo/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/birch_boat.json b/src/main/resources/assets/minecraft/entitystates/birch_boat.json new file mode 100644 index 0000000..b75dc2d --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/birch_boat.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/boat/birch/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/birch_chest_boat.json b/src/main/resources/assets/minecraft/entitystates/birch_chest_boat.json new file mode 100644 index 0000000..ce82142 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/birch_chest_boat.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/chest_boat/birch/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/blaze.json b/src/main/resources/assets/minecraft/entitystates/blaze.json new file mode 100644 index 0000000..d9ddf8b --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/blaze.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/blaze/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/cave_spider.json b/src/main/resources/assets/minecraft/entitystates/cave_spider.json new file mode 100644 index 0000000..8d45d3b --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/cave_spider.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/cave_spider/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/cherry_boat.json b/src/main/resources/assets/minecraft/entitystates/cherry_boat.json new file mode 100644 index 0000000..f35cc64 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/cherry_boat.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/boat/cherry/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/cherry_chest_boat.json b/src/main/resources/assets/minecraft/entitystates/cherry_chest_boat.json new file mode 100644 index 0000000..7e0dd91 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/cherry_chest_boat.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/chest_boat/cherry/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/chest_minecart.json b/src/main/resources/assets/minecraft/entitystates/chest_minecart.json new file mode 100644 index 0000000..c5161e4 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/chest_minecart.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/chest_minecart/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/command_block_minecart.json b/src/main/resources/assets/minecraft/entitystates/command_block_minecart.json new file mode 100644 index 0000000..19d0196 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/command_block_minecart.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/command_block_minecart/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/creaking.json b/src/main/resources/assets/minecraft/entitystates/creaking.json new file mode 100644 index 0000000..536c7a5 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/creaking.json @@ -0,0 +1,6 @@ +{ + "parts": [ + { "model": "minecraft:entity/creaking/main" }, + { "model": "minecraft:entity/creaking/eyes" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/creeper.json b/src/main/resources/assets/minecraft/entitystates/creeper.json new file mode 100644 index 0000000..8424c30 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/creeper.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/creeper/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/dark_oak_boat.json b/src/main/resources/assets/minecraft/entitystates/dark_oak_boat.json new file mode 100644 index 0000000..16b2070 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/dark_oak_boat.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/boat/dark_oak/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/dark_oak_chest_boat.json b/src/main/resources/assets/minecraft/entitystates/dark_oak_chest_boat.json new file mode 100644 index 0000000..ffe5b93 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/dark_oak_chest_boat.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/chest_boat/dark_oak/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/elder_guardian.json b/src/main/resources/assets/minecraft/entitystates/elder_guardian.json new file mode 100644 index 0000000..11ec2c9 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/elder_guardian.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/elder_guardian/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/end_crystal.json b/src/main/resources/assets/minecraft/entitystates/end_crystal.json new file mode 100644 index 0000000..419bca7 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/end_crystal.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/end_crystal/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/ender_dragon.json b/src/main/resources/assets/minecraft/entitystates/ender_dragon.json new file mode 100644 index 0000000..b2297e0 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/ender_dragon.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/ender_dragon/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/enderman.json b/src/main/resources/assets/minecraft/entitystates/enderman.json new file mode 100644 index 0000000..d1487d9 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/enderman.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/enderman/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/endermite.json b/src/main/resources/assets/minecraft/entitystates/endermite.json new file mode 100644 index 0000000..467806e --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/endermite.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/endermite/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/evoker.json b/src/main/resources/assets/minecraft/entitystates/evoker.json new file mode 100644 index 0000000..50dd76f --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/evoker.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/evoker/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/evoker_fangs.json b/src/main/resources/assets/minecraft/entitystates/evoker_fangs.json new file mode 100644 index 0000000..abfb35f --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/evoker_fangs.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/evoker_fangs/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/furnace_minecart.json b/src/main/resources/assets/minecraft/entitystates/furnace_minecart.json new file mode 100644 index 0000000..b2c0771 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/furnace_minecart.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/furnace_minecart/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/giant.json b/src/main/resources/assets/minecraft/entitystates/giant.json new file mode 100644 index 0000000..ecb3273 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/giant.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/giant/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/goat.json b/src/main/resources/assets/minecraft/entitystates/goat.json new file mode 100644 index 0000000..9985cbb --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/goat.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "renderer": "minecraft:goat" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/hoglin.json b/src/main/resources/assets/minecraft/entitystates/hoglin.json new file mode 100644 index 0000000..9c6c8fe --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/hoglin.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "renderer": "minecraft:hoglin" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/hopper_minecart.json b/src/main/resources/assets/minecraft/entitystates/hopper_minecart.json new file mode 100644 index 0000000..8396b55 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/hopper_minecart.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/hopper_minecart/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/illusioner.json b/src/main/resources/assets/minecraft/entitystates/illusioner.json new file mode 100644 index 0000000..a3d2e46 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/illusioner.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/illusioner/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/jungle_boat.json b/src/main/resources/assets/minecraft/entitystates/jungle_boat.json new file mode 100644 index 0000000..0475c1c --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/jungle_boat.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/boat/jungle/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/jungle_chest_boat.json b/src/main/resources/assets/minecraft/entitystates/jungle_chest_boat.json new file mode 100644 index 0000000..158c1db --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/jungle_chest_boat.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/chest_boat/jungle/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/leash_knot.json b/src/main/resources/assets/minecraft/entitystates/leash_knot.json new file mode 100644 index 0000000..0d253d0 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/leash_knot.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/leash_knot/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/magma_cube.json b/src/main/resources/assets/minecraft/entitystates/magma_cube.json new file mode 100644 index 0000000..cb56036 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/magma_cube.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/magma_cube/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/mangrove_boat.json b/src/main/resources/assets/minecraft/entitystates/mangrove_boat.json new file mode 100644 index 0000000..56a36d2 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/mangrove_boat.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/boat/mangrove/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/mangrove_chest_boat.json b/src/main/resources/assets/minecraft/entitystates/mangrove_chest_boat.json new file mode 100644 index 0000000..0936242 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/mangrove_chest_boat.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/chest_boat/mangrove/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/minecart.json b/src/main/resources/assets/minecraft/entitystates/minecart.json new file mode 100644 index 0000000..5fa6f76 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/minecart.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/minecart/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/mooshroom.json b/src/main/resources/assets/minecraft/entitystates/mooshroom.json new file mode 100644 index 0000000..c4ed2e5 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/mooshroom.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "renderer": "minecraft:mooshroom" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/nautilus.json b/src/main/resources/assets/minecraft/entitystates/nautilus.json new file mode 100644 index 0000000..4f74ebe --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/nautilus.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "renderer": "minecraft:nautilus" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/oak_boat.json b/src/main/resources/assets/minecraft/entitystates/oak_boat.json new file mode 100644 index 0000000..cac42a7 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/oak_boat.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/boat/oak/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/oak_chest_boat.json b/src/main/resources/assets/minecraft/entitystates/oak_chest_boat.json new file mode 100644 index 0000000..06daea9 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/oak_chest_boat.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/chest_boat/oak/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/pale_oak_boat.json b/src/main/resources/assets/minecraft/entitystates/pale_oak_boat.json new file mode 100644 index 0000000..5e3d2c2 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/pale_oak_boat.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/boat/pale_oak/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/pale_oak_chest_boat.json b/src/main/resources/assets/minecraft/entitystates/pale_oak_chest_boat.json new file mode 100644 index 0000000..69052f8 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/pale_oak_chest_boat.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/chest_boat/pale_oak/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/panda.json b/src/main/resources/assets/minecraft/entitystates/panda.json new file mode 100644 index 0000000..1a921f4 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/panda.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "renderer": "minecraft:panda" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/parrot.json b/src/main/resources/assets/minecraft/entitystates/parrot.json new file mode 100644 index 0000000..cd211f7 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/parrot.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "renderer": "minecraft:parrot" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/phantom.json b/src/main/resources/assets/minecraft/entitystates/phantom.json new file mode 100644 index 0000000..6f07afc --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/phantom.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/phantom/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/piglin.json b/src/main/resources/assets/minecraft/entitystates/piglin.json new file mode 100644 index 0000000..a2d7ba0 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/piglin.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "renderer": "minecraft:piglin" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/piglin_brute.json b/src/main/resources/assets/minecraft/entitystates/piglin_brute.json new file mode 100644 index 0000000..dd7d114 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/piglin_brute.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/piglin_brute/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/pillager.json b/src/main/resources/assets/minecraft/entitystates/pillager.json new file mode 100644 index 0000000..bc0a3aa --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/pillager.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/pillager/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/polar_bear.json b/src/main/resources/assets/minecraft/entitystates/polar_bear.json new file mode 100644 index 0000000..f2727d9 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/polar_bear.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "renderer": "minecraft:polar_bear" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/rabbit.json b/src/main/resources/assets/minecraft/entitystates/rabbit.json new file mode 100644 index 0000000..6e19cc1 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/rabbit.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "renderer": "minecraft:rabbit" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/ravager.json b/src/main/resources/assets/minecraft/entitystates/ravager.json new file mode 100644 index 0000000..0b841bb --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/ravager.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/ravager/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/shulker.json b/src/main/resources/assets/minecraft/entitystates/shulker.json new file mode 100644 index 0000000..548caf2 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/shulker.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/shulker/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/silverfish.json b/src/main/resources/assets/minecraft/entitystates/silverfish.json new file mode 100644 index 0000000..d61d5fe --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/silverfish.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/silverfish/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/slime.json b/src/main/resources/assets/minecraft/entitystates/slime.json new file mode 100644 index 0000000..45e8037 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/slime.json @@ -0,0 +1,6 @@ +{ + "parts": [ + { "model": "minecraft:entity/slime/main" }, + { "model": "minecraft:entity/slime/outer" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/sniffer.json b/src/main/resources/assets/minecraft/entitystates/sniffer.json new file mode 100644 index 0000000..e6560fc --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/sniffer.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "renderer": "minecraft:sniffer" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/spawner_minecart.json b/src/main/resources/assets/minecraft/entitystates/spawner_minecart.json new file mode 100644 index 0000000..29ee9c6 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/spawner_minecart.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/spawner_minecart/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/spider.json b/src/main/resources/assets/minecraft/entitystates/spider.json new file mode 100644 index 0000000..6dd9174 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/spider.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/spider/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/spruce_boat.json b/src/main/resources/assets/minecraft/entitystates/spruce_boat.json new file mode 100644 index 0000000..9d1f3a9 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/spruce_boat.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/boat/spruce/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/spruce_chest_boat.json b/src/main/resources/assets/minecraft/entitystates/spruce_chest_boat.json new file mode 100644 index 0000000..a86b136 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/spruce_chest_boat.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/chest_boat/spruce/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/strider.json b/src/main/resources/assets/minecraft/entitystates/strider.json new file mode 100644 index 0000000..4b70be3 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/strider.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "renderer": "minecraft:strider" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/sulfur_cube.json b/src/main/resources/assets/minecraft/entitystates/sulfur_cube.json new file mode 100644 index 0000000..65b449b --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/sulfur_cube.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/sulfur_cube/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/tnt_minecart.json b/src/main/resources/assets/minecraft/entitystates/tnt_minecart.json new file mode 100644 index 0000000..d4ee729 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/tnt_minecart.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/tnt_minecart/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/turtle.json b/src/main/resources/assets/minecraft/entitystates/turtle.json new file mode 100644 index 0000000..e721e3b --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/turtle.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "renderer": "minecraft:turtle" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/villager.json b/src/main/resources/assets/minecraft/entitystates/villager.json new file mode 100644 index 0000000..af76161 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/villager.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "renderer": "minecraft:villager" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/vindicator.json b/src/main/resources/assets/minecraft/entitystates/vindicator.json new file mode 100644 index 0000000..9ae2570 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/vindicator.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/vindicator/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/wandering_trader.json b/src/main/resources/assets/minecraft/entitystates/wandering_trader.json new file mode 100644 index 0000000..e7dc0db --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/wandering_trader.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/wandering_trader/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/warden.json b/src/main/resources/assets/minecraft/entitystates/warden.json new file mode 100644 index 0000000..42d4a7d --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/warden.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/warden/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/witch.json b/src/main/resources/assets/minecraft/entitystates/witch.json new file mode 100644 index 0000000..e2c8303 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/witch.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/witch/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/wither.json b/src/main/resources/assets/minecraft/entitystates/wither.json new file mode 100644 index 0000000..ad29c48 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/wither.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/wither/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/wolf.json b/src/main/resources/assets/minecraft/entitystates/wolf.json new file mode 100644 index 0000000..8a4889f --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/wolf.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "renderer": "minecraft:wolf" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/zoglin.json b/src/main/resources/assets/minecraft/entitystates/zoglin.json new file mode 100644 index 0000000..b3ed992 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/zoglin.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "renderer": "minecraft:zoglin" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/zombie_nautilus.json b/src/main/resources/assets/minecraft/entitystates/zombie_nautilus.json new file mode 100644 index 0000000..11383e0 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/zombie_nautilus.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/zombie_nautilus/main" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/zombie_villager.json b/src/main/resources/assets/minecraft/entitystates/zombie_villager.json new file mode 100644 index 0000000..8784fb9 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/zombie_villager.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "renderer": "minecraft:zombie_villager" } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/zombified_piglin.json b/src/main/resources/assets/minecraft/entitystates/zombified_piglin.json new file mode 100644 index 0000000..8e98589 --- /dev/null +++ b/src/main/resources/assets/minecraft/entitystates/zombified_piglin.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "renderer": "minecraft:zombified_piglin" } + ] +} \ No newline at end of file From e5b92fd518cdf3f36097a704d46afb7786c26d5e Mon Sep 17 00:00:00 2001 From: miraculixx Date: Wed, 12 Aug 2026 19:27:04 +0200 Subject: [PATCH 20/34] Update README --- README.md | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/README.md b/README.md index c6c9814..a64aa10 100644 --- a/README.md +++ b/README.md @@ -60,3 +60,53 @@ bluemap-configs. You will need to purge/re-render the map to see the entities ap - Frog - Tadpole - Armadillo +- Wolf +- Rabbit +- Parrot +- Mooshroom +- Goat +- Panda +- Sniffer +- Turtle +- Polar Bear +- Nautilus + - Zombie Nautilus +- Villager + - Zombie Villager + - Wandering Trader +- Piglin + - Piglin Brute + - Zombified Piglin +- Hoglin + - Zoglin +- Strider +- *Monsters* + - Creeper + - Spider + - Cave Spider + - Silverfish + - Endermite + - Enderman + - Blaze + - Witch + - Evoker + - Vindicator + - Pillager + - Illusioner + - Phantom + - Shulker + - Creaking + - Ravager + - Warden + - Wither + - Elder Guardian + - Giant + - Slime + - Magma Cube + - Sulfur Cube + - Ender Dragon +- *Props* + - Armor Stand + - End Crystal + - Minecart (all types) + - Boat / Chest Boat (all woods) From e9406d980cc9539f41dabe1b2f9f4ff630fb8736 Mon Sep 17 00:00:00 2001 From: miraculixx Date: Wed, 12 Aug 2026 19:32:51 +0200 Subject: [PATCH 21/34] polar_bear -> polarbear (idk why it drops it) --- .../bluemap/entities/generator/TextureResolver.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/generator/src/main/java/de/bluecolored/bluemap/entities/generator/TextureResolver.java b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/TextureResolver.java index a540693..bd9d38e 100644 --- a/generator/src/main/java/de/bluecolored/bluemap/entities/generator/TextureResolver.java +++ b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/TextureResolver.java @@ -113,9 +113,10 @@ Resolution resolve(String model, String layer) { if (!family.isEmpty()) return new Resolution(null, family, "texture-family"); List fromClasses = fromRendererClasses(model, layer); - for (String candidate : fromClasses) - if (names(model, layer).contains(candidate.substring(candidate.lastIndexOf('/') + 1))) - return new Resolution(candidate, List.of(), "renderer-class"); + for (String name : names(model, layer)) + for (String candidate : fromClasses) + if (compact(candidate.substring(candidate.lastIndexOf('/') + 1)).equals(compact(name))) + return new Resolution(candidate, List.of(), "renderer-class"); if (fromClasses.size() == 1) return new Resolution(fromClasses.getFirst(), List.of(), "renderer-class"); if (!fromClasses.isEmpty()) { List variants = new ArrayList<>(); @@ -349,6 +350,11 @@ private static Variant variant(String texture, String suffix) { return new Variant(texture.substring(texture.lastIndexOf('/') + 1), texture); } + /** Where is the _ in polarbear? WHERE? CODE HAS IT!! */ + private static String compact(String name) { + return name.replace("_", ""); + } + private static String base(String model) { return model.endsWith(BABY_SUFFIX) ? model.substring(0, model.length() - BABY_SUFFIX.length()) : model; } From c66b0ecc514d73af9fcd60765d817a90fce0601d Mon Sep 17 00:00:00 2001 From: miraculixx Date: Wed, 12 Aug 2026 19:42:10 +0200 Subject: [PATCH 22/34] Add cube renderer to apply sizes --- .../bluecolored/bluemap/entities/Addon.java | 4 ++ .../bluemap/entities/entity/CubeMob.java | 45 +++++++++++++ .../entities/renderer/CubeRenderer.java | 66 +++++++++++++++++++ .../minecraft/entitystates/magma_cube.json | 2 +- .../assets/minecraft/entitystates/slime.json | 3 +- 5 files changed, 117 insertions(+), 3 deletions(-) create mode 100644 src/main/java/de/bluecolored/bluemap/entities/entity/CubeMob.java create mode 100644 src/main/java/de/bluecolored/bluemap/entities/renderer/CubeRenderer.java diff --git a/src/main/java/de/bluecolored/bluemap/entities/Addon.java b/src/main/java/de/bluecolored/bluemap/entities/Addon.java index a28d429..c5052f8 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/Addon.java +++ b/src/main/java/de/bluecolored/bluemap/entities/Addon.java @@ -72,6 +72,8 @@ public void run() { EntityType.REGISTRY.register(new EntityType.Impl(Key.minecraft("salmon"), Salmon.class)); EntityType.REGISTRY.register(new EntityType.Impl(Key.minecraft("armor_stand"), ArmorStand.class)); EntityType.REGISTRY.register(new EntityType.Impl(Key.minecraft("pufferfish"), Pufferfish.class)); + EntityType.REGISTRY.register(new EntityType.Impl(Key.minecraft("slime"), CubeMob.class)); + EntityType.REGISTRY.register(new EntityType.Impl(Key.minecraft("magma_cube"), CubeMob.class)); EntityRendererType.REGISTRY.register(new EntityRendererType.Impl(Key.minecraft("llama"), LlamaRenderer::new)); @@ -121,6 +123,8 @@ public void run() { EntityRendererType.REGISTRY.register(new EntityRendererType.Impl(Key.minecraft("salmon"), SalmonRenderer::new)); EntityRendererType.REGISTRY.register(new EntityRendererType.Impl(Key.minecraft("armor_stand"), ArmorStandRenderer::new)); EntityRendererType.REGISTRY.register(new EntityRendererType.Impl(Key.minecraft("pufferfish"), PufferfishRenderer::new)); + EntityRendererType.REGISTRY.register(new EntityRendererType.Impl(Key.minecraft("slime"), CubeRenderer::new)); + EntityRendererType.REGISTRY.register(new EntityRendererType.Impl(Key.minecraft("magma_cube"), CubeRenderer::new)); } } diff --git a/src/main/java/de/bluecolored/bluemap/entities/entity/CubeMob.java b/src/main/java/de/bluecolored/bluemap/entities/entity/CubeMob.java new file mode 100644 index 0000000..29473ca --- /dev/null +++ b/src/main/java/de/bluecolored/bluemap/entities/entity/CubeMob.java @@ -0,0 +1,45 @@ +/* + * This file is part of BlueMap, licensed under the MIT License (MIT). + * + * Copyright (c) Blue (Lukas Rieger) + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package de.bluecolored.bluemap.entities.entity; + +import de.bluecolored.bluemap.core.world.mca.entity.MCAEntity; +import de.bluecolored.bluenbt.NBTName; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.ToString; + +@Getter +@EqualsAndHashCode(callSuper = true) +@ToString +@SuppressWarnings("FieldMayBeFinal") +public class CubeMob extends MCAEntity { + + @NBTName("Size") int size; + + /** Model is size 0 */ + public float getScale() { + return size + 1; + } +} diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/CubeRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/CubeRenderer.java new file mode 100644 index 0000000..8823c79 --- /dev/null +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/CubeRenderer.java @@ -0,0 +1,66 @@ +/* + * This file is part of BlueMap, licensed under the MIT License (MIT). + * + * Copyright (c) Blue (Lukas Rieger) + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package de.bluecolored.bluemap.entities.renderer; + +import de.bluecolored.bluemap.core.map.TextureGallery; +import de.bluecolored.bluemap.core.map.hires.RenderSettings; +import de.bluecolored.bluemap.core.map.hires.TileModelView; +import de.bluecolored.bluemap.core.resources.pack.resourcepack.ResourcePack; +import de.bluecolored.bluemap.core.resources.pack.resourcepack.entitystate.Part; +import de.bluecolored.bluemap.core.resources.pack.resourcepack.model.Model; +import de.bluecolored.bluemap.core.util.math.MatrixM4f; +import de.bluecolored.bluemap.core.world.Entity; +import de.bluecolored.bluemap.core.world.block.BlockNeighborhood; +import de.bluecolored.bluemap.entities.entity.CubeMob; + +public class CubeRenderer extends CustomResourceModelRenderer { + + private final MatrixM4f sizeTransform = new MatrixM4f(); + + public CubeRenderer(ResourcePack resourcePack, TextureGallery textureGallery, RenderSettings renderSettings) { + super(resourcePack, textureGallery, renderSettings); + } + + @Override + public void render(Entity entity, BlockNeighborhood block, Part part, TileModelView tileModel) { + if (!(entity instanceof CubeMob cube)) return; + + // model-folder entity-type itself, the translucent shell is an own layer + String folder = "entity/" + entity.getId().getValue(); + Model model = model(folder + "/main"); + if (model == null) return; + super.render(entity, block, model, TintColorProvider.NO_TINT, tileModel); + + Model outer = model(folder + "/outer"); + if (outer != null) super.render(entity, block, outer, TintColorProvider.NO_TINT, tileModel); + + float scale = cube.getScale(); + if (scale != 1) tileModel.transform(sizeTransform.identity().scale(scale, scale, scale)); + + if (part.isTransformed()) + tileModel.transform(part.getTransformMatrix()); + } + +} diff --git a/src/main/resources/assets/minecraft/entitystates/magma_cube.json b/src/main/resources/assets/minecraft/entitystates/magma_cube.json index cb56036..75a86e1 100644 --- a/src/main/resources/assets/minecraft/entitystates/magma_cube.json +++ b/src/main/resources/assets/minecraft/entitystates/magma_cube.json @@ -1,5 +1,5 @@ { "parts": [ - { "model": "minecraft:entity/magma_cube/main" } + { "renderer": "minecraft:magma_cube" } ] } \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/slime.json b/src/main/resources/assets/minecraft/entitystates/slime.json index 45e8037..bb7584b 100644 --- a/src/main/resources/assets/minecraft/entitystates/slime.json +++ b/src/main/resources/assets/minecraft/entitystates/slime.json @@ -1,6 +1,5 @@ { "parts": [ - { "model": "minecraft:entity/slime/main" }, - { "model": "minecraft:entity/slime/outer" } + { "renderer": "minecraft:slime" } ] } \ No newline at end of file From a99b356fa64199f4253f72f25d6323c13679aac5 Mon Sep 17 00:00:00 2001 From: miraculixx Date: Wed, 12 Aug 2026 19:49:34 +0200 Subject: [PATCH 23/34] Fix sulfur cube naming inconsistency --- generator/config/textures.json | 3 +++ .../entities/generator/TextureResolver.java | 16 +++++++++++++--- .../minecraft/entitystates/sulfur_cube.json | 3 ++- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/generator/config/textures.json b/generator/config/textures.json index cc16e34..fe6798c 100644 --- a/generator/config/textures.json +++ b/generator/config/textures.json @@ -9,6 +9,9 @@ "stray#outer": "entity/skeleton/stray_overlay", "slime#outer": "entity/slime/slime", + "sulfur_cube#main": "entity/sulfur_cube/sulfur_cube_outer", + "sulfur_cube_small#main": "entity/sulfur_cube/sulfur_cube_outer_small", + "tropical_fish_small#main": "entity/fish/tropical_a", "tropical_fish_large#main": "entity/fish/tropical_b", "tropical_fish_small#pattern": [ diff --git a/generator/src/main/java/de/bluecolored/bluemap/entities/generator/TextureResolver.java b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/TextureResolver.java index bd9d38e..602c940 100644 --- a/generator/src/main/java/de/bluecolored/bluemap/entities/generator/TextureResolver.java +++ b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/TextureResolver.java @@ -219,9 +219,12 @@ private List names(String model, String layer) { if (layer.equals("main")) { names.add(alias); } else { - if (alias.endsWith(BABY_SUFFIX)) { - names.add(base(alias) + "_" + layer + BABY_SUFFIX); - names.add(base(alias) + "_" + layer + "_layer" + BABY_SUFFIX); + // age- and size-suffixes move behind the layer (drowned_outer_layer_baby, sulfur_cube_inner_small) + String suffix = suffixOf(alias); + if (suffix != null) { + String base = alias.substring(0, alias.length() - suffix.length()); + names.add(base + "_" + layer + suffix); + names.add(base + "_" + layer + "_layer" + suffix); } names.add(alias + "_" + layer); names.add(alias + "_" + layer + "_layer"); @@ -230,6 +233,13 @@ private List names(String model, String layer) { return names; } + private static String suffixOf(String name) { + if (name.endsWith(BABY_SUFFIX)) return BABY_SUFFIX; + for (String suffix : ALIAS_SUFFIXES) + if (name.endsWith(suffix)) return suffix; + return null; + } + /** The model-id plus the shortened forms minecraft uses */ private static List aliases(String model) { Set aliases = new LinkedHashSet<>(); diff --git a/src/main/resources/assets/minecraft/entitystates/sulfur_cube.json b/src/main/resources/assets/minecraft/entitystates/sulfur_cube.json index 65b449b..fe93346 100644 --- a/src/main/resources/assets/minecraft/entitystates/sulfur_cube.json +++ b/src/main/resources/assets/minecraft/entitystates/sulfur_cube.json @@ -1,5 +1,6 @@ { "parts": [ - { "model": "minecraft:entity/sulfur_cube/main" } + { "model": "minecraft:entity/sulfur_cube/main" }, + { "model": "minecraft:entity/sulfur_cube/inner" } ] } \ No newline at end of file From aef2da354b7a5abc12499a25f814edfa0e9a005b Mon Sep 17 00:00:00 2001 From: miraculixx Date: Wed, 12 Aug 2026 20:56:20 +0200 Subject: [PATCH 24/34] Fix zombie nautilus & dragon texture --- generator/config/textures.json | 8 ++++++++ src/main/java/de/bluecolored/bluemap/entities/Addon.java | 2 ++ .../bluemap/entities/renderer/VariantRenderer.java | 7 ++++++- .../assets/minecraft/entitystates/zombie_nautilus.json | 2 +- 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/generator/config/textures.json b/generator/config/textures.json index fe6798c..c05f3b7 100644 --- a/generator/config/textures.json +++ b/generator/config/textures.json @@ -11,6 +11,14 @@ "sulfur_cube#main": "entity/sulfur_cube/sulfur_cube_outer", "sulfur_cube_small#main": "entity/sulfur_cube/sulfur_cube_outer_small", + "ender_dragon#main": "entity/enderdragon/dragon", + + "chest_minecart#main": "entity/minecart/minecart", + "command_block_minecart#main": "entity/minecart/minecart", + "furnace_minecart#main": "entity/minecart/minecart", + "hopper_minecart#main": "entity/minecart/minecart", + "spawner_minecart#main": "entity/minecart/minecart", + "tnt_minecart#main": "entity/minecart/minecart", "tropical_fish_small#main": "entity/fish/tropical_a", "tropical_fish_large#main": "entity/fish/tropical_b", diff --git a/src/main/java/de/bluecolored/bluemap/entities/Addon.java b/src/main/java/de/bluecolored/bluemap/entities/Addon.java index c5052f8..4d86b6e 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/Addon.java +++ b/src/main/java/de/bluecolored/bluemap/entities/Addon.java @@ -66,6 +66,7 @@ public void run() { for (String type : BABY_TYPES) EntityType.REGISTRY.register(new EntityType.Impl(Key.minecraft(type), BabyEntity.class)); EntityType.REGISTRY.register(new EntityType.Impl(Key.minecraft("mooshroom"), Mooshroom.class)); + EntityType.REGISTRY.register(new EntityType.Impl(Key.minecraft("zombie_nautilus"), AgeVariantEntity.class)); EntityType.REGISTRY.register(new EntityType.Impl(Key.minecraft("rabbit"), Rabbit.class)); EntityType.REGISTRY.register(new EntityType.Impl(Key.minecraft("parrot"), Parrot.class)); EntityType.REGISTRY.register(new EntityType.Impl(Key.minecraft("wolf"), Wolf.class)); @@ -117,6 +118,7 @@ public void run() { for (String type : BABY_TYPES) EntityRendererType.REGISTRY.register(new EntityRendererType.Impl(Key.minecraft(type), BabyRenderer::new)); EntityRendererType.REGISTRY.register(new EntityRendererType.Impl(Key.minecraft("mooshroom"), VariantRenderer::new)); + EntityRendererType.REGISTRY.register(new EntityRendererType.Impl(Key.minecraft("zombie_nautilus"), VariantRenderer::new)); EntityRendererType.REGISTRY.register(new EntityRendererType.Impl(Key.minecraft("rabbit"), VariantRenderer::new)); EntityRendererType.REGISTRY.register(new EntityRendererType.Impl(Key.minecraft("parrot"), VariantRenderer::new)); EntityRendererType.REGISTRY.register(new EntityRendererType.Impl(Key.minecraft("wolf"), WolfRenderer::new)); diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/VariantRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/VariantRenderer.java index 65e588a..e3b2be6 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/renderer/VariantRenderer.java +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/VariantRenderer.java @@ -45,9 +45,14 @@ public void render(Entity entity, BlockNeighborhood block, Part part, TileModelV if (!(entity instanceof AgeVariantEntity variant)) return; // model-folder is the entity-type itself, "entity/{type}{age}/main_{variant}" - String folder = "entity/" + entity.getId().getValue() + (variant.getAge() < 0 ? "_baby" : ""); + String type = "entity/" + entity.getId().getValue(); + String folder = variant.getAge() < 0 ? type + "_baby" : type; + + // not every type has a baby-model, and not every variant has an own model Model model = model(folder + "/main_" + variant.getRawVariant()); + if (model == null) model = model(type + "/main_" + variant.getRawVariant()); if (model == null) model = model(folder + "/main"); + if (model == null) model = model(type + "/main"); if (model == null) return; super.render(entity, block, model, TintColorProvider.NO_TINT, tileModel); diff --git a/src/main/resources/assets/minecraft/entitystates/zombie_nautilus.json b/src/main/resources/assets/minecraft/entitystates/zombie_nautilus.json index 11383e0..5b74ca2 100644 --- a/src/main/resources/assets/minecraft/entitystates/zombie_nautilus.json +++ b/src/main/resources/assets/minecraft/entitystates/zombie_nautilus.json @@ -1,5 +1,5 @@ { "parts": [ - { "model": "minecraft:entity/zombie_nautilus/main" } + { "renderer": "minecraft:zombie_nautilus" } ] } \ No newline at end of file From 760f1c5d630e8a91fe3ec399f31dd0115d50f29b Mon Sep 17 00:00:00 2001 From: miraculixx Date: Wed, 12 Aug 2026 21:11:53 +0200 Subject: [PATCH 25/34] Apply hardcoded height offsets of some entities --- .../entities/generator/LayerConverter.java | 31 ++++++++++++++++--- .../bluemap/entities/generator/Main.java | 2 +- 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/generator/src/main/java/de/bluecolored/bluemap/entities/generator/LayerConverter.java b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/LayerConverter.java index 9b484a8..5f47aa5 100644 --- a/generator/src/main/java/de/bluecolored/bluemap/entities/generator/LayerConverter.java +++ b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/LayerConverter.java @@ -46,20 +46,43 @@ final class LayerConverter { private static final float[] FLIP = { -1, -1, 1 }; private static final float Y_OFFSET = 24; + + /** + * Some models have hardcoded offsets just to annoy me + */ + private static final Map Y_OFFSETS = Map.of( + "boat", 6f, + "chest_boat", 6f, + "minecart", 6f, + "ender_dragon", 52f, + "sulfur_cube", 8f + ); private static final float POSITION_EPSILON = 1e-3f; private static final float ANGLE_EPSILON = 1e-4f; private static final String[] DIRECTIONS = { "down", "up", "north", "south", "west", "east" }; private LayerConverter() {} - static Geometry convert(LayerDefinition layer) { + static float yOffset(String model) { + String family = model.contains("/") ? model.substring(0, model.indexOf('/')) : model; + Float offset = Y_OFFSETS.get(family); + if (offset == null && family.endsWith("_minecart")) offset = Y_OFFSETS.get("minecart"); + if (offset == null && family.endsWith("_small")) offset = Y_OFFSETS.get(base(family)); + return offset != null ? offset : Y_OFFSET; + } + + private static String base(String family) { + return family.substring(0, family.lastIndexOf('_')); + } + + static Geometry convert(LayerDefinition layer, float yOffset) { int[] textureSize = textureSize(layer); List elements = new ArrayList<>(); List warnings = new ArrayList<>(); layer.bakeRoot().visit(new PoseStack(), (pose, path, index, cube) -> { String name = name(path, index); - Geometry.Element element = convertCube(pose.pose(), name, cube, warnings); + Geometry.Element element = convertCube(pose.pose(), name, cube, yOffset, warnings); if (finite(element)) elements.add(element); else warnings.add(name + ": dropped, contains a non-finite coordinate"); }); @@ -88,7 +111,7 @@ private static String name(String path, int index) { return index == 0 ? name : name + "_" + index; } - private static Geometry.Element convertCube(Matrix4f matrix, String name, ModelPart.Cube cube, List warnings) { + private static Geometry.Element convertCube(Matrix4f matrix, String name, ModelPart.Cube cube, float yOffset, List warnings) { // linear part of the accumulated part-transform, columns are the local axes float[][] linear = { @@ -120,7 +143,7 @@ private static Geometry.Element convertCube(Matrix4f matrix, String name, ModelP // the parts pivot becomes the rotation-origin of the element float[] origin = { FLIP[0] * matrix.m30() * 16, - FLIP[1] * matrix.m31() * 16 + Y_OFFSET, + FLIP[1] * matrix.m31() * 16 + yOffset, FLIP[2] * matrix.m32() * 16 }; diff --git a/generator/src/main/java/de/bluecolored/bluemap/entities/generator/Main.java b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/Main.java index 304d3f5..0e67d45 100644 --- a/generator/src/main/java/de/bluecolored/bluemap/entities/generator/Main.java +++ b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/Main.java @@ -129,7 +129,7 @@ private void generate( if (arguments.exclude != null && arguments.exclude.matcher(key).find()) return; if (isEquipment(model, layer)) return; - Geometry geometry = LayerConverter.convert(definition); + Geometry geometry = LayerConverter.convert(definition, LayerConverter.yOffset(model)); geometry.warnings().forEach(warning -> report.warning(key + ": " + warning)); if (geometry.elements().isEmpty()) { From aa9f4fe232edce7f8500e8a641b20698dcf78d1e Mon Sep 17 00:00:00 2001 From: miraculixx Date: Wed, 12 Aug 2026 21:12:23 +0200 Subject: [PATCH 26/34] Spawn all nautilus --- .../data/bme_test/function/group/aquatic.mcfunction | 11 ++++++----- .../data/bme_test/function/spawn.mcfunction | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/aquatic.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/aquatic.mcfunction index 7afbe28..295ced8 100644 --- a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/aquatic.mcfunction +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/aquatic.mcfunction @@ -1,4 +1,4 @@ -# aquatic (12 entities) +# aquatic (13 entities) summon minecraft:squid ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} summon minecraft:squid ~2 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} summon minecraft:glow_squid ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} @@ -7,7 +7,8 @@ summon minecraft:dolphin ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerabl summon minecraft:dolphin ~10 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} summon minecraft:nautilus ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} summon minecraft:nautilus ~14 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000} -summon minecraft:zombie_nautilus ~16 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} -summon minecraft:cod ~18 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} -summon minecraft:guardian ~20 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} -summon minecraft:tadpole ~22 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:zombie_nautilus ~16 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:temperate"} +summon minecraft:zombie_nautilus ~18 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],variant:"minecraft:warm"} +summon minecraft:cod ~20 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:guardian ~22 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} +summon minecraft:tadpole ~24 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f]} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/spawn.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/spawn.mcfunction index 7c60d6b..7abf301 100644 --- a/generator/datapack/bluemap-entity-test/data/bme_test/function/spawn.mcfunction +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/spawn.mcfunction @@ -51,4 +51,4 @@ execute positioned ~ ~ ~181 run function bme_test:group/prop execute positioned ~ ~ ~185 run function bme_test:group/boat execute positioned ~ ~ ~189 run function bme_test:group/chest_boat -tellraw @s {"text":"[bme] spawned 350 test-entities in 49 groups","color":"green"} +tellraw @s {"text":"[bme] spawned 351 test-entities in 49 groups","color":"green"} From 84ca1d1ebe0916c0d9421817af16406da9867827 Mon Sep 17 00:00:00 2001 From: miraculixx Date: Wed, 12 Aug 2026 21:44:12 +0200 Subject: [PATCH 27/34] Support villager types, professions and skills --- .../bluemap/entities/generator/Geometry.java | 22 ++++ .../bluemap/entities/generator/Main.java | 61 +++++++++- .../bluecolored/bluemap/entities/Addon.java | 8 +- .../bluemap/entities/entity/Villager.java | 45 ++++++++ .../bluemap/entities/entity/VillagerData.java | 66 +++++++++++ .../entities/entity/VillagerDataHolder.java | 36 ++++++ .../entities/entity/ZombieVillager.java | 40 +++++++ .../entities/renderer/VillagerRenderer.java | 107 ++++++++++++++++++ 8 files changed, 381 insertions(+), 4 deletions(-) create mode 100644 src/main/java/de/bluecolored/bluemap/entities/entity/Villager.java create mode 100644 src/main/java/de/bluecolored/bluemap/entities/entity/VillagerData.java create mode 100644 src/main/java/de/bluecolored/bluemap/entities/entity/VillagerDataHolder.java create mode 100644 src/main/java/de/bluecolored/bluemap/entities/entity/ZombieVillager.java create mode 100644 src/main/java/de/bluecolored/bluemap/entities/renderer/VillagerRenderer.java diff --git a/generator/src/main/java/de/bluecolored/bluemap/entities/generator/Geometry.java b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/Geometry.java index e160d0c..766ce7e 100644 --- a/generator/src/main/java/de/bluecolored/bluemap/entities/generator/Geometry.java +++ b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/Geometry.java @@ -44,6 +44,28 @@ private static boolean matches(String name, List parts) { return parts.stream().anyMatch(part -> name.equals(part) || name.startsWith(part + "/") || name.startsWith(part + "_")); } + Geometry inflate(float grow) { + if (grow == 0) return this; + + List grown = elements.stream() + .map(element -> new Element( + element.name(), + offset(element.from(), -grow), + offset(element.to(), grow), + element.rotation(), + element.rotationOrigin(), + element.faces() + )) + .toList(); + return new Geometry(textureWidth, textureHeight, grown, warnings); + } + + private static float[] offset(float[] position, float amount) { + float[] offset = new float[position.length]; + for (int i = 0; i < position.length; i++) offset[i] = position[i] + amount; + return offset; + } + /** * @param rotation nullable, {x, y, z} in degrees, applied by bluemap as rotateYXZ around {@code rotationOrigin} * @param faces direction ("north", "up", ...) to uv {x1, y1, x2, y2} in 16-space diff --git a/generator/src/main/java/de/bluecolored/bluemap/entities/generator/Main.java b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/Main.java index 0e67d45..1acfb53 100644 --- a/generator/src/main/java/de/bluecolored/bluemap/entities/generator/Main.java +++ b/generator/src/main/java/de/bluecolored/bluemap/entities/generator/Main.java @@ -64,6 +64,32 @@ public final class Main { private static final Set SKIPPED_LAYERS = Set.of("helmet", "chestplate", "boots", "leggings"); private static final Set SKIPPED_MODELS = Set.of("elytra", "elytra_baby"); + /** + * Clothing minecraft draws onto the cubes over the main-layer + */ + private record Overlay(String layer, String folder, float grow) {} + + private static final List VILLAGER_OVERLAYS = List.of( + new Overlay("type", "type", 0.25f), + new Overlay("profession", "profession", 0.5f), + new Overlay("level", "profession_level", 0.75f) + ); + + /** skip babies, they cant work (yet) */ + private static final List VILLAGER_TYPE_OVERLAY = List.of(VILLAGER_OVERLAYS.getFirst()); + private static final List VILLAGER_BABY_OVERLAY = List.of(new Overlay("type", "baby", 0.25f)); + + private static final Map> OVERLAYS = Map.of( + "villager", VILLAGER_OVERLAYS, + "villager_no_hat", VILLAGER_TYPE_OVERLAY, + "villager_baby", VILLAGER_BABY_OVERLAY, + "villager_baby_no_hat", VILLAGER_BABY_OVERLAY, + "zombie_villager", VILLAGER_OVERLAYS, + "zombie_villager_no_hat", VILLAGER_TYPE_OVERLAY, + "zombie_villager_baby", VILLAGER_BABY_OVERLAY, + "zombie_villager_baby_no_hat", VILLAGER_BABY_OVERLAY + ); + private final Arguments arguments; private final Report report = new Report(); private Map>> splitParts = Map.of(); @@ -102,7 +128,7 @@ private void run() throws IOException { Set written = new TreeSet<>(); for (Map.Entry entry : layers.entrySet()) - generate(entry.getKey(), entry.getValue(), textures, written); + generate(entry.getKey(), entry.getValue(), textures, assets, written); for (TextureResolver.Alias alias : textures.aliases()) { if (!written.contains(alias.target() + ".json")) continue; @@ -119,7 +145,7 @@ private void run() throws IOException { private void generate( ModelLayerLocation location, LayerDefinition definition, - TextureResolver textures, Set written + TextureResolver textures, McAssets assets, Set written ) throws IOException { String model = location.model().getPath(); String layer = location.layer(); @@ -155,6 +181,37 @@ private void generate( } writeModel(model + "/" + layer, remaining, resolution, key, written); + + if (layer.equals("main")) writeOverlays(model, geometry, assets, key, written); + } + + /** One inflated copy of the whole layer per overlay-texture-folder (one texture-variant per file) */ + private void writeOverlays( + String model, Geometry geometry, McAssets assets, String key, Set written + ) throws IOException { + String entity = overlayEntity(model); + + for (Overlay overlay : OVERLAYS.getOrDefault(model, List.of())) { + List variants = new ArrayList<>(); + for (String texture : assets.texturesIn("entity/" + entity + "/" + overlay.folder())) + variants.add(new TextureResolver.Variant(texture.substring(texture.lastIndexOf('/') + 1), texture)); + + if (variants.isEmpty()) { + report.warning(key + ": no textures for the overlay '" + overlay.layer() + "'"); + continue; + } + + String overlayKey = model + "#" + overlay.layer(); + TextureResolver.Resolution resolution = new TextureResolver.Resolution(null, variants, "overlay"); + report.resolved(overlayKey, resolution.source(), variants.size()); + writeModel(model + "/" + overlay.layer(), geometry.inflate(overlay.grow()), resolution, overlayKey, written); + } + } + + private static String overlayEntity(String model) { + if (model.endsWith("_no_hat")) model = model.substring(0, model.length() - "_no_hat".length()); + if (model.endsWith("_baby")) model = model.substring(0, model.length() - "_baby".length()); + return model; } private static boolean isEquipment(String model, String layer) { diff --git a/src/main/java/de/bluecolored/bluemap/entities/Addon.java b/src/main/java/de/bluecolored/bluemap/entities/Addon.java index 4d86b6e..0b50f0c 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/Addon.java +++ b/src/main/java/de/bluecolored/bluemap/entities/Addon.java @@ -17,11 +17,11 @@ public class Addon implements Runnable { /** all baby/adult models where "Age" is a number */ private static final String[] AGE_TYPES = { "goat", "hoglin", "panda", "sniffer", "turtle", "strider", - "zoglin", "polar_bear", "nautilus", "villager" + "zoglin", "polar_bear", "nautilus" }; /** all baby/dault models where "IsBaby" is a bool */ - private static final String[] BABY_TYPES = { "piglin", "zombified_piglin", "zombie_villager" }; + private static final String[] BABY_TYPES = { "piglin", "zombified_piglin" }; @Override public void run() { @@ -75,6 +75,8 @@ public void run() { EntityType.REGISTRY.register(new EntityType.Impl(Key.minecraft("pufferfish"), Pufferfish.class)); EntityType.REGISTRY.register(new EntityType.Impl(Key.minecraft("slime"), CubeMob.class)); EntityType.REGISTRY.register(new EntityType.Impl(Key.minecraft("magma_cube"), CubeMob.class)); + EntityType.REGISTRY.register(new EntityType.Impl(Key.minecraft("villager"), Villager.class)); + EntityType.REGISTRY.register(new EntityType.Impl(Key.minecraft("zombie_villager"), ZombieVillager.class)); EntityRendererType.REGISTRY.register(new EntityRendererType.Impl(Key.minecraft("llama"), LlamaRenderer::new)); @@ -127,6 +129,8 @@ public void run() { EntityRendererType.REGISTRY.register(new EntityRendererType.Impl(Key.minecraft("pufferfish"), PufferfishRenderer::new)); EntityRendererType.REGISTRY.register(new EntityRendererType.Impl(Key.minecraft("slime"), CubeRenderer::new)); EntityRendererType.REGISTRY.register(new EntityRendererType.Impl(Key.minecraft("magma_cube"), CubeRenderer::new)); + EntityRendererType.REGISTRY.register(new EntityRendererType.Impl(Key.minecraft("villager"), VillagerRenderer::new)); + EntityRendererType.REGISTRY.register(new EntityRendererType.Impl(Key.minecraft("zombie_villager"), VillagerRenderer::new)); } } diff --git a/src/main/java/de/bluecolored/bluemap/entities/entity/Villager.java b/src/main/java/de/bluecolored/bluemap/entities/entity/Villager.java new file mode 100644 index 0000000..bab26bf --- /dev/null +++ b/src/main/java/de/bluecolored/bluemap/entities/entity/Villager.java @@ -0,0 +1,45 @@ +/* + * This file is part of BlueMap, licensed under the MIT License (MIT). + * + * Copyright (c) Blue (Lukas Rieger) + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package de.bluecolored.bluemap.entities.entity; + +import de.bluecolored.bluenbt.NBTName; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.ToString; + +@Getter +@EqualsAndHashCode(callSuper = true) +@ToString +@SuppressWarnings("FieldMayBeFinal") +public class Villager extends AgeEntity implements VillagerDataHolder { + + @NBTName("VillagerData") VillagerData villagerData; + + @Override + public boolean isBaby() { + return getAge() < 0; + } + +} diff --git a/src/main/java/de/bluecolored/bluemap/entities/entity/VillagerData.java b/src/main/java/de/bluecolored/bluemap/entities/entity/VillagerData.java new file mode 100644 index 0000000..c172fd3 --- /dev/null +++ b/src/main/java/de/bluecolored/bluemap/entities/entity/VillagerData.java @@ -0,0 +1,66 @@ +/* + * This file is part of BlueMap, licensed under the MIT License (MIT). + * + * Copyright (c) Blue (Lukas Rieger) + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package de.bluecolored.bluemap.entities.entity; + +import de.bluecolored.bluenbt.NBTName; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.ToString; + +@Getter +@EqualsAndHashCode +@ToString +@SuppressWarnings("FieldMayBeFinal") +public class VillagerData { + + public static final String DEFAULT_TYPE = "plains"; + public static final String PROFESSION_NONE = "none"; + public static final String PROFESSION_NITWIT = "nitwit"; + + @NBTName("type") String type; + @NBTName("profession") String profession; + @NBTName("level") int level; + + /** + * @return raw type string + */ + public String getRawType() { + return raw(type, DEFAULT_TYPE); + } + + /** + * @return raw profession string + */ + public String getRawProfession() { + return raw(profession, PROFESSION_NONE); + } + + private static String raw(String value, String fallback) { + if (value == null || value.isEmpty()) return fallback; + String[] parts = value.split(":", 2); + return parts[parts.length - 1]; + } + +} diff --git a/src/main/java/de/bluecolored/bluemap/entities/entity/VillagerDataHolder.java b/src/main/java/de/bluecolored/bluemap/entities/entity/VillagerDataHolder.java new file mode 100644 index 0000000..4105c38 --- /dev/null +++ b/src/main/java/de/bluecolored/bluemap/entities/entity/VillagerDataHolder.java @@ -0,0 +1,36 @@ +/* + * This file is part of BlueMap, licensed under the MIT License (MIT). + * + * Copyright (c) Blue (Lukas Rieger) + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package de.bluecolored.bluemap.entities.entity; + +import org.checkerframework.checker.nullness.qual.Nullable; + + +public interface VillagerDataHolder { + + @Nullable VillagerData getVillagerData(); + + boolean isBaby(); + +} diff --git a/src/main/java/de/bluecolored/bluemap/entities/entity/ZombieVillager.java b/src/main/java/de/bluecolored/bluemap/entities/entity/ZombieVillager.java new file mode 100644 index 0000000..a31eb06 --- /dev/null +++ b/src/main/java/de/bluecolored/bluemap/entities/entity/ZombieVillager.java @@ -0,0 +1,40 @@ +/* + * This file is part of BlueMap, licensed under the MIT License (MIT). + * + * Copyright (c) Blue (Lukas Rieger) + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package de.bluecolored.bluemap.entities.entity; + +import de.bluecolored.bluenbt.NBTName; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.ToString; + +@Getter +@EqualsAndHashCode(callSuper = true) +@ToString +@SuppressWarnings("FieldMayBeFinal") +public class ZombieVillager extends BabyEntity implements VillagerDataHolder { + + @NBTName("VillagerData") VillagerData villagerData; + +} diff --git a/src/main/java/de/bluecolored/bluemap/entities/renderer/VillagerRenderer.java b/src/main/java/de/bluecolored/bluemap/entities/renderer/VillagerRenderer.java new file mode 100644 index 0000000..c0a2a50 --- /dev/null +++ b/src/main/java/de/bluecolored/bluemap/entities/renderer/VillagerRenderer.java @@ -0,0 +1,107 @@ +/* + * This file is part of BlueMap, licensed under the MIT License (MIT). + * + * Copyright (c) Blue (Lukas Rieger) + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package de.bluecolored.bluemap.entities.renderer; + +import de.bluecolored.bluemap.core.map.TextureGallery; +import de.bluecolored.bluemap.core.map.hires.RenderSettings; +import de.bluecolored.bluemap.core.map.hires.TileModelView; +import de.bluecolored.bluemap.core.resources.pack.resourcepack.ResourcePack; +import de.bluecolored.bluemap.core.resources.pack.resourcepack.entitystate.Part; +import de.bluecolored.bluemap.core.resources.pack.resourcepack.model.Model; +import de.bluecolored.bluemap.core.world.Entity; +import de.bluecolored.bluemap.core.world.block.BlockNeighborhood; +import de.bluecolored.bluemap.entities.entity.VillagerData; +import de.bluecolored.bluemap.entities.entity.VillagerDataHolder; + +import java.util.Set; + +public class VillagerRenderer extends CustomResourceModelRenderer { + + private static final String VILLAGER = "villager"; + private static final String[] LEVELS = { "stone", "iron", "gold", "emerald", "diamond" }; + + /** + * The hat-rules of a villager live in the {@code *.png.mcmeta} files, which bluemap does not read. Only the + * adult villager biome-textures declare one, the zombie- and baby-textures do not. + */ + private static final Set FULL_HAT_TYPES = Set.of("desert", "snow"); + private static final Set FULL_HAT_PROFESSIONS = Set.of("farmer", "fisherman", "fletcher", "librarian", "shepherd"); + private static final Set PARTIAL_HAT_PROFESSIONS = Set.of("butcher"); + + public VillagerRenderer(ResourcePack resourcePack, TextureGallery textureGallery, RenderSettings renderSettings) { + super(resourcePack, textureGallery, renderSettings); + } + + @Override + public void render(Entity entity, BlockNeighborhood block, Part part, TileModelView tileModel) { + if (!(entity instanceof VillagerDataHolder villager)) return; + + VillagerData data = villager.getVillagerData(); + String type = data != null ? data.getRawType() : VillagerData.DEFAULT_TYPE; + String profession = data != null ? data.getRawProfession() : VillagerData.PROFESSION_NONE; + + String name = entity.getId().getValue(); + boolean baby = villager.isBaby(); + String folder = "entity/" + name + (baby ? "_baby" : ""); + + // the skin, everything else is clothing drawn on slightly grown copies of it + Model main = model(folder + "/main"); + if (main == null) return; + super.render(entity, block, main, TintColorProvider.NO_TINT, tileModel); + + String typeFolder = hatVisible(name, type, profession, baby) ? folder : folder + "_no_hat"; + Model biome = model(typeFolder + "/type_" + type); + if (biome == null) biome = model(typeFolder + "/type_" + VillagerData.DEFAULT_TYPE); + if (biome != null) super.render(entity, block, biome, TintColorProvider.NO_TINT, tileModel); + + // babies never show what they do for a living + if (!baby && !VillagerData.PROFESSION_NONE.equals(profession)) { + Model job = model(folder + "/profession_" + profession); + if (job != null) super.render(entity, block, job, TintColorProvider.NO_TINT, tileModel); + + if (!VillagerData.PROFESSION_NITWIT.equals(profession)) { + Model badge = model(folder + "/level_" + LEVELS[level(data)]); + if (badge != null) super.render(entity, block, badge, TintColorProvider.NO_TINT, tileModel); + } + } + + // apply part transform + if (part.isTransformed()) + tileModel.transform(part.getTransformMatrix()); + } + + /** The biome-hat gives way to a profession that brings its own. */ + private static boolean hatVisible(String name, String type, String profession, boolean baby) { + if (FULL_HAT_PROFESSIONS.contains(profession)) return false; + if (!PARTIAL_HAT_PROFESSIONS.contains(profession)) return true; + return baby || !VILLAGER.equals(name) || !FULL_HAT_TYPES.contains(type); + } + + private static int level(VillagerData data) { + if (data == null) return 0; + return Math.clamp(data.getLevel(), 1, LEVELS.length) - 1; + } + +} From 14c329a6d37a4515a210af2d81fc50ae95e7ccfc Mon Sep 17 00:00:00 2001 From: miraculixx Date: Wed, 12 Aug 2026 21:44:35 +0200 Subject: [PATCH 28/34] spawn test villagers --- .../function/group/villager_level.mcfunction | 8 +++++ .../group/villager_profession.mcfunction | 15 ++++++++ .../function/group/villager_type.mcfunction | 15 ++++++++ .../group/zombie_villager_level.mcfunction | 8 +++++ .../zombie_villager_profession.mcfunction | 15 ++++++++ .../group/zombie_villager_type.mcfunction | 15 ++++++++ .../bme_test/function/platform.mcfunction | 4 +-- .../data/bme_test/function/spawn.mcfunction | 36 +++++++++++-------- 8 files changed, 99 insertions(+), 17 deletions(-) create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/villager_level.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/villager_profession.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/villager_type.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/zombie_villager_level.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/zombie_villager_profession.mcfunction create mode 100644 generator/datapack/bluemap-entity-test/data/bme_test/function/group/zombie_villager_type.mcfunction diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/villager_level.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/villager_level.mcfunction new file mode 100644 index 0000000..ad5dd26 --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/villager_level.mcfunction @@ -0,0 +1,8 @@ +# villager profession-levels (7 entities) +summon minecraft:villager ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:farmer",level:1},VillagerDataFinalized:1b} +summon minecraft:villager ~2 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:farmer",level:2},VillagerDataFinalized:1b} +summon minecraft:villager ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:farmer",level:3},VillagerDataFinalized:1b} +summon minecraft:villager ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:farmer",level:4},VillagerDataFinalized:1b} +summon minecraft:villager ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:farmer",level:5},VillagerDataFinalized:1b} +summon minecraft:villager ~10 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:nitwit",level:5},VillagerDataFinalized:1b} +summon minecraft:villager ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:none",level:5},VillagerDataFinalized:1b} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/villager_profession.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/villager_profession.mcfunction new file mode 100644 index 0000000..d3ba684 --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/villager_profession.mcfunction @@ -0,0 +1,15 @@ +# villager professions (14 entities) +summon minecraft:villager ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:armorer",level:1},VillagerDataFinalized:1b} +summon minecraft:villager ~2 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:butcher",level:1},VillagerDataFinalized:1b} +summon minecraft:villager ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:cartographer",level:1},VillagerDataFinalized:1b} +summon minecraft:villager ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:cleric",level:1},VillagerDataFinalized:1b} +summon minecraft:villager ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:farmer",level:1},VillagerDataFinalized:1b} +summon minecraft:villager ~10 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:fisherman",level:1},VillagerDataFinalized:1b} +summon minecraft:villager ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:fletcher",level:1},VillagerDataFinalized:1b} +summon minecraft:villager ~14 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:leatherworker",level:1},VillagerDataFinalized:1b} +summon minecraft:villager ~16 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:librarian",level:1},VillagerDataFinalized:1b} +summon minecraft:villager ~18 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:mason",level:1},VillagerDataFinalized:1b} +summon minecraft:villager ~20 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:nitwit",level:1},VillagerDataFinalized:1b} +summon minecraft:villager ~22 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:shepherd",level:1},VillagerDataFinalized:1b} +summon minecraft:villager ~24 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:toolsmith",level:1},VillagerDataFinalized:1b} +summon minecraft:villager ~26 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:weaponsmith",level:1},VillagerDataFinalized:1b} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/villager_type.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/villager_type.mcfunction new file mode 100644 index 0000000..b160f45 --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/villager_type.mcfunction @@ -0,0 +1,15 @@ +# villager biome-types, adult and baby (14 entities) +summon minecraft:villager ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:desert",profession:"minecraft:none",level:1},VillagerDataFinalized:1b} +summon minecraft:villager ~2 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:jungle",profession:"minecraft:none",level:1},VillagerDataFinalized:1b} +summon minecraft:villager ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:none",level:1},VillagerDataFinalized:1b} +summon minecraft:villager ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:savanna",profession:"minecraft:none",level:1},VillagerDataFinalized:1b} +summon minecraft:villager ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:snow",profession:"minecraft:none",level:1},VillagerDataFinalized:1b} +summon minecraft:villager ~10 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:swamp",profession:"minecraft:none",level:1},VillagerDataFinalized:1b} +summon minecraft:villager ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:taiga",profession:"minecraft:none",level:1},VillagerDataFinalized:1b} +summon minecraft:villager ~14 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000,VillagerData:{type:"minecraft:desert",profession:"minecraft:none",level:1},VillagerDataFinalized:1b} +summon minecraft:villager ~16 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000,VillagerData:{type:"minecraft:jungle",profession:"minecraft:none",level:1},VillagerDataFinalized:1b} +summon minecraft:villager ~18 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000,VillagerData:{type:"minecraft:plains",profession:"minecraft:none",level:1},VillagerDataFinalized:1b} +summon minecraft:villager ~20 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000,VillagerData:{type:"minecraft:savanna",profession:"minecraft:none",level:1},VillagerDataFinalized:1b} +summon minecraft:villager ~22 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000,VillagerData:{type:"minecraft:snow",profession:"minecraft:none",level:1},VillagerDataFinalized:1b} +summon minecraft:villager ~24 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000,VillagerData:{type:"minecraft:swamp",profession:"minecraft:none",level:1},VillagerDataFinalized:1b} +summon minecraft:villager ~26 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],Age:-24000,VillagerData:{type:"minecraft:taiga",profession:"minecraft:none",level:1},VillagerDataFinalized:1b} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/zombie_villager_level.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/zombie_villager_level.mcfunction new file mode 100644 index 0000000..85f4f20 --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/zombie_villager_level.mcfunction @@ -0,0 +1,8 @@ +# zombie_villager profession-levels (7 entities) +summon minecraft:zombie_villager ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:farmer",level:1},VillagerDataFinalized:1b} +summon minecraft:zombie_villager ~2 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:farmer",level:2},VillagerDataFinalized:1b} +summon minecraft:zombie_villager ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:farmer",level:3},VillagerDataFinalized:1b} +summon minecraft:zombie_villager ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:farmer",level:4},VillagerDataFinalized:1b} +summon minecraft:zombie_villager ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:farmer",level:5},VillagerDataFinalized:1b} +summon minecraft:zombie_villager ~10 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:nitwit",level:5},VillagerDataFinalized:1b} +summon minecraft:zombie_villager ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:none",level:5},VillagerDataFinalized:1b} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/zombie_villager_profession.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/zombie_villager_profession.mcfunction new file mode 100644 index 0000000..a4a00f3 --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/zombie_villager_profession.mcfunction @@ -0,0 +1,15 @@ +# zombie_villager professions (14 entities) +summon minecraft:zombie_villager ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:armorer",level:1},VillagerDataFinalized:1b} +summon minecraft:zombie_villager ~2 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:butcher",level:1},VillagerDataFinalized:1b} +summon minecraft:zombie_villager ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:cartographer",level:1},VillagerDataFinalized:1b} +summon minecraft:zombie_villager ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:cleric",level:1},VillagerDataFinalized:1b} +summon minecraft:zombie_villager ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:farmer",level:1},VillagerDataFinalized:1b} +summon minecraft:zombie_villager ~10 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:fisherman",level:1},VillagerDataFinalized:1b} +summon minecraft:zombie_villager ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:fletcher",level:1},VillagerDataFinalized:1b} +summon minecraft:zombie_villager ~14 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:leatherworker",level:1},VillagerDataFinalized:1b} +summon minecraft:zombie_villager ~16 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:librarian",level:1},VillagerDataFinalized:1b} +summon minecraft:zombie_villager ~18 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:mason",level:1},VillagerDataFinalized:1b} +summon minecraft:zombie_villager ~20 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:nitwit",level:1},VillagerDataFinalized:1b} +summon minecraft:zombie_villager ~22 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:shepherd",level:1},VillagerDataFinalized:1b} +summon minecraft:zombie_villager ~24 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:toolsmith",level:1},VillagerDataFinalized:1b} +summon minecraft:zombie_villager ~26 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:weaponsmith",level:1},VillagerDataFinalized:1b} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/group/zombie_villager_type.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/zombie_villager_type.mcfunction new file mode 100644 index 0000000..3986a04 --- /dev/null +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/group/zombie_villager_type.mcfunction @@ -0,0 +1,15 @@ +# zombie_villager biome-types, adult and baby (14 entities) +summon minecraft:zombie_villager ~0 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:desert",profession:"minecraft:none",level:1},VillagerDataFinalized:1b} +summon minecraft:zombie_villager ~2 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:jungle",profession:"minecraft:none",level:1},VillagerDataFinalized:1b} +summon minecraft:zombie_villager ~4 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:plains",profession:"minecraft:none",level:1},VillagerDataFinalized:1b} +summon minecraft:zombie_villager ~6 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:savanna",profession:"minecraft:none",level:1},VillagerDataFinalized:1b} +summon minecraft:zombie_villager ~8 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:snow",profession:"minecraft:none",level:1},VillagerDataFinalized:1b} +summon minecraft:zombie_villager ~10 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:swamp",profession:"minecraft:none",level:1},VillagerDataFinalized:1b} +summon minecraft:zombie_villager ~12 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],VillagerData:{type:"minecraft:taiga",profession:"minecraft:none",level:1},VillagerDataFinalized:1b} +summon minecraft:zombie_villager ~14 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],IsBaby:1b,VillagerData:{type:"minecraft:desert",profession:"minecraft:none",level:1},VillagerDataFinalized:1b} +summon minecraft:zombie_villager ~16 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],IsBaby:1b,VillagerData:{type:"minecraft:jungle",profession:"minecraft:none",level:1},VillagerDataFinalized:1b} +summon minecraft:zombie_villager ~18 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],IsBaby:1b,VillagerData:{type:"minecraft:plains",profession:"minecraft:none",level:1},VillagerDataFinalized:1b} +summon minecraft:zombie_villager ~20 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],IsBaby:1b,VillagerData:{type:"minecraft:savanna",profession:"minecraft:none",level:1},VillagerDataFinalized:1b} +summon minecraft:zombie_villager ~22 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],IsBaby:1b,VillagerData:{type:"minecraft:snow",profession:"minecraft:none",level:1},VillagerDataFinalized:1b} +summon minecraft:zombie_villager ~24 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],IsBaby:1b,VillagerData:{type:"minecraft:swamp",profession:"minecraft:none",level:1},VillagerDataFinalized:1b} +summon minecraft:zombie_villager ~26 ~ ~ {Tags:["bme_test"],NoAI:1b,Silent:1b,Invulnerable:1b,PersistenceRequired:1b,Rotation:[0f,0f],IsBaby:1b,VillagerData:{type:"minecraft:taiga",profession:"minecraft:none",level:1},VillagerDataFinalized:1b} diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/platform.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/platform.mcfunction index 804f5c6..0baa0c2 100644 --- a/generator/datapack/bluemap-entity-test/data/bme_test/function/platform.mcfunction +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/platform.mcfunction @@ -1,3 +1,3 @@ -fill ~-2 ~-1 ~-2 ~47 ~-1 ~193 minecraft:white_concrete -fill ~-2 ~ ~-2 ~47 ~10 ~193 minecraft:air +fill ~-2 ~-1 ~-2 ~47 ~-1 ~211 minecraft:white_concrete +fill ~-2 ~ ~-2 ~47 ~10 ~211 minecraft:air diff --git a/generator/datapack/bluemap-entity-test/data/bme_test/function/spawn.mcfunction b/generator/datapack/bluemap-entity-test/data/bme_test/function/spawn.mcfunction index 7abf301..bd00c0a 100644 --- a/generator/datapack/bluemap-entity-test/data/bme_test/function/spawn.mcfunction +++ b/generator/datapack/bluemap-entity-test/data/bme_test/function/spawn.mcfunction @@ -36,19 +36,25 @@ execute positioned ~ ~ ~107 run function bme_test:group/skeleton execute positioned ~ ~ ~110 run function bme_test:group/piglin execute positioned ~ ~ ~113 run function bme_test:group/hoglin execute positioned ~ ~ ~117 run function bme_test:group/villager -execute positioned ~ ~ ~120 run function bme_test:group/monster -execute positioned ~ ~ ~123 run function bme_test:group/monster_big -execute positioned ~ ~ ~128 run function bme_test:group/cube -execute positioned ~ ~ ~132 run function bme_test:group/copper_golem -execute positioned ~ ~ ~135 run function bme_test:group/golem -execute positioned ~ ~ ~139 run function bme_test:group/aquatic -execute positioned ~ ~ ~142 run function bme_test:group/salmon -execute positioned ~ ~ ~145 run function bme_test:group/tropical_fish -execute positioned ~ ~ ~148 run function bme_test:group/ghast -execute positioned ~ ~ ~158 run function bme_test:group/misc -execute positioned ~ ~ ~161 run function bme_test:group/ender_dragon -execute positioned ~ ~ ~181 run function bme_test:group/prop -execute positioned ~ ~ ~185 run function bme_test:group/boat -execute positioned ~ ~ ~189 run function bme_test:group/chest_boat +execute positioned ~ ~ ~120 run function bme_test:group/villager_type +execute positioned ~ ~ ~123 run function bme_test:group/villager_profession +execute positioned ~ ~ ~126 run function bme_test:group/villager_level +execute positioned ~ ~ ~129 run function bme_test:group/zombie_villager_type +execute positioned ~ ~ ~132 run function bme_test:group/zombie_villager_profession +execute positioned ~ ~ ~135 run function bme_test:group/zombie_villager_level +execute positioned ~ ~ ~138 run function bme_test:group/monster +execute positioned ~ ~ ~141 run function bme_test:group/monster_big +execute positioned ~ ~ ~146 run function bme_test:group/cube +execute positioned ~ ~ ~150 run function bme_test:group/copper_golem +execute positioned ~ ~ ~153 run function bme_test:group/golem +execute positioned ~ ~ ~157 run function bme_test:group/aquatic +execute positioned ~ ~ ~160 run function bme_test:group/salmon +execute positioned ~ ~ ~163 run function bme_test:group/tropical_fish +execute positioned ~ ~ ~166 run function bme_test:group/ghast +execute positioned ~ ~ ~176 run function bme_test:group/misc +execute positioned ~ ~ ~179 run function bme_test:group/ender_dragon +execute positioned ~ ~ ~199 run function bme_test:group/prop +execute positioned ~ ~ ~203 run function bme_test:group/boat +execute positioned ~ ~ ~207 run function bme_test:group/chest_boat -tellraw @s {"text":"[bme] spawned 351 test-entities in 49 groups","color":"green"} +tellraw @s {"text":"[bme] spawned 421 test-entities in 55 groups","color":"green"} From 54375334fa39615a105b21e18f38033e21cba43d Mon Sep 17 00:00:00 2001 From: miraculixx Date: Thu, 13 Aug 2026 15:36:53 +0200 Subject: [PATCH 29/34] Entry points for fabric & neoforge --- build.gradle.kts | 13 ++++++- .../bluecolored/bluemap/entities/Addon.java | 5 +++ .../bluemap/entities/NeoForgeEntrypoint.java | 36 +++++++++++++++++++ .../resources/META-INF/neoforge.mods.toml | 16 +++++++++ src/main/resources/fabric.mod.json | 17 +++++++++ 5 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 src/main/java/de/bluecolored/bluemap/entities/NeoForgeEntrypoint.java create mode 100644 src/main/resources/META-INF/neoforge.mods.toml create mode 100644 src/main/resources/fabric.mod.json diff --git a/build.gradle.kts b/build.gradle.kts index 784fcde..cc5ab62 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -4,17 +4,22 @@ plugins { } group = "de.bluecolored.bluemap.entities" -version = "1.2" +version = "1.3" repositories { mavenCentral() maven ( "https://repo.bluecolored.de/releases" ) + maven ( "https://maven.neoforged.net/releases" ) } dependencies { compileOnly ( "de.bluecolored:bluemap-core:5.23" ) compileOnly ( "org.projectlombok:lombok:1.18.46" ) annotationProcessor ( "org.projectlombok:lombok:1.18.46" ) + + // only for the @Mod annotation (neo) + compileOnly ( "net.neoforged.fancymodloader:loader:11.0.17" ) { isTransitive = false } + compileOnly ( "net.neoforged:mergetool:2.0.0:api" ) { isTransitive = false } } java { @@ -26,6 +31,12 @@ tasks.withType(JavaCompile::class).configureEach { options.encoding = "utf-8" } +tasks.processResources { + val props = mapOf("version" to project.version) + inputs.properties(props) + filesMatching(listOf("fabric.mod.json", "META-INF/neoforge.mods.toml")) { expand(props) } +} + tasks.withType(AbstractArchiveTask::class).configureEach { isReproducibleFileOrder = true isPreserveFileTimestamps = false diff --git a/src/main/java/de/bluecolored/bluemap/entities/Addon.java b/src/main/java/de/bluecolored/bluemap/entities/Addon.java index 0b50f0c..25a50e3 100644 --- a/src/main/java/de/bluecolored/bluemap/entities/Addon.java +++ b/src/main/java/de/bluecolored/bluemap/entities/Addon.java @@ -23,6 +23,11 @@ public class Addon implements Runnable { /** all baby/dault models where "IsBaby" is a bool */ private static final String[] BABY_TYPES = { "piglin", "zombified_piglin" }; + /** entrypoint when loaded as non-native addon */ + public static void init() { + new Addon().run(); + } + @Override public void run() { EntityType.REGISTRY.register(new EntityType.Impl(Key.minecraft("llama"), Llama.class)); diff --git a/src/main/java/de/bluecolored/bluemap/entities/NeoForgeEntrypoint.java b/src/main/java/de/bluecolored/bluemap/entities/NeoForgeEntrypoint.java new file mode 100644 index 0000000..7bd2abf --- /dev/null +++ b/src/main/java/de/bluecolored/bluemap/entities/NeoForgeEntrypoint.java @@ -0,0 +1,36 @@ +/* + * This file is part of BlueMap, licensed under the MIT License (MIT). + * + * Copyright (c) Blue (Lukas Rieger) + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package de.bluecolored.bluemap.entities; + +import net.neoforged.fml.common.Mod; + +@Mod("bluemap_entities") +public class NeoForgeEntrypoint { + + public NeoForgeEntrypoint() { + Addon.init(); + } + +} diff --git a/src/main/resources/META-INF/neoforge.mods.toml b/src/main/resources/META-INF/neoforge.mods.toml new file mode 100644 index 0000000..f94c027 --- /dev/null +++ b/src/main/resources/META-INF/neoforge.mods.toml @@ -0,0 +1,16 @@ +modLoader = "javafml" +loaderVersion = "[1,)" +license = "MIT" + +[[mods]] +modId = "bluemap_entities" +version = "${version}" +displayName = "BlueMap Entities" +description = "Render entities like monsters, animals & boats on your bluemap with the full model" + +[[dependencies.bluemap_entities]] +modId = "bluemap" +type = "required" +versionRange = "[5,)" +ordering = "NONE" +side = "BOTH" diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json new file mode 100644 index 0000000..a90225a --- /dev/null +++ b/src/main/resources/fabric.mod.json @@ -0,0 +1,17 @@ +{ + "schemaVersion": 1, + "id": "bluemap_entities", + "version": "${version}", + "name": "BlueMap Entities", + "description": "Render entities like monsters, animals & boats on your bluemap with the full model", + "license": "MIT", + "environment": "*", + "entrypoints": { + "main": [ + "de.bluecolored.bluemap.entities.Addon::init" + ] + }, + "depends": { + "bluemap": ">=5.23" + } +} From 60002c4d6ca727320755f7ac725bca89ba19077b Mon Sep 17 00:00:00 2001 From: miraculixx Date: Thu, 13 Aug 2026 19:26:07 +0200 Subject: [PATCH 30/34] Lower min bluemap dep --- src/main/resources/META-INF/neoforge.mods.toml | 2 +- src/main/resources/fabric.mod.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/resources/META-INF/neoforge.mods.toml b/src/main/resources/META-INF/neoforge.mods.toml index f94c027..9f3c3f3 100644 --- a/src/main/resources/META-INF/neoforge.mods.toml +++ b/src/main/resources/META-INF/neoforge.mods.toml @@ -11,6 +11,6 @@ description = "Render entities like monsters, animals & boats on your bluemap wi [[dependencies.bluemap_entities]] modId = "bluemap" type = "required" -versionRange = "[5,)" +versionRange = "[5.21,)" ordering = "NONE" side = "BOTH" diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index a90225a..1a619ca 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -12,6 +12,6 @@ ] }, "depends": { - "bluemap": ">=5.23" + "bluemap": ">=5.21" } } From 2f103d2c88f49ef0e438fb19574064ead9af21b1 Mon Sep 17 00:00:00 2001 From: miraculixx Date: Mon, 24 Aug 2026 01:47:26 +0200 Subject: [PATCH 31/34] Update readme for modrinth --- README.md | 118 +++++------------------------------------------------- 1 file changed, 11 insertions(+), 107 deletions(-) diff --git a/README.md b/README.md index a64aa10..a1639b0 100644 --- a/README.md +++ b/README.md @@ -1,112 +1,16 @@ -# About -This is a native BlueMap addon that aims to add a renderer for each (vanilla) entity. -This means that when bluemap renders your map, it will also show entities where they are stored in the world-files at the time of rendering. -Note that the entities will be static. They will not move around. They will only be updated when bluemap -renders the entities map-tile again. +# BlueMap Entities +A native BlueMap addon, that renders all *vanilla* Mobs & Probs on your BlueMap! +This includes mobs like cows & villagers and probs like boats & minecarts. +Entity variants are fully supported! -Currently only a small subset of entity types is supported. If you want to add more entity-types and features, -feel free to create a PR! :) -In the future this is planned to be added directly to BlueMap, but this can only happen if there are a lot more entity-types -supported. +**Note**: The entities are static and only move when bluemap updates -image +![preview](https://cdn.modrinth.com/data/99IreA6y/images/66a347693026cc44d44836d4bbbb5d3a47199e1e.png) + +--- # Usage -Download the `BlueMapEntities.jar` from the releases and place it in the `packs` folder next to your -bluemap-configs. You will need to purge/re-render the map to see the entities appear. +In Fabric & NeoForge you can use BM-Entities as a normal mod, +for paper (or other) place the jar into bluemaps `pack` folder (e.g.`plugins/bluemap/pack`). -# Currently supported entity-types: -- Bee -- Breeze -- Cat - - Ocelot -- Chicken -- Cow -- Pig -- *Aquatic* - - Cod - - Salmon - - Pufferfish - - Tropical Fish - - Squid - - Glow Squid - - Dolphin - - Guardian - - Axolotl -- Fox -- Iron Golem - - Snow Golem -- Llama - - Trader Llama -- Zombie - - Drowned - - Husk -- Skeleton - - Wither Skeleton - - Stray - - Bogged - - Parched -- Horse - - Donkey - - Mule - - Skeleton Horse - - Zombie Horse -- Vex - - Allay -- Copper Golem -- Camel - - Camel Husk -- Bat -- Frog - - Tadpole -- Armadillo -- Wolf -- Rabbit -- Parrot -- Mooshroom -- Goat -- Panda -- Sniffer -- Turtle -- Polar Bear -- Nautilus - - Zombie Nautilus -- Villager - - Zombie Villager - - Wandering Trader -- Piglin - - Piglin Brute - - Zombified Piglin -- Hoglin - - Zoglin -- Strider -- *Monsters* - - Creeper - - Spider - - Cave Spider - - Silverfish - - Endermite - - Enderman - - Blaze - - Witch - - Evoker - - Vindicator - - Pillager - - Illusioner - - Phantom - - Shulker - - Creaking - - Ravager - - Warden - - Wither - - Elder Guardian - - Giant - - Slime - - Magma Cube - - Sulfur Cube - - Ender Dragon -- *Props* - - Armor Stand - - End Crystal - - Minecart (all types) - - Boat / Chest Boat (all woods) +To see the entities, BlueMap has to update the map (force full update with `/bluemap force-update`) From 5727c4293682b33280ea4bedc5c78cb57967a92b Mon Sep 17 00:00:00 2001 From: miraculixx Date: Mon, 24 Aug 2026 01:47:34 +0200 Subject: [PATCH 32/34] Add some mod icon --- src/main/resources/META-INF/neoforge.mods.toml | 1 + .../resources/assets/bluemap_entities/icon.png | Bin 0 -> 6107 bytes src/main/resources/fabric.mod.json | 1 + 3 files changed, 2 insertions(+) create mode 100644 src/main/resources/assets/bluemap_entities/icon.png diff --git a/src/main/resources/META-INF/neoforge.mods.toml b/src/main/resources/META-INF/neoforge.mods.toml index 9f3c3f3..841d21e 100644 --- a/src/main/resources/META-INF/neoforge.mods.toml +++ b/src/main/resources/META-INF/neoforge.mods.toml @@ -7,6 +7,7 @@ modId = "bluemap_entities" version = "${version}" displayName = "BlueMap Entities" description = "Render entities like monsters, animals & boats on your bluemap with the full model" +logoFile = "assets/bluemap_entities/icon.png" [[dependencies.bluemap_entities]] modId = "bluemap" diff --git a/src/main/resources/assets/bluemap_entities/icon.png b/src/main/resources/assets/bluemap_entities/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a1f17f10a178b161ee397ed2b78b984c421645d0 GIT binary patch literal 6107 zcmV<17bNJ3P)VgX@A_}dKinSKC^|iKDtF8Xjr|(tm z6RQ^Y>hryd3u;|}Cu$P*O(lRVfg}*J@0o0qWajpqbLZZ zyGroTf=T#v-Q(vp2;3vPI|Q$CE&zPa9VzlY%G{A)Hsgt_XCXFJg^rGPM2yYE%172A zaeVeUmpkIUUO@l?B?<36`djebMoh@g!DW{(!I`i3pr-8D;F16@=P|;P;IS7JED*l_ z^gZl-|4qc`W7#U(v3(oH%_v0vrB^%9<6>-l|3Da)7Zhj^+Uo1D@v+|`K0X0@y&lGv zI)n~%;Oy5s@Ye5dM~|`NoC9IlUQi%G_~3D(ddvgRgoUBEyA!7NIz&f?VOn-7s!Be= z6Iaf{p)WU`Qy}p0g4v#cU?GOoVi7zhzK0lFQ&$)I`b^-7>QN0CA&Ukn87Xl{2r=RH zJ8r~>|MlQG0|GD2(cd6&oQioD7K_Cr;={B${QSia5Sun06DQ^%Kfl0<*f?Dzu3S71 zn(8t&3UVISo4$5XY~6SO&5fNz&rwNG zt}y47(o}hp7~p$QUtf=xUwV;A&ZPXASibsBsMKmk+ttf|g7G<%Sbf>`%kl2}AE2S+ zGraJ#>(P9=@_Q)>yx?$gpFrR^ruTL62I%9XVC*oW_>+S;`CTnr0JJYX?uy8b!~ko< zRBZg(+8QiexDau1arkCW3Csfn$jY9KCD-0)NBp>P2ajJl8++b+i(T_b z(N?_n%UjUd);#J#P|FvlqGGMHXq2iA@)4|@GQ&}y}4Z8(c#hYmocQloJ3 zm8h(&L`q5uLPA39CUMo(ONr}hz{~3%!SS8NICWqb_}*?jddWshPo~7xohffOxGqeJD7>IL;yxQB_`#mL?-+ zU7U-UxJVg+_FdT23k>C@MmOH(q#>!~hNWc;i1<+k(rkfj-W_?1&@tj~@CK zt?eDioj4H}P8p9~+de@=WGo8i&VwaX14CMdbp><&13~7G?;xnfi}()&j^o*HogoI1 zx@dH^wu0wHkEpY~3q>CvM8TXaq~|2EG5-0V_YxN~9$}&OjNSP58|*tHdlK@d&t~QtMJD9r_pINA|*W&^)*#UOHROmCJxa$9a64cjqqr_RXvVQ z5ELrNe;`;$Fr^L&g+3t$oh>c0J4*d~GdZ?@`!TdMcA#eWYcMyIBQedOm<>=cvk(<0 zkE5-%8E4ANaO9gkXlkg%!F@Zhe^)W_unw|*DdQ#(#*fF*(*4X^qNUp$3av&%keh_D zQ)kG!SEOz9fuObufPX=t28jH{Mq5x#Js9c&k;2?jo?~Ntz3Br~fAJCuvPIRi@~3MN z79N3JC0lXZ-S?xb(};K8d+g?N_ zQ9UXZj~R332cGyVCgx4E z0gy4C*cBcn#l`sDJ-^1mZ@>(J!wOWf6!`t}1>3iK;rJj!i=w0m5W5v2=83XejGbP%sTESFU3Ef87%g+MWMh zMIHXQr(VIt!Rh_kSdDz{>oq3%9Os=rc)znIkEf);^$yyQUXZtjS+WB$39$&*HW7EU zg{@%00Rq%HatjMay*XWKJ~)yE)=q@!s{LPuOlBgv9(+4Lz+I|#fmbN;j>1W5;$qzO`-d=f`YidJ@|q?r`o(?Dw7H=7wzM!i=D&K@ zG%9R@C;=Xn4Fi#0;)xe7vsj8 zRuEF-uo01GAFtf@1Y7+M^qvy2)CwaMhpZs z9L2)V>WI0cY8AAhooEXoF@d=c9`J`1W}p}T5?`M!#b^Ki8>AVcNbJyqr0JKUaOG__ z204iLUE{;$m0#Nj+%!W3-$*0}=#a1f*vf1)H8qjMp`MH-rovyVHU(83@h(@8+y>tz zfsIO{;?xADk}Mvx-&Uehr()a<>rr8hLR}}3j_ez8^gy)(J+^sBg@hoiL}*0jY9nke z=z|+h;*al~!r$(gg=V6b=t7}?Ylt-5lB@}uB&gjQ2tP>z;W`^IHgOC>H0>BL2`tzW zJkb-1q7I8j&J9nazoQNzq<;871sa;GQMhnAi5Ju|4Zq5cV5^@pzs+J>{nPWZ**7)B z%F@&-N(2RgN&=M#TH@nHuwJh<1y&M%{aK6P9Jmbc(bJ)VAA#%@Q>Gu-aU4z6jU-0k zSz^xHB0lCSZtR3}T3obj9Q4G_&~fk1jX(^^i1!la_rhj;l>o%+qgkM*EYvu!ePIu) zzx}}FayxZdDF}fI*3^O>N`a9C>W&HofLP*=wy4SSG!MX+B4t}Cs6AXOzWg6Ea_1)D zrJEVLZOC1y)?2^jiYQb*D;7O)Yc9LR`S?SyVX zK;Rg&qx7+e)YhW2*`%Pxw?a4hc`gLoUYTpR`l;%nOqT#qmipFitoyuC{w=Dh4n<#^ zrv#bFfdN775?wn6`T+zAfW^#mLD4!5x>|XWC?65vt#&}lHTF1YHoB7I^)^E*eLuJP zG@hf!T@t&DLsv`@D2UJ8hWA$ouw5mOFN13{@NaOMtlNN`m zvnG(>OC=g$a@^G0kIVnE7n^@`ArkcwcHWMoVWkFGVyMfF^C4VnPt*~Z6o4(3p=^S) z7ZgActQrq-$w{a@b&|P}aHEFgV2kuo5hh2+>X17*@KtRo##ZbVP?tAdHWTkFu>Ga{S1VDr_w} z#`b~fU}~COwKCqZP`bhh7-^|7xcz4fa8F*O;uxHn?MD!3Cqdv8uBm$v9O3{!fFKj+ z8U)b}2+$?O6L+)$eMB`d*OGifBf^l8n~e0VB>5V2tomjnzAQR|^72Lo6iZ`}k2~f= zF{i4!Huj9d(}%m*Z<%q!xP8zY5NO(+cjTc95M&h;G!P)(w58UBATCCQ`d&3tJxS>X zjL%EAdN*SB)J)vgUHi(gedlp@L8|AO+cy~FCH_;DrQ$JQ86dzlFlk~;k!cJp2!Idr<(#R38FF1o<0##XIh|*2}7(QT2^0F-5fh!i=ypEiFeb*=wq8X=AjvHkAg_} ziL!dkxG+;5cSvUY0|X4hLj?#{6%>3B=vExvsvMhTuu27(=g`{RiIN>hNtUvKO@e1e zmRxnX%!gG9$e5>2H^bQ81FbIHW*h?yf@}vcI0yBE!oa{hd8!)r4-^hg?~v_^c{tD0K4s%BZ9(hazcI^CAV}hq zl{p6Ck;G6kSDk~u3LS#3vdXGvV$>bt0Dpi0_>?>H?TuOR2M8Qf3yFpp+`M8oQj&G- zDH{5u6UzhnSXkDTT)(A5Kuu*WqlKw8e}N$Q27>Qz%<=;WR4LNC<{~4)v0~XA%$_;k zs)9s!)Yl?yikF?Nw$bBHb>ssGUcDA=aU&JGXO+ANGA6+LirT-PSHALOE#+u_N8S zjE&P_Qf?Az8aqfV&?|aMayD*wMH;cIYXE8bKD>O(e3Wi^AI6qO_7tTyF42KT*YtYQ zE^ji~wK-6t;1zf4+YNS8^7*x8cE>q~dt#(Ir>NVAlz`@}Ake33Xnk8zDfS+zC#$%h zNrS};?}$a#Wa;H%53(#(Sh8dZdm^W}xCoqn45lo;26>B@B7SVI$TIFB0OTx$?0yXYap!6j%$>^~1mOiU zKHcyvzWnM7l$LiOF6Tl_`O#7W#x*2gH74L7*r^~p5EL?GFE-BYoZ^RlUx#*Oe=BvI zt*SU~LxiLHlSqR;J_eIB}P$}EWHH12e#m$1?i|gemEe8Sv?fdgKeh;HFw0ToAqAa|X^TMt7;PZ1TU+RB(1_m7%pH%_Nd|nf>08t^cY}s=G;nj5z7SeZ zA(JyAFFhTotP}xIaX6i!W8-Nf)WqnABCqf|{C!yg)M_=lySuT4s4Hp@>>21k5Il-< zMoJyQQ60fLE0QlV5A?C;$9}wW0cK7#P>-73ir_AA6KeLO@S1B-`qo=G_Ufx>Sba09 z$gW$LHWZo=6~f8>1RoNC@Wgy}4THhJ0NA``GcH)VYFKK=T|3~cjyw)CM*;-F9SC%x z5p_YMXWF)4@eHiEY&;?(BVmR$aN`_oLvIsH^iigorcFcbU3cK{%~vq>6Gc`($&EAS z)7?3GBLK}Coj7pMT zgchTTc~43&iA%l^rN%MX@JTWD?b!uYUkfbtJID$gK%zbzJ-z+dP*ja(qXh*81;pL$ z#~W|Hfqp|4vI~DC&(C9e2WhwSj$Fk7LzR(;6YM~6>I=4ELpOM6efN$d*nXgrG2bz8 zlk9{x0=P6^g@IFFVJcsWB&`{@|K%Ijr|L`=P|uQ#0f(h zVOM1&3^Nqhak&|y5)CwE@a(yhkz|O#$3^An?lD2liw019SVUl%R%0)R@UaC*zvv3G zZ*0ci@AhNX4Id(`y_%`Aef##Iq0@xq+-aivaG2k44Deuv*((W<%4n1XIyoBg(hdCX z4kI>wUW)Rw9psq!${fLJsOiqYybF@CV4?UH7Ise(TU{13mLEpr;oUHr%qU!S$Ds4` zSrU8!VAO&Ds&)q0>n>^gj%^1~@=Xo92}&{x6o|AWEq?ry1%uM-NxLr~_?&DXZQhX- zNwdI>K6*-;=U$YLl}mCF7AieaBhp^o*p2qqP8pEl%)?))Y~Ob~JS1`?K%lQrri`U7 z<+uqMxMkHmq^FP_Hw(w!)J5B?sv6lj76`+hhd)5@3jp4N0H?n2I|xi6v0E6;h|)!4 z#SQZ?H-8NJ1=qy%_L^X$j!o+~X5|48a1US$eGyniEiO0DGg5&jq3IO0G z@i=!u2s!|Om&D`T1Ytw~0K6m~=N?a0D$u#j5q+a{E$Hy6#&rkLj_^f h06@#R0K#zR@h?)JDAUi8C-ndT002ovPDHLkV1i@gaGL-C literal 0 HcmV?d00001 diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 1a619ca..9525898 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -6,6 +6,7 @@ "description": "Render entities like monsters, animals & boats on your bluemap with the full model", "license": "MIT", "environment": "*", + "icon": "assets/bluemap_entities/icon.png", "entrypoints": { "main": [ "de.bluecolored.bluemap.entities.Addon::init" From ec727f54b28693032cece0a97fabc22be3dc7ba0 Mon Sep 17 00:00:00 2001 From: miraculixx Date: Tue, 25 Aug 2026 14:29:41 +0200 Subject: [PATCH 33/34] Add plugin entry point (only instruction) --- build.gradle.kts | 8 +++- .../bluemap/entities/PaperEntrypoint.java | 38 +++++++++++++++++++ src/main/resources/plugin.yml | 5 +++ 3 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 src/main/java/de/bluecolored/bluemap/entities/PaperEntrypoint.java create mode 100644 src/main/resources/plugin.yml diff --git a/build.gradle.kts b/build.gradle.kts index cc5ab62..fa475ce 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -4,12 +4,13 @@ plugins { } group = "de.bluecolored.bluemap.entities" -version = "1.3" +version = "1.5" repositories { mavenCentral() maven ( "https://repo.bluecolored.de/releases" ) maven ( "https://maven.neoforged.net/releases" ) + maven ( "https://repo.papermc.io/repository/maven-public/" ) } dependencies { @@ -20,6 +21,9 @@ dependencies { // only for the @Mod annotation (neo) compileOnly ( "net.neoforged.fancymodloader:loader:11.0.17" ) { isTransitive = false } compileOnly ( "net.neoforged:mergetool:2.0.0:api" ) { isTransitive = false } + + // only to warn if the addon is loaded as a paper-plugin + compileOnly ( "io.papermc.paper:paper-api:26.1.2.build.+" ) } java { @@ -34,7 +38,7 @@ tasks.withType(JavaCompile::class).configureEach { tasks.processResources { val props = mapOf("version" to project.version) inputs.properties(props) - filesMatching(listOf("fabric.mod.json", "META-INF/neoforge.mods.toml")) { expand(props) } + filesMatching(listOf("fabric.mod.json", "META-INF/neoforge.mods.toml", "plugin.yml")) { expand(props) } } tasks.withType(AbstractArchiveTask::class).configureEach { diff --git a/src/main/java/de/bluecolored/bluemap/entities/PaperEntrypoint.java b/src/main/java/de/bluecolored/bluemap/entities/PaperEntrypoint.java new file mode 100644 index 0000000..5690d03 --- /dev/null +++ b/src/main/java/de/bluecolored/bluemap/entities/PaperEntrypoint.java @@ -0,0 +1,38 @@ +/* + * This file is part of BlueMap, licensed under the MIT License (MIT). + * + * Copyright (c) Blue (Lukas Rieger) + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package de.bluecolored.bluemap.entities; + +import org.bukkit.plugin.java.JavaPlugin; + +public class PaperEntrypoint extends JavaPlugin { + + @Override + public void onEnable() { + getLogger().warning("BlueMap-Entities is a BlueMap-addon, not a plugin! " + + "Move this jar into the 'plugins/bluemap/packs' folder."); + getServer().getPluginManager().disablePlugin(this); + } + +} diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml new file mode 100644 index 0000000..d00f9ab --- /dev/null +++ b/src/main/resources/plugin.yml @@ -0,0 +1,5 @@ +name: BlueMapEntities +version: ${version} +api-version: '26.1.2' +main: de.bluecolored.bluemap.entities.PaperEntrypoint +description: Render entities like monsters, animals & boats on your bluemap with the full model From 7dde78da5582a312ee179e51f14b5ebc2a36f785 Mon Sep 17 00:00:00 2001 From: miraculixx Date: Wed, 9 Sep 2026 14:08:00 +0200 Subject: [PATCH 34/34] Untrack generated entity models --- .gitignore | 1 + generator/generated-index.txt | 722 ++++++++++++++++++ .../assets/minecraft/entitystates/allay.json | 2 +- .../assets/minecraft/entitystates/bat.json | 2 +- .../assets/minecraft/entitystates/breeze.json | 2 +- .../assets/minecraft/entitystates/cod.json | 2 +- .../minecraft/entitystates/guardian.json | 2 +- .../minecraft/entitystates/iron_golem.json | 2 +- .../minecraft/entitystates/pufferfish.json | 2 +- .../assets/minecraft/entitystates/salmon.json | 2 +- .../minecraft/entitystates/tadpole.json | 2 +- .../assets/minecraft/entitystates/vex.json | 2 +- .../assets/minecraft/models/entity/allay.json | 131 ---- .../entity/armadillo/armadillo_adult.json | 171 ----- .../armadillo/armadillo_adult_scared.json | 31 - .../entity/armadillo/armadillo_baby.json | 171 ----- .../armadillo/armadillo_baby_scared.json | 31 - .../models/entity/axolotl/axolotl_adult.json | 195 ----- .../models/entity/axolotl/axolotl_baby.json | 195 ----- .../axolotl/color/axolotl_adult_blue.json | 6 - .../axolotl/color/axolotl_adult_cyan.json | 6 - .../axolotl/color/axolotl_adult_gold.json | 6 - .../axolotl/color/axolotl_adult_lucy.json | 6 - .../axolotl/color/axolotl_adult_wild.json | 6 - .../axolotl/color/axolotl_baby_blue.json | 6 - .../axolotl/color/axolotl_baby_cyan.json | 6 - .../axolotl/color/axolotl_baby_gold.json | 6 - .../axolotl/color/axolotl_baby_lucy.json | 6 - .../axolotl/color/axolotl_baby_wild.json | 6 - .../assets/minecraft/models/entity/bat.json | 162 ---- .../minecraft/models/entity/bee/adult.json | 164 ---- .../minecraft/models/entity/bee/baby.json | 164 ---- .../minecraft/models/entity/breeze.json | 92 --- .../models/entity/camel/camel_adult.json | 203 ----- .../models/entity/camel/camel_baby.json | 203 ----- .../models/entity/camel/camel_husk_adult.json | 6 - .../models/entity/camel/camel_husk_baby.json | 6 - .../minecraft/models/entity/cat/cat.json | 204 ----- .../minecraft/models/entity/cat/cat_baby.json | 207 ----- .../entity/cat/color/cat_adult_all_black.json | 6 - .../entity/cat/color/cat_adult_black.json | 6 - .../color/cat_adult_british_shorthair.json | 6 - .../entity/cat/color/cat_adult_calico.json | 6 - .../entity/cat/color/cat_adult_jellie.json | 6 - .../entity/cat/color/cat_adult_ocelot.json | 6 - .../entity/cat/color/cat_adult_persian.json | 6 - .../entity/cat/color/cat_adult_ragdoll.json | 6 - .../entity/cat/color/cat_adult_red.json | 6 - .../entity/cat/color/cat_adult_siamese.json | 6 - .../entity/cat/color/cat_adult_tabby.json | 6 - .../entity/cat/color/cat_adult_white.json | 6 - .../entity/cat/color/cat_baby_all_black.json | 6 - .../entity/cat/color/cat_baby_black.json | 6 - .../cat/color/cat_baby_british_shorthair.json | 6 - .../entity/cat/color/cat_baby_calico.json | 6 - .../entity/cat/color/cat_baby_jellie.json | 6 - .../entity/cat/color/cat_baby_ocelot.json | 6 - .../entity/cat/color/cat_baby_persian.json | 6 - .../entity/cat/color/cat_baby_ragdoll.json | 6 - .../models/entity/cat/color/cat_baby_red.json | 6 - .../entity/cat/color/cat_baby_siamese.json | 6 - .../entity/cat/color/cat_baby_tabby.json | 6 - .../entity/cat/color/cat_baby_white.json | 6 - .../models/entity/chicken/adult.json | 199 ----- .../models/entity/chicken/adult_cold.json | 6 - .../entity/chicken/adult_temperate.json | 6 - .../models/entity/chicken/adult_warm.json | 6 - .../minecraft/models/entity/chicken/baby.json | 199 ----- .../models/entity/chicken/baby_cold.json | 6 - .../models/entity/chicken/baby_temperate.json | 6 - .../models/entity/chicken/baby_warm.json | 6 - .../minecraft/models/entity/cod/cod.json | 153 ---- .../copper_golem_statue_alive.json | 140 ---- .../exposed_copper_golem_statue_alive.json | 7 - .../oxidized_copper_golem_statue_alive.json | 7 - .../weathered_copper_golem_statue_alive.json | 7 - .../minecraft/models/entity/cow/adult.json | 180 ----- .../models/entity/cow/adult_cold.json | 6 - .../models/entity/cow/adult_temperate.json | 6 - .../models/entity/cow/adult_warm.json | 6 - .../minecraft/models/entity/cow/baby.json | 188 ----- .../models/entity/cow/baby_cold.json | 6 - .../models/entity/cow/baby_temperate.json | 6 - .../models/entity/cow/baby_warm.json | 6 - .../models/entity/dolphin/adult.json | 163 ---- .../minecraft/models/entity/dolphin/baby.json | 166 ---- .../minecraft/models/entity/fox/adult.json | 193 ----- .../models/entity/fox/adult_snow.json | 6 - .../minecraft/models/entity/fox/baby.json | 194 ----- .../models/entity/fox/baby_snow.json | 6 - .../minecraft/models/entity/frog/frog.json | 185 ----- .../models/entity/frog/variant/frog_cold.json | 6 - .../entity/frog/variant/frog_temperate.json | 6 - .../models/entity/frog/variant/frog_warm.json | 6 - .../minecraft/models/entity/ghast/ghast.json | 163 ---- .../entity/ghast/happy_ghast_adult.json | 178 ----- .../models/entity/ghast/happy_ghast_baby.json | 6 - .../models/entity/guardian/guardian.json | 352 --------- .../entity/horse/color/horse_adult_black.json | 6 - .../entity/horse/color/horse_adult_brown.json | 6 - .../horse/color/horse_adult_chestnut.json | 6 - .../horse/color/horse_adult_creamy.json | 6 - .../horse/color/horse_adult_darkbrown.json | 6 - .../horse/color/horse_adult_donkey.json | 6 - .../entity/horse/color/horse_adult_gray.json | 6 - .../entity/horse/color/horse_adult_mule.json | 6 - .../horse/color/horse_adult_skeleton.json | 6 - .../entity/horse/color/horse_adult_white.json | 6 - .../horse/color/horse_adult_zombie.json | 6 - .../entity/horse/color/horse_baby_black.json | 6 - .../entity/horse/color/horse_baby_brown.json | 6 - .../horse/color/horse_baby_chestnut.json | 6 - .../entity/horse/color/horse_baby_creamy.json | 6 - .../horse/color/horse_baby_darkbrown.json | 6 - .../entity/horse/color/horse_baby_donkey.json | 6 - .../entity/horse/color/horse_baby_gray.json | 6 - .../entity/horse/color/horse_baby_mule.json | 6 - .../horse/color/horse_baby_skeleton.json | 6 - .../entity/horse/color/horse_baby_white.json | 6 - .../entity/horse/color/horse_baby_zombie.json | 6 - .../models/entity/horse/horse_adult.json | 198 ----- .../entity/horse/horse_adult_chest.json | 47 -- .../entity/horse/horse_adult_markings.json | 203 ----- .../models/entity/horse/horse_baby.json | 198 ----- .../models/entity/horse/horse_baby_chest.json | 47 -- .../entity/horse/horse_baby_markings.json | 203 ----- .../horse/marking/horse_adult_blackdots.json | 6 - .../horse/marking/horse_adult_white.json | 6 - .../horse/marking/horse_adult_whitedots.json | 6 - .../horse/marking/horse_adult_whitefield.json | 6 - .../horse/marking/horse_baby_blackdots.json | 6 - .../horse/marking/horse_baby_white.json | 6 - .../horse/marking/horse_baby_whitedots.json | 6 - .../horse/marking/horse_baby_whitefield.json | 6 - .../models/entity/iron_golem/iron_golem.json | 159 ---- .../llama/carpet/llama_adult_black.json | 6 - .../entity/llama/carpet/llama_adult_blue.json | 6 - .../llama/carpet/llama_adult_brown.json | 6 - .../entity/llama/carpet/llama_adult_cyan.json | 6 - .../entity/llama/carpet/llama_adult_gray.json | 6 - .../llama/carpet/llama_adult_green.json | 6 - .../llama/carpet/llama_adult_light_blue.json | 6 - .../llama/carpet/llama_adult_light_gray.json | 6 - .../entity/llama/carpet/llama_adult_lime.json | 6 - .../llama/carpet/llama_adult_magenta.json | 6 - .../llama/carpet/llama_adult_orange.json | 6 - .../entity/llama/carpet/llama_adult_pink.json | 6 - .../llama/carpet/llama_adult_purple.json | 6 - .../entity/llama/carpet/llama_adult_red.json | 6 - .../carpet/llama_adult_trader_llama.json | 6 - .../llama/carpet/llama_adult_white.json | 6 - .../llama/carpet/llama_adult_yellow.json | 6 - .../entity/llama/carpet/llama_baby_black.json | 6 - .../entity/llama/carpet/llama_baby_blue.json | 6 - .../entity/llama/carpet/llama_baby_brown.json | 6 - .../entity/llama/carpet/llama_baby_cyan.json | 6 - .../entity/llama/carpet/llama_baby_gray.json | 6 - .../entity/llama/carpet/llama_baby_green.json | 6 - .../llama/carpet/llama_baby_light_blue.json | 6 - .../llama/carpet/llama_baby_light_gray.json | 6 - .../entity/llama/carpet/llama_baby_lime.json | 6 - .../llama/carpet/llama_baby_magenta.json | 6 - .../llama/carpet/llama_baby_orange.json | 6 - .../entity/llama/carpet/llama_baby_pink.json | 6 - .../llama/carpet/llama_baby_purple.json | 6 - .../entity/llama/carpet/llama_baby_red.json | 6 - .../llama/carpet/llama_baby_trader_llama.json | 6 - .../entity/llama/carpet/llama_baby_white.json | 6 - .../llama/carpet/llama_baby_yellow.json | 6 - .../entity/llama/color/llama_adult_brown.json | 6 - .../llama/color/llama_adult_creamy.json | 6 - .../entity/llama/color/llama_adult_gray.json | 6 - .../entity/llama/color/llama_adult_white.json | 6 - .../entity/llama/color/llama_baby_brown.json | 6 - .../entity/llama/color/llama_baby_creamy.json | 6 - .../entity/llama/color/llama_baby_gray.json | 6 - .../entity/llama/color/llama_baby_white.json | 6 - .../minecraft/models/entity/llama/llama.json | 168 ---- .../models/entity/llama/llama_baby.json | 173 ----- .../models/entity/llama/llama_carpet.json | 51 -- .../entity/llama/llama_carpet_baby.json | 51 -- .../models/entity/llama/llama_chest.json | 46 -- .../minecraft/models/entity/pig/adult.json | 155 ---- .../models/entity/pig/adult_cold.json | 6 - .../models/entity/pig/adult_temperate.json | 6 - .../models/entity/pig/adult_warm.json | 6 - .../minecraft/models/entity/pig/baby.json | 155 ---- .../models/entity/pig/baby_cold.json | 6 - .../models/entity/pig/baby_temperate.json | 6 - .../models/entity/pig/baby_warm.json | 6 - .../models/entity/pufferfish/pufferfish.json | 131 ---- .../models/entity/salmon/salmon.json | 171 ----- .../minecraft/models/entity/sheep/adult.json | 127 --- .../models/entity/sheep/adult_wool.json | 127 --- .../minecraft/models/entity/sheep/baby.json | 132 ---- .../models/entity/sheep/baby_wool.json | 132 ---- .../models/entity/skeleton/bogged.json | 7 - .../models/entity/skeleton/parched.json | 210 ----- .../models/entity/skeleton/skeleton.json | 128 ---- .../models/entity/skeleton/stray.json | 308 -------- .../entity/skeleton/wither_skeleton.json | 128 ---- .../minecraft/models/entity/snow_golem.json | 97 --- .../models/entity/squid/glow_squid_adult.json | 6 - .../models/entity/squid/glow_squid_baby.json | 6 - .../models/entity/squid/squid_adult.json | 196 ----- .../models/entity/squid/squid_baby.json | 199 ----- .../minecraft/models/entity/tadpole.json | 43 -- .../entity/tropical_fish/tropical_fish.json | 113 --- .../assets/minecraft/models/entity/vex.json | 131 ---- .../models/entity/zombie/drowned_adult.json | 213 ------ .../models/entity/zombie/drowned_baby.json | 213 ------ .../models/entity/zombie/husk_adult.json | 6 - .../models/entity/zombie/husk_baby.json | 6 - .../models/entity/zombie/zombie_adult.json | 128 ---- .../models/entity/zombie/zombie_baby.json | 132 ---- 215 files changed, 733 insertions(+), 10744 deletions(-) create mode 100644 generator/generated-index.txt delete mode 100644 src/main/resources/assets/minecraft/models/entity/allay.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/armadillo/armadillo_adult.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/armadillo/armadillo_adult_scared.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/armadillo/armadillo_baby.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/armadillo/armadillo_baby_scared.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/axolotl/axolotl_adult.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/axolotl/axolotl_baby.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/axolotl/color/axolotl_adult_blue.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/axolotl/color/axolotl_adult_cyan.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/axolotl/color/axolotl_adult_gold.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/axolotl/color/axolotl_adult_lucy.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/axolotl/color/axolotl_adult_wild.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/axolotl/color/axolotl_baby_blue.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/axolotl/color/axolotl_baby_cyan.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/axolotl/color/axolotl_baby_gold.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/axolotl/color/axolotl_baby_lucy.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/axolotl/color/axolotl_baby_wild.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/bat.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/bee/adult.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/bee/baby.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/breeze.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/camel/camel_adult.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/camel/camel_baby.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/camel/camel_husk_adult.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/camel/camel_husk_baby.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/cat/cat.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/cat/cat_baby.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_all_black.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_black.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_british_shorthair.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_calico.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_jellie.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_ocelot.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_persian.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_ragdoll.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_red.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_siamese.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_tabby.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_white.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_all_black.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_black.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_british_shorthair.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_calico.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_jellie.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_ocelot.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_persian.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_ragdoll.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_red.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_siamese.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_tabby.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_white.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/chicken/adult.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/chicken/adult_cold.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/chicken/adult_temperate.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/chicken/adult_warm.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/chicken/baby.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/chicken/baby_cold.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/chicken/baby_temperate.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/chicken/baby_warm.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/cod/cod.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/copper_golem/copper_golem_statue_alive.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/copper_golem/exposed_copper_golem_statue_alive.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/copper_golem/oxidized_copper_golem_statue_alive.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/copper_golem/weathered_copper_golem_statue_alive.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/cow/adult.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/cow/adult_cold.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/cow/adult_temperate.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/cow/adult_warm.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/cow/baby.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/cow/baby_cold.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/cow/baby_temperate.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/cow/baby_warm.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/dolphin/adult.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/dolphin/baby.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/fox/adult.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/fox/adult_snow.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/fox/baby.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/fox/baby_snow.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/frog/frog.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/frog/variant/frog_cold.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/frog/variant/frog_temperate.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/frog/variant/frog_warm.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/ghast/ghast.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/ghast/happy_ghast_adult.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/ghast/happy_ghast_baby.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/guardian/guardian.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_black.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_brown.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_chestnut.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_creamy.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_darkbrown.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_donkey.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_gray.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_mule.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_skeleton.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_white.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_zombie.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_black.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_brown.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_chestnut.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_creamy.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_darkbrown.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_donkey.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_gray.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_mule.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_skeleton.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_white.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_zombie.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/horse/horse_adult.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/horse/horse_adult_chest.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/horse/horse_adult_markings.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/horse/horse_baby.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/horse/horse_baby_chest.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/horse/horse_baby_markings.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/horse/marking/horse_adult_blackdots.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/horse/marking/horse_adult_white.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/horse/marking/horse_adult_whitedots.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/horse/marking/horse_adult_whitefield.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/horse/marking/horse_baby_blackdots.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/horse/marking/horse_baby_white.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/horse/marking/horse_baby_whitedots.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/horse/marking/horse_baby_whitefield.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/iron_golem/iron_golem.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_black.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_blue.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_brown.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_cyan.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_gray.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_green.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_light_blue.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_light_gray.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_lime.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_magenta.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_orange.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_pink.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_purple.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_red.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_trader_llama.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_white.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_yellow.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_black.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_blue.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_brown.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_cyan.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_gray.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_green.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_light_blue.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_light_gray.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_lime.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_magenta.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_orange.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_pink.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_purple.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_red.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_trader_llama.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_white.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_yellow.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/color/llama_adult_brown.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/color/llama_adult_creamy.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/color/llama_adult_gray.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/color/llama_adult_white.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/color/llama_baby_brown.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/color/llama_baby_creamy.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/color/llama_baby_gray.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/color/llama_baby_white.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/llama.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/llama_baby.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/llama_carpet.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/llama_carpet_baby.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/llama/llama_chest.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/pig/adult.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/pig/adult_cold.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/pig/adult_temperate.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/pig/adult_warm.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/pig/baby.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/pig/baby_cold.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/pig/baby_temperate.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/pig/baby_warm.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/pufferfish/pufferfish.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/salmon/salmon.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/sheep/adult.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/sheep/adult_wool.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/sheep/baby.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/sheep/baby_wool.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/skeleton/bogged.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/skeleton/parched.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/skeleton/skeleton.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/skeleton/stray.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/skeleton/wither_skeleton.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/snow_golem.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/squid/glow_squid_adult.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/squid/glow_squid_baby.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/squid/squid_adult.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/squid/squid_baby.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/tadpole.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/tropical_fish/tropical_fish.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/vex.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/zombie/drowned_adult.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/zombie/drowned_baby.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/zombie/husk_adult.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/zombie/husk_baby.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/zombie/zombie_adult.json delete mode 100644 src/main/resources/assets/minecraft/models/entity/zombie/zombie_baby.json diff --git a/.gitignore b/.gitignore index a0a1176..78a1298 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ gradle.properties logs run run-client +src/main/resources/assets/minecraft/models/ diff --git a/generator/generated-index.txt b/generator/generated-index.txt new file mode 100644 index 0000000..e120649 --- /dev/null +++ b/generator/generated-index.txt @@ -0,0 +1,722 @@ +# generated by the :generator module - do not edit +allay/main.json +armadillo/main.json +armadillo_baby/main.json +armor_stand/main.json +armor_stand_small/main.json +arrow/main.json +axolotl/main.json +axolotl/main_blue.json +axolotl/main_cyan.json +axolotl/main_gold.json +axolotl/main_lucy.json +axolotl/main_wild.json +axolotl_baby/main.json +axolotl_baby/main_blue.json +axolotl_baby/main_cyan.json +axolotl_baby/main_gold.json +axolotl_baby/main_lucy.json +axolotl_baby/main_wild.json +bat/main.json +bee/main.json +bee_baby/main.json +bee_stinger/main.json +bell/main.json +blaze/main.json +boat/acacia/main.json +boat/bamboo/main.json +boat/birch/main.json +boat/cherry/main.json +boat/dark_oak/main.json +boat/jungle/main.json +boat/mangrove/main.json +boat/oak/main.json +boat/pale_oak/main.json +boat/spruce/main.json +bogged/main.json +bogged/outer.json +book/main.json +breeze/eyes.json +breeze/main.json +breeze/wind.json +camel/main.json +camel/main_camel.json +camel/main_husk.json +camel/saddle.json +camel/saddle_saddle.json +camel_baby/main.json +camel_baby/main_camel.json +camel_baby/main_husk.json +camel_husk/saddle.json +camel_husk/saddle_saddle.json +cat/collar.json +cat/main.json +cat/main_all_black.json +cat/main_black.json +cat/main_british_shorthair.json +cat/main_calico.json +cat/main_jellie.json +cat/main_persian.json +cat/main_ragdoll.json +cat/main_red.json +cat/main_siamese.json +cat/main_tabby.json +cat/main_white.json +cat_baby/collar.json +cat_baby/main.json +cat_baby/main_all_black.json +cat_baby/main_black.json +cat_baby/main_british_shorthair.json +cat_baby/main_calico.json +cat_baby/main_jellie.json +cat_baby/main_persian.json +cat_baby/main_ragdoll.json +cat_baby/main_red.json +cat_baby/main_siamese.json +cat_baby/main_tabby.json +cat_baby/main_white.json +cave_spider/main.json +chest/main.json +chest_boat/acacia/main.json +chest_boat/bamboo/main.json +chest_boat/birch/main.json +chest_boat/cherry/main.json +chest_boat/dark_oak/main.json +chest_boat/jungle/main.json +chest_boat/mangrove/main.json +chest_boat/oak/main.json +chest_boat/pale_oak/main.json +chest_boat/spruce/main.json +chest_minecart/main.json +chicken/main.json +chicken/main_cold.json +chicken/main_temperate.json +chicken/main_warm.json +chicken_baby/main.json +chicken_baby/main_cold.json +chicken_baby/main_temperate.json +chicken_baby/main_warm.json +cod/main.json +cold_chicken/main.json +cold_chicken/main_cold.json +cold_cow/main.json +cold_cow/main_cold.json +cold_cow_baby/main.json +cold_cow_baby/main_cold.json +cold_pig/main.json +cold_pig/main_cold.json +command_block_minecart/main.json +conduit/cage.json +conduit/eye.json +conduit/shell.json +conduit/wind.json +copper_golem/main.json +copper_golem/main_exposed.json +copper_golem/main_oxidized.json +copper_golem/main_unaffected.json +copper_golem/main_weathered.json +copper_golem_running/main.json +copper_golem_running/main_exposed.json +copper_golem_running/main_oxidized.json +copper_golem_running/main_unaffected.json +copper_golem_running/main_weathered.json +copper_golem_sitting/main.json +copper_golem_sitting/main_exposed.json +copper_golem_sitting/main_oxidized.json +copper_golem_sitting/main_unaffected.json +copper_golem_sitting/main_weathered.json +copper_golem_star/main.json +copper_golem_star/main_exposed.json +copper_golem_star/main_oxidized.json +copper_golem_star/main_unaffected.json +copper_golem_star/main_weathered.json +cow/main.json +cow/main_cold.json +cow/main_temperate.json +cow/main_warm.json +cow_baby/main.json +cow_baby/main_cold.json +cow_baby/main_temperate.json +cow_baby/main_warm.json +creaking/eyes.json +creaking/main.json +creeper/armor.json +creeper/main.json +creeper_head/main.json +decorated_pot_base/main.json +decorated_pot_sides/main.json +dolphin/main.json +dolphin_baby/main.json +donkey/chest.json +donkey/main.json +donkey/saddle.json +donkey/saddle_saddle.json +donkey_baby/main.json +double_chest_left/main.json +double_chest_right/main.json +dragon_skull/main.json +drowned/main.json +drowned/outer.json +drowned_baby/main.json +drowned_baby/outer.json +elder_guardian/main.json +end_crystal/main.json +ender_dragon/main.json +enderman/main.json +endermite/main.json +evoker/main.json +evoker_fangs/main.json +fox/main.json +fox/main_red.json +fox/main_snow.json +fox_baby/main.json +fox_baby/main_red.json +fox_baby/main_snow.json +frog/main.json +frog/main_cold.json +frog/main_temperate.json +frog/main_warm.json +furnace_minecart/main.json +ghast/main.json +giant/main.json +glow_squid/main.json +glow_squid_baby/main.json +goat/main.json +goat_baby/main.json +guardian/main.json +happy_ghast/main.json +happy_ghast_baby/main.json +happy_ghast_baby_harness/main.json +happy_ghast_baby_harness/main_black_harness.json +happy_ghast_baby_harness/main_blue_harness.json +happy_ghast_baby_harness/main_brown_harness.json +happy_ghast_baby_harness/main_cyan_harness.json +happy_ghast_baby_harness/main_gray_harness.json +happy_ghast_baby_harness/main_green_harness.json +happy_ghast_baby_harness/main_light_blue_harness.json +happy_ghast_baby_harness/main_light_gray_harness.json +happy_ghast_baby_harness/main_lime_harness.json +happy_ghast_baby_harness/main_magenta_harness.json +happy_ghast_baby_harness/main_orange_harness.json +happy_ghast_baby_harness/main_pink_harness.json +happy_ghast_baby_harness/main_purple_harness.json +happy_ghast_baby_harness/main_red_harness.json +happy_ghast_baby_harness/main_white_harness.json +happy_ghast_baby_harness/main_yellow_harness.json +happy_ghast_baby_ropes/main.json +happy_ghast_baby_ropes/main_black_harness.json +happy_ghast_baby_ropes/main_blue_harness.json +happy_ghast_baby_ropes/main_brown_harness.json +happy_ghast_baby_ropes/main_cyan_harness.json +happy_ghast_baby_ropes/main_gray_harness.json +happy_ghast_baby_ropes/main_green_harness.json +happy_ghast_baby_ropes/main_light_blue_harness.json +happy_ghast_baby_ropes/main_light_gray_harness.json +happy_ghast_baby_ropes/main_lime_harness.json +happy_ghast_baby_ropes/main_magenta_harness.json +happy_ghast_baby_ropes/main_orange_harness.json +happy_ghast_baby_ropes/main_pink_harness.json +happy_ghast_baby_ropes/main_purple_harness.json +happy_ghast_baby_ropes/main_red_harness.json +happy_ghast_baby_ropes/main_white_harness.json +happy_ghast_baby_ropes/main_yellow_harness.json +happy_ghast_harness/main.json +happy_ghast_harness/main_black_harness.json +happy_ghast_harness/main_blue_harness.json +happy_ghast_harness/main_brown_harness.json +happy_ghast_harness/main_cyan_harness.json +happy_ghast_harness/main_gray_harness.json +happy_ghast_harness/main_green_harness.json +happy_ghast_harness/main_light_blue_harness.json +happy_ghast_harness/main_light_gray_harness.json +happy_ghast_harness/main_lime_harness.json +happy_ghast_harness/main_magenta_harness.json +happy_ghast_harness/main_orange_harness.json +happy_ghast_harness/main_pink_harness.json +happy_ghast_harness/main_purple_harness.json +happy_ghast_harness/main_red_harness.json +happy_ghast_harness/main_white_harness.json +happy_ghast_harness/main_yellow_harness.json +happy_ghast_ropes/main.json +happy_ghast_ropes/main_black_harness.json +happy_ghast_ropes/main_blue_harness.json +happy_ghast_ropes/main_brown_harness.json +happy_ghast_ropes/main_cyan_harness.json +happy_ghast_ropes/main_gray_harness.json +happy_ghast_ropes/main_green_harness.json +happy_ghast_ropes/main_light_blue_harness.json +happy_ghast_ropes/main_light_gray_harness.json +happy_ghast_ropes/main_lime_harness.json +happy_ghast_ropes/main_magenta_harness.json +happy_ghast_ropes/main_orange_harness.json +happy_ghast_ropes/main_pink_harness.json +happy_ghast_ropes/main_purple_harness.json +happy_ghast_ropes/main_red_harness.json +happy_ghast_ropes/main_white_harness.json +happy_ghast_ropes/main_yellow_harness.json +hoglin/main.json +hoglin_baby/main.json +hopper_minecart/main.json +horse/main.json +horse/main_black.json +horse/main_brown.json +horse/main_chestnut.json +horse/main_creamy.json +horse/main_darkbrown.json +horse/main_gray.json +horse/main_markings_blackdots.json +horse/main_markings_white.json +horse/main_markings_whitedots.json +horse/main_markings_whitefield.json +horse/main_skeleton.json +horse/main_white.json +horse/main_zombie.json +horse/saddle.json +horse/saddle_saddle.json +horse_baby/main.json +horse_baby/main_black.json +horse_baby/main_brown.json +horse_baby/main_chestnut.json +horse_baby/main_creamy.json +horse_baby/main_darkbrown.json +horse_baby/main_gray.json +horse_baby/main_markings_blackdots.json +horse_baby/main_markings_white.json +horse_baby/main_markings_whitedots.json +horse_baby/main_markings_whitefield.json +horse_baby/main_skeleton.json +horse_baby/main_white.json +horse_baby/main_zombie.json +husk/main.json +husk_baby/main.json +illusioner/main.json +iron_golem/main.json +leash_knot/main.json +llama/chest.json +llama/chest_brown.json +llama/chest_creamy.json +llama/chest_gray.json +llama/chest_white.json +llama/decor.json +llama/decor_black.json +llama/decor_blue.json +llama/decor_brown.json +llama/decor_cyan.json +llama/decor_gray.json +llama/decor_green.json +llama/decor_light_blue.json +llama/decor_light_gray.json +llama/decor_lime.json +llama/decor_magenta.json +llama/decor_orange.json +llama/decor_pink.json +llama/decor_purple.json +llama/decor_red.json +llama/decor_trader_llama.json +llama/decor_trader_llama_baby.json +llama/decor_white.json +llama/decor_yellow.json +llama/main.json +llama/main_brown.json +llama/main_creamy.json +llama/main_gray.json +llama/main_white.json +llama_baby/chest.json +llama_baby/chest_brown.json +llama_baby/chest_creamy.json +llama_baby/chest_gray.json +llama_baby/chest_white.json +llama_baby/decor.json +llama_baby/decor_black.json +llama_baby/decor_blue.json +llama_baby/decor_brown.json +llama_baby/decor_cyan.json +llama_baby/decor_gray.json +llama_baby/decor_green.json +llama_baby/decor_light_blue.json +llama_baby/decor_light_gray.json +llama_baby/decor_lime.json +llama_baby/decor_magenta.json +llama_baby/decor_orange.json +llama_baby/decor_pink.json +llama_baby/decor_purple.json +llama_baby/decor_red.json +llama_baby/decor_trader_llama.json +llama_baby/decor_trader_llama_baby.json +llama_baby/decor_white.json +llama_baby/decor_yellow.json +llama_baby/main.json +llama_baby/main_brown.json +llama_baby/main_creamy.json +llama_baby/main_gray.json +llama_baby/main_white.json +llama_spit/main.json +magma_cube/main.json +minecart/main.json +mooshroom/main.json +mooshroom/main_brown.json +mooshroom/main_red.json +mooshroom_baby/main.json +mooshroom_baby/main_brown.json +mooshroom_baby/main_red.json +mule/chest.json +mule/main.json +mule/saddle.json +mule/saddle_saddle.json +mule_baby/main.json +nautilus/main.json +nautilus/saddle.json +nautilus/saddle_saddle.json +nautilus_baby/main.json +ocelot/main.json +ocelot_baby/main.json +panda/main.json +panda_baby/main.json +parched/main.json +parched/outer.json +parrot/main.json +parrot/main_blue.json +parrot/main_green.json +parrot/main_grey.json +parrot/main_red_blue.json +parrot/main_yellow_blue.json +phantom/main.json +pig/main.json +pig/main_cold.json +pig/main_temperate.json +pig/main_warm.json +pig/saddle.json +pig/saddle_saddle.json +pig_baby/main.json +pig_baby/main_cold.json +pig_baby/main_temperate.json +pig_baby/main_warm.json +piglin/main.json +piglin_baby/main.json +piglin_brute/main.json +piglin_head/main.json +pillager/main.json +player/cape.json +player/ears.json +player/main.json +player_head/main.json +player_slim/main.json +polar_bear/main.json +polar_bear_baby/main.json +pufferfish_big/main.json +pufferfish_medium/main.json +pufferfish_small/main.json +rabbit/main.json +rabbit/main_black.json +rabbit/main_brown.json +rabbit/main_caerbannog.json +rabbit/main_gold.json +rabbit/main_salt.json +rabbit/main_toast.json +rabbit/main_white.json +rabbit/main_white_splotched.json +rabbit_baby/main.json +rabbit_baby/main_black.json +rabbit_baby/main_brown.json +rabbit_baby/main_caerbannog.json +rabbit_baby/main_gold.json +rabbit_baby/main_salt.json +rabbit_baby/main_toast.json +rabbit_baby/main_white.json +rabbit_baby/main_white_splotched.json +ravager/main.json +salmon/main.json +salmon_large/main.json +salmon_small/main.json +sheep/main.json +sheep/wool.json +sheep/wool_undercoat.json +sheep_baby/main.json +sheep_baby/wool.json +shield/main.json +shield/main_base.json +shield/main_base_nopattern.json +shulker/main.json +shulker_box/main.json +shulker_bullet/main.json +silverfish/main.json +skeleton/main.json +skeleton_horse/main.json +skeleton_horse/saddle.json +skeleton_horse/saddle_saddle.json +skeleton_horse_baby/main.json +skeleton_skull/main.json +slime/main.json +slime/outer.json +sniffer/main.json +sniffer_baby/main.json +snow_golem/main.json +spawner_minecart/main.json +spider/main.json +spin_attack/main.json +squid/main.json +squid_baby/main.json +standing_banner/flag.json +standing_banner/main.json +stray/main.json +stray/outer.json +strider/main.json +strider/saddle.json +strider/saddle_saddle.json +strider_baby/main.json +sulfur_cube/inner.json +sulfur_cube/main.json +sulfur_cube_small/inner.json +sulfur_cube_small/main.json +tadpole/main.json +tnt_minecart/main.json +trader_llama/chest.json +trader_llama/chest_brown.json +trader_llama/chest_creamy.json +trader_llama/chest_gray.json +trader_llama/chest_white.json +trader_llama/main.json +trader_llama/main_brown.json +trader_llama/main_creamy.json +trader_llama/main_gray.json +trader_llama/main_white.json +trader_llama_baby/chest.json +trader_llama_baby/chest_brown.json +trader_llama_baby/chest_creamy.json +trader_llama_baby/chest_gray.json +trader_llama_baby/chest_white.json +trader_llama_baby/main.json +trader_llama_baby/main_brown.json +trader_llama_baby/main_creamy.json +trader_llama_baby/main_gray.json +trader_llama_baby/main_white.json +trident/main.json +tropical_fish_large/main.json +tropical_fish_large/pattern.json +tropical_fish_large/pattern_tropical_b_pattern_1.json +tropical_fish_large/pattern_tropical_b_pattern_2.json +tropical_fish_large/pattern_tropical_b_pattern_3.json +tropical_fish_large/pattern_tropical_b_pattern_4.json +tropical_fish_large/pattern_tropical_b_pattern_5.json +tropical_fish_large/pattern_tropical_b_pattern_6.json +tropical_fish_small/main.json +tropical_fish_small/pattern.json +tropical_fish_small/pattern_tropical_a_pattern_1.json +tropical_fish_small/pattern_tropical_a_pattern_2.json +tropical_fish_small/pattern_tropical_a_pattern_3.json +tropical_fish_small/pattern_tropical_a_pattern_4.json +tropical_fish_small/pattern_tropical_a_pattern_5.json +tropical_fish_small/pattern_tropical_a_pattern_6.json +turtle/main.json +turtle_baby/main.json +vex/main.json +villager/level.json +villager/level_diamond.json +villager/level_emerald.json +villager/level_gold.json +villager/level_iron.json +villager/level_stone.json +villager/main.json +villager/profession.json +villager/profession_armorer.json +villager/profession_butcher.json +villager/profession_cartographer.json +villager/profession_cleric.json +villager/profession_farmer.json +villager/profession_fisherman.json +villager/profession_fletcher.json +villager/profession_leatherworker.json +villager/profession_librarian.json +villager/profession_mason.json +villager/profession_nitwit.json +villager/profession_shepherd.json +villager/profession_toolsmith.json +villager/profession_weaponsmith.json +villager/type.json +villager/type_desert.json +villager/type_jungle.json +villager/type_plains.json +villager/type_savanna.json +villager/type_snow.json +villager/type_swamp.json +villager/type_taiga.json +villager_baby/main.json +villager_baby/type.json +villager_baby/type_desert.json +villager_baby/type_jungle.json +villager_baby/type_plains.json +villager_baby/type_savanna.json +villager_baby/type_snow.json +villager_baby/type_swamp.json +villager_baby/type_taiga.json +villager_baby_no_hat/main.json +villager_baby_no_hat/type.json +villager_baby_no_hat/type_desert.json +villager_baby_no_hat/type_jungle.json +villager_baby_no_hat/type_plains.json +villager_baby_no_hat/type_savanna.json +villager_baby_no_hat/type_snow.json +villager_baby_no_hat/type_swamp.json +villager_baby_no_hat/type_taiga.json +villager_no_hat/main.json +villager_no_hat/type.json +villager_no_hat/type_desert.json +villager_no_hat/type_jungle.json +villager_no_hat/type_plains.json +villager_no_hat/type_savanna.json +villager_no_hat/type_snow.json +villager_no_hat/type_swamp.json +villager_no_hat/type_taiga.json +vindicator/main.json +wall_banner/flag.json +wall_banner/main.json +wandering_trader/main.json +warden/bioluminescent.json +warden/heart.json +warden/main.json +warden/pulsating_spots.json +warden/pulsating_spots_1.json +warden/pulsating_spots_2.json +warden/tendrils.json +warm_cow/main.json +warm_cow/main_warm.json +warm_cow_baby/main.json +warm_cow_baby/main_warm.json +wind_charge/main.json +witch/main.json +wither/armor.json +wither/main.json +wither_skeleton/main.json +wither_skeleton_skull/main.json +wither_skull/main.json +wither_skull/main_wither.json +wither_skull/main_wither_invulnerable.json +wolf/main.json +wolf/main_ashen_angry.json +wolf/main_ashen_tame.json +wolf/main_ashen_wild.json +wolf/main_black_angry.json +wolf/main_black_tame.json +wolf/main_black_wild.json +wolf/main_chestnut_angry.json +wolf/main_chestnut_tame.json +wolf/main_chestnut_wild.json +wolf/main_pale_angry.json +wolf/main_pale_tame.json +wolf/main_pale_wild.json +wolf/main_rusty_angry.json +wolf/main_rusty_tame.json +wolf/main_rusty_wild.json +wolf/main_snowy_angry.json +wolf/main_snowy_tame.json +wolf/main_snowy_wild.json +wolf/main_spotted_angry.json +wolf/main_spotted_tame.json +wolf/main_spotted_wild.json +wolf/main_striped_angry.json +wolf/main_striped_tame.json +wolf/main_striped_wild.json +wolf/main_woods_angry.json +wolf/main_woods_tame.json +wolf/main_woods_wild.json +wolf_baby/main.json +wolf_baby/main_ashen_angry.json +wolf_baby/main_ashen_tame.json +wolf_baby/main_ashen_wild.json +wolf_baby/main_black_angry.json +wolf_baby/main_black_tame.json +wolf_baby/main_black_wild.json +wolf_baby/main_chestnut_angry.json +wolf_baby/main_chestnut_tame.json +wolf_baby/main_chestnut_wild.json +wolf_baby/main_pale_angry.json +wolf_baby/main_pale_tame.json +wolf_baby/main_pale_wild.json +wolf_baby/main_rusty_angry.json +wolf_baby/main_rusty_tame.json +wolf_baby/main_rusty_wild.json +wolf_baby/main_snowy_angry.json +wolf_baby/main_snowy_tame.json +wolf_baby/main_snowy_wild.json +wolf_baby/main_spotted_angry.json +wolf_baby/main_spotted_tame.json +wolf_baby/main_spotted_wild.json +wolf_baby/main_striped_angry.json +wolf_baby/main_striped_tame.json +wolf_baby/main_striped_wild.json +wolf_baby/main_woods_angry.json +wolf_baby/main_woods_tame.json +wolf_baby/main_woods_wild.json +zoglin/main.json +zoglin_baby/main.json +zombie/main.json +zombie_baby/main.json +zombie_head/main.json +zombie_horse/main.json +zombie_horse/saddle.json +zombie_horse/saddle_saddle.json +zombie_horse_baby/main.json +zombie_nautilus/main.json +zombie_nautilus/main_temperate.json +zombie_nautilus/main_warm.json +zombie_nautilus_coral/main.json +zombie_nautilus_coral/main_warm.json +zombie_villager/level.json +zombie_villager/level_diamond.json +zombie_villager/level_emerald.json +zombie_villager/level_gold.json +zombie_villager/level_iron.json +zombie_villager/level_stone.json +zombie_villager/main.json +zombie_villager/profession.json +zombie_villager/profession_armorer.json +zombie_villager/profession_butcher.json +zombie_villager/profession_cartographer.json +zombie_villager/profession_cleric.json +zombie_villager/profession_farmer.json +zombie_villager/profession_fisherman.json +zombie_villager/profession_fletcher.json +zombie_villager/profession_leatherworker.json +zombie_villager/profession_librarian.json +zombie_villager/profession_mason.json +zombie_villager/profession_nitwit.json +zombie_villager/profession_shepherd.json +zombie_villager/profession_toolsmith.json +zombie_villager/profession_weaponsmith.json +zombie_villager/type.json +zombie_villager/type_desert.json +zombie_villager/type_jungle.json +zombie_villager/type_plains.json +zombie_villager/type_savanna.json +zombie_villager/type_snow.json +zombie_villager/type_swamp.json +zombie_villager/type_taiga.json +zombie_villager_baby/main.json +zombie_villager_baby/type.json +zombie_villager_baby/type_desert.json +zombie_villager_baby/type_jungle.json +zombie_villager_baby/type_plains.json +zombie_villager_baby/type_savanna.json +zombie_villager_baby/type_snow.json +zombie_villager_baby/type_swamp.json +zombie_villager_baby/type_taiga.json +zombie_villager_baby_no_hat/main.json +zombie_villager_baby_no_hat/type.json +zombie_villager_baby_no_hat/type_desert.json +zombie_villager_baby_no_hat/type_jungle.json +zombie_villager_baby_no_hat/type_plains.json +zombie_villager_baby_no_hat/type_savanna.json +zombie_villager_baby_no_hat/type_snow.json +zombie_villager_baby_no_hat/type_swamp.json +zombie_villager_baby_no_hat/type_taiga.json +zombie_villager_no_hat/main.json +zombie_villager_no_hat/type.json +zombie_villager_no_hat/type_desert.json +zombie_villager_no_hat/type_jungle.json +zombie_villager_no_hat/type_plains.json +zombie_villager_no_hat/type_savanna.json +zombie_villager_no_hat/type_snow.json +zombie_villager_no_hat/type_swamp.json +zombie_villager_no_hat/type_taiga.json +zombified_piglin/main.json +zombified_piglin_baby/main.json diff --git a/src/main/resources/assets/minecraft/entitystates/allay.json b/src/main/resources/assets/minecraft/entitystates/allay.json index 2510988..6e59f5a 100644 --- a/src/main/resources/assets/minecraft/entitystates/allay.json +++ b/src/main/resources/assets/minecraft/entitystates/allay.json @@ -1,5 +1,5 @@ { "parts": [ - { "model": "minecraft:entity/allay" } + { "model": "minecraft:entity/allay/main" } ] } \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/bat.json b/src/main/resources/assets/minecraft/entitystates/bat.json index 3ae2b04..c585518 100644 --- a/src/main/resources/assets/minecraft/entitystates/bat.json +++ b/src/main/resources/assets/minecraft/entitystates/bat.json @@ -1,5 +1,5 @@ { "parts": [ - { "model": "minecraft:entity/bat" } + { "model": "minecraft:entity/bat/main" } ] } \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/breeze.json b/src/main/resources/assets/minecraft/entitystates/breeze.json index 7caf5fa..676f652 100644 --- a/src/main/resources/assets/minecraft/entitystates/breeze.json +++ b/src/main/resources/assets/minecraft/entitystates/breeze.json @@ -1,5 +1,5 @@ { "parts": [ - { "model": "minecraft:entity/breeze" } + { "model": "minecraft:entity/breeze/main" } ] } \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/cod.json b/src/main/resources/assets/minecraft/entitystates/cod.json index 4abe826..7de8381 100644 --- a/src/main/resources/assets/minecraft/entitystates/cod.json +++ b/src/main/resources/assets/minecraft/entitystates/cod.json @@ -1,5 +1,5 @@ { "parts": [ - { "model": "minecraft:entity/cod/cod" } + { "model": "minecraft:entity/cod/main" } ] } \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/guardian.json b/src/main/resources/assets/minecraft/entitystates/guardian.json index 72adbc6..7b2f6f2 100644 --- a/src/main/resources/assets/minecraft/entitystates/guardian.json +++ b/src/main/resources/assets/minecraft/entitystates/guardian.json @@ -1,5 +1,5 @@ { "parts": [ - { "model": "minecraft:entity/guardian/guardian" } + { "model": "minecraft:entity/guardian/main" } ] } \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/iron_golem.json b/src/main/resources/assets/minecraft/entitystates/iron_golem.json index 0e77823..7649b22 100644 --- a/src/main/resources/assets/minecraft/entitystates/iron_golem.json +++ b/src/main/resources/assets/minecraft/entitystates/iron_golem.json @@ -1,5 +1,5 @@ { "parts": [ - { "model": "minecraft:entity/iron_golem/iron_golem" } + { "model": "minecraft:entity/iron_golem/main" } ] } \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/pufferfish.json b/src/main/resources/assets/minecraft/entitystates/pufferfish.json index 7f00415..1cd7bdc 100644 --- a/src/main/resources/assets/minecraft/entitystates/pufferfish.json +++ b/src/main/resources/assets/minecraft/entitystates/pufferfish.json @@ -1,5 +1,5 @@ { "parts": [ - { "model": "minecraft:entity/pufferfish/pufferfish" } + { "renderer": "minecraft:pufferfish" } ] } \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/salmon.json b/src/main/resources/assets/minecraft/entitystates/salmon.json index 6caa180..a0e6d9d 100644 --- a/src/main/resources/assets/minecraft/entitystates/salmon.json +++ b/src/main/resources/assets/minecraft/entitystates/salmon.json @@ -1,5 +1,5 @@ { "parts": [ - { "model": "minecraft:entity/salmon/salmon" } + { "renderer": "minecraft:salmon" } ] } \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/tadpole.json b/src/main/resources/assets/minecraft/entitystates/tadpole.json index 44e6b66..cd3ad9a 100644 --- a/src/main/resources/assets/minecraft/entitystates/tadpole.json +++ b/src/main/resources/assets/minecraft/entitystates/tadpole.json @@ -1,5 +1,5 @@ { "parts": [ - { "model": "minecraft:entity/tadpole" } + { "model": "minecraft:entity/tadpole/main" } ] } \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/entitystates/vex.json b/src/main/resources/assets/minecraft/entitystates/vex.json index 3e1f6f7..34e0491 100644 --- a/src/main/resources/assets/minecraft/entitystates/vex.json +++ b/src/main/resources/assets/minecraft/entitystates/vex.json @@ -1,5 +1,5 @@ { "parts": [ - { "model": "minecraft:entity/vex" } + { "model": "minecraft:entity/vex/main" } ] } \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/allay.json b/src/main/resources/assets/minecraft/models/entity/allay.json deleted file mode 100644 index b2a622b..0000000 --- a/src/main/resources/assets/minecraft/models/entity/allay.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Made by Miraculixx", - "texture_size": [32, 32], - "textures": { - "0": "entity/allay/allay" - }, - "elements": [ - { - "name": "head", - "from": [-2.5, 6, -2.5], - "to": [2.5, 11, 2.5], - "faces": { - "north": {"uv": [2.5, 2.5, 5, 5], "texture": "#0"}, - "east": {"uv": [0, 2.5, 2.5, 5], "texture": "#0"}, - "south": {"uv": [7.5, 2.5, 10, 5], "texture": "#0"}, - "west": {"uv": [5, 2.5, 7.5, 5], "texture": "#0"}, - "up": {"uv": [5, 2.5, 2.5, 0], "texture": "#0"}, - "down": {"uv": [7.5, 0, 5, 2.5], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-1.5, 2, -1], - "to": [1.5, 6, 1], - "faces": { - "north": {"uv": [1, 6, 2.5, 8], "texture": "#0"}, - "east": {"uv": [0, 6, 1, 8], "texture": "#0"}, - "south": {"uv": [3.5, 6, 5, 8], "texture": "#0"}, - "west": {"uv": [2.5, 6, 3.5, 8], "texture": "#0"}, - "up": {"uv": [2.5, 6, 1, 5], "texture": "#0"}, - "down": {"uv": [4, 5, 2.5, 6], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-1.3, 1.2, -0.8], - "to": [1.3, 5.8, 0.8], - "faces": { - "north": {"uv": [1, 9, 2.5, 11.5], "texture": "#0"}, - "east": {"uv": [0, 9, 1, 11.5], "texture": "#0"}, - "south": {"uv": [3.5, 9, 5, 11.5], "texture": "#0"}, - "west": {"uv": [2.5, 9, 3.5, 11.5], "texture": "#0"}, - "up": {"uv": [2.5, 9, 1, 8], "texture": "#0"}, - "down": {"uv": [4, 8, 2.5, 9], "texture": "#0"} - } - }, - { - "name": "right_arm", - "from": [2, 2, -1], - "to": [3, 6, 1], - "rotation": {"angle": 17.5, "axis": "z", "origin": [2.5, 4, 0]}, - "faces": { - "north": {"uv": [12.5, 1, 13, 3], "texture": "#0"}, - "east": {"uv": [11.5, 1, 12.5, 3], "texture": "#0"}, - "south": {"uv": [14, 1, 14.5, 3], "texture": "#0"}, - "west": {"uv": [13, 1, 14, 3], "texture": "#0"}, - "up": {"uv": [13, 1, 12.5, 0], "texture": "#0"}, - "down": {"uv": [13.5, 0, 13, 1], "texture": "#0"} - } - }, - { - "name": "left_arm", - "from": [-3, 2, -1], - "to": [-2, 6, 1], - "rotation": {"angle": -17.5, "axis": "z", "origin": [-2.5, 4, 0]}, - "faces": { - "north": {"uv": [12.5, 4, 13, 6], "texture": "#0"}, - "east": {"uv": [11.5, 4, 12.5, 6], "texture": "#0"}, - "south": {"uv": [14, 4, 14.5, 6], "texture": "#0"}, - "west": {"uv": [13, 4, 14, 6], "texture": "#0"}, - "up": {"uv": [13, 4, 12.5, 3], "texture": "#0"}, - "down": {"uv": [13.5, 3, 13, 4], "texture": "#0"} - } - }, - { - "name": "right_wing", - "from": [0.5, 0.25, 1], - "to": [0.5, 5.25, 9], - "rotation": {"x": -24.14867, "y": 20.70481, "z": -9.00717, "origin": [0, 5.25, 1]}, - "faces": { - "north": {"uv": [12, 11, 12, 13.5], "texture": "#0"}, - "east": {"uv": [8, 11, 12, 13.5], "texture": "#0"}, - "south": {"uv": [16, 11, 16, 13.5], "texture": "#0"}, - "west": {"uv": [12, 11, 8, 13.5], "texture": "#0"}, - "up": {"uv": [12, 11, 12, 7], "texture": "#0"}, - "down": {"uv": [12, 7, 12, 11], "texture": "#0"} - } - }, - { - "name": "left_wing", - "from": [-0.5, 0.25, 1], - "to": [-0.5, 5.25, 9], - "rotation": {"x": -24.14867, "y": -20.70481, "z": 9.00717, "origin": [0, 5.25, 1]}, - "faces": { - "north": {"uv": [12, 11, 12, 13.5], "texture": "#0"}, - "east": {"uv": [8, 11, 12, 13.5], "texture": "#0"}, - "south": {"uv": [16, 11, 16, 13.5], "texture": "#0"}, - "west": {"uv": [12, 11, 8, 13.5], "texture": "#0"}, - "up": {"uv": [12, 11, 12, 7], "texture": "#0"}, - "down": {"uv": [12, 7, 12, 11], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "head", - "origin": [0, 6, 0], - "color": 0, - "children": [0] - }, - { - "name": "body", - "origin": [0, 6, 0], - "color": 0, - "children": [1, 2] - }, - { - "name": "arm", - "origin": [1.75, 5.5, 0], - "color": 0, - "children": [3, 4] - }, - { - "name": "wing", - "origin": [-0.5, 6, 1], - "color": 0, - "children": [5, 6] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/armadillo/armadillo_adult.json b/src/main/resources/assets/minecraft/models/entity/armadillo/armadillo_adult.json deleted file mode 100644 index 04e76e3..0000000 --- a/src/main/resources/assets/minecraft/models/entity/armadillo/armadillo_adult.json +++ /dev/null @@ -1,171 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Made by Miraculixx", - "texture_size": [64, 64], - "textures": { - "0": "entity/armadillo" - }, - "elements": [ - { - "name": "head", - "from": [-1.5, 1, -7.75], - "to": [1.5, 6, -5.75], - "rotation": {"angle": 20, "axis": "x", "origin": [0, 6, -5.75]}, - "faces": { - "north": {"uv": [11.25, 4.25, 12, 5.5], "texture": "#0"}, - "east": {"uv": [10.75, 4.25, 11.25, 5.5], "texture": "#0"}, - "south": {"uv": [12.5, 4.25, 13.25, 5.5], "texture": "#0"}, - "west": {"uv": [12, 4.25, 12.5, 5.5], "texture": "#0"}, - "up": {"uv": [12, 4.25, 11.25, 3.75], "texture": "#0"}, - "down": {"uv": [12.75, 3.75, 12, 4.25], "texture": "#0"} - } - }, - { - "name": "right_ear", - "from": [1.5, 4.62373, -7.31263], - "to": [3.5, 9.62373, -7.31263], - "rotation": {"x": -10, "y": 15, "z": 0, "origin": [1.5, 5, -7.25]}, - "faces": { - "north": {"uv": [10.75, 2.5, 11.25, 3.75], "texture": "#0"}, - "east": {"uv": [10.75, 2.5, 10.75, 3.75], "texture": "#0"}, - "south": {"uv": [11.25, 2.5, 10.75, 3.75], "texture": "#0"}, - "west": {"uv": [11.25, 2.5, 11.25, 3.75], "texture": "#0"}, - "up": {"uv": [11.25, 2.5, 10.75, 2.5], "texture": "#0"}, - "down": {"uv": [11.75, 2.5, 11.25, 2.5], "texture": "#0"} - } - }, - { - "name": "left_ear", - "from": [-3.5, 4.62373, -7.31263], - "to": [-1.5, 9.62373, -7.31263], - "rotation": {"x": -10, "y": -15, "z": 0, "origin": [-1.5, 5, -7.25]}, - "faces": { - "north": {"uv": [11.75, 2.5, 12.25, 3.75], "texture": "#0"}, - "east": {"uv": [11.75, 2.5, 11.75, 3.75], "texture": "#0"}, - "south": {"uv": [12.25, 2.5, 11.75, 3.75], "texture": "#0"}, - "west": {"uv": [12.25, 2.5, 12.25, 3.75], "texture": "#0"}, - "up": {"uv": [12.25, 2.5, 11.75, 2.5], "texture": "#0"}, - "down": {"uv": [12.75, 2.5, 12.25, 2.5], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-4.3, 1.7, -6.3], - "to": [4.3, 10.3, 6.3], - "faces": { - "north": {"uv": [3, 8, 5, 10], "texture": "#0"}, - "east": {"uv": [0, 8, 3, 10], "texture": "#0"}, - "south": {"uv": [8, 8, 10, 10], "texture": "#0"}, - "west": {"uv": [5, 8, 8, 10], "texture": "#0"}, - "up": {"uv": [5, 8, 3, 5], "texture": "#0"}, - "down": {"uv": [7, 5, 5, 8], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-4, 2, -6], - "to": [4, 10, 6], - "faces": { - "north": {"uv": [3, 13, 5, 15], "texture": "#0"}, - "east": {"uv": [0, 13, 3, 15], "texture": "#0"}, - "south": {"uv": [8, 13, 10, 15], "texture": "#0"}, - "west": {"uv": [5, 13, 8, 15], "texture": "#0"}, - "up": {"uv": [5, 13, 3, 10], "texture": "#0"}, - "down": {"uv": [7, 10, 5, 13], "texture": "#0"} - } - }, - { - "name": "front_left_leg", - "from": [-3, 0, -5], - "to": [-1, 3, -3], - "faces": { - "north": {"uv": [11, 11.25, 11.5, 12], "texture": "#0"}, - "east": {"uv": [10.5, 11.25, 11, 12], "texture": "#0"}, - "south": {"uv": [12, 11.25, 12.5, 12], "texture": "#0"}, - "west": {"uv": [11.5, 11.25, 12, 12], "texture": "#0"}, - "up": {"uv": [11.5, 11.25, 11, 10.75], "texture": "#0"}, - "down": {"uv": [12, 10.75, 11.5, 11.25], "texture": "#0"} - } - }, - { - "name": "front_right_leg", - "from": [1, 0, -5], - "to": [3, 3, -3], - "faces": { - "north": {"uv": [13.25, 11.25, 13.75, 12], "texture": "#0"}, - "east": {"uv": [12.75, 11.25, 13.25, 12], "texture": "#0"}, - "south": {"uv": [14.25, 11.25, 14.75, 12], "texture": "#0"}, - "west": {"uv": [13.75, 11.25, 14.25, 12], "texture": "#0"}, - "up": {"uv": [13.75, 11.25, 13.25, 10.75], "texture": "#0"}, - "down": {"uv": [14.25, 10.75, 13.75, 11.25], "texture": "#0"} - } - }, - { - "name": "back_left_leg", - "from": [-3, 0, 3], - "to": [-1, 3, 5], - "faces": { - "north": {"uv": [11, 8.25, 11.5, 9], "texture": "#0"}, - "east": {"uv": [10.5, 8.25, 11, 9], "texture": "#0"}, - "south": {"uv": [12, 8.25, 12.5, 9], "texture": "#0"}, - "west": {"uv": [11.5, 8.25, 12, 9], "texture": "#0"}, - "up": {"uv": [11.5, 8.25, 11, 7.75], "texture": "#0"}, - "down": {"uv": [12, 7.75, 11.5, 8.25], "texture": "#0"} - } - }, - { - "name": "back_right_leg", - "from": [1, 0, 3], - "to": [3, 3, 5], - "faces": { - "north": {"uv": [13.25, 8.25, 13.75, 9], "texture": "#0"}, - "east": {"uv": [12.75, 8.25, 13.25, 9], "texture": "#0"}, - "south": {"uv": [14.25, 8.25, 14.75, 9], "texture": "#0"}, - "west": {"uv": [13.75, 8.25, 14.25, 9], "texture": "#0"}, - "up": {"uv": [13.75, 8.25, 13.25, 7.75], "texture": "#0"}, - "down": {"uv": [14.25, 7.75, 13.75, 8.25], "texture": "#0"} - } - }, - { - "name": "tail", - "from": [-0.5, 0.08645, 5.09326], - "to": [0.5, 6.08645, 6.09326], - "rotation": {"angle": -20, "axis": "x", "origin": [0, 6, 5]}, - "faces": { - "north": {"uv": [11.25, 13.5, 11.5, 15], "texture": "#0"}, - "east": {"uv": [11, 13.5, 11.25, 15], "texture": "#0"}, - "south": {"uv": [11.75, 13.5, 12, 15], "texture": "#0"}, - "west": {"uv": [11.5, 13.5, 11.75, 15], "texture": "#0"}, - "up": {"uv": [11.5, 13.5, 11.25, 13.25], "texture": "#0"}, - "down": {"uv": [11.75, 13.25, 11.5, 13.5], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "head", - "origin": [0, 5, -7], - "color": 0, - "children": [0, 1, 2] - }, - { - "name": "body", - "origin": [0, 3, 4], - "color": 0, - "children": [3, 4] - }, - { - "name": "leg", - "origin": [-2, 3, -4], - "color": 0, - "children": [5, 6, 7, 8] - }, - { - "name": "tail", - "origin": [0, 6, 5], - "rotation": [-29, 0, 0], - "color": 0, - "children": [9] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/armadillo/armadillo_adult_scared.json b/src/main/resources/assets/minecraft/models/entity/armadillo/armadillo_adult_scared.json deleted file mode 100644 index da59b82..0000000 --- a/src/main/resources/assets/minecraft/models/entity/armadillo/armadillo_adult_scared.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Made by Miraculixx", - "texture_size": [64, 64], - "textures": { - "0": "entity/armadillo" - }, - "elements": [ - { - "name": "body", - "from": [-5, 0, -6], - "to": [5, 10, 4], - "faces": { - "north": {"uv": [2.5, 2.5, 5, 5], "texture": "#0"}, - "east": {"uv": [0, 2.5, 2.5, 5], "texture": "#0"}, - "south": {"uv": [7.5, 2.5, 10, 5], "texture": "#0"}, - "west": {"uv": [5, 2.5, 7.5, 5], "texture": "#0"}, - "up": {"uv": [5, 2.5, 2.5, 0], "texture": "#0"}, - "down": {"uv": [7.5, 0, 5, 2.5], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "body", - "origin": [0, 0, 0], - "color": 0, - "children": [0] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/armadillo/armadillo_baby.json b/src/main/resources/assets/minecraft/models/entity/armadillo/armadillo_baby.json deleted file mode 100644 index 9d12411..0000000 --- a/src/main/resources/assets/minecraft/models/entity/armadillo/armadillo_baby.json +++ /dev/null @@ -1,171 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Made by Miraculixx", - "texture_size": [64, 64], - "textures": { - "0": "entity/armadillo" - }, - "elements": [ - { - "name": "head", - "from": [-0.75, 0.5, -3.875], - "to": [0.75, 3, -2.875], - "rotation": {"angle": 20, "axis": "x", "origin": [0, 3, -2.875]}, - "faces": { - "north": {"uv": [11.25, 4.25, 12, 5.5], "texture": "#0"}, - "east": {"uv": [10.75, 4.25, 11.25, 5.5], "texture": "#0"}, - "south": {"uv": [12.5, 4.25, 13.25, 5.5], "texture": "#0"}, - "west": {"uv": [12, 4.25, 12.5, 5.5], "texture": "#0"}, - "up": {"uv": [12, 4.25, 11.25, 3.75], "texture": "#0"}, - "down": {"uv": [12.75, 3.75, 12, 4.25], "texture": "#0"} - } - }, - { - "name": "right_ear", - "from": [0.75, 2.31187, -3.65632], - "to": [1.75, 4.81187, -3.65632], - "rotation": {"x": -10, "y": 15, "z": 0, "origin": [0.75, 2.5, -3.625]}, - "faces": { - "north": {"uv": [10.75, 2.5, 11.25, 3.75], "texture": "#0"}, - "east": {"uv": [10.75, 2.5, 10.75, 3.75], "texture": "#0"}, - "south": {"uv": [11.25, 2.5, 10.75, 3.75], "texture": "#0"}, - "west": {"uv": [11.25, 2.5, 11.25, 3.75], "texture": "#0"}, - "up": {"uv": [11.25, 2.5, 10.75, 2.5], "texture": "#0"}, - "down": {"uv": [11.75, 2.5, 11.25, 2.5], "texture": "#0"} - } - }, - { - "name": "left_ear", - "from": [-1.75, 2.31187, -3.65632], - "to": [-0.75, 4.81187, -3.65632], - "rotation": {"x": -10, "y": -15, "z": 0, "origin": [-0.75, 2.5, -3.625]}, - "faces": { - "north": {"uv": [11.75, 2.5, 12.25, 3.75], "texture": "#0"}, - "east": {"uv": [11.75, 2.5, 11.75, 3.75], "texture": "#0"}, - "south": {"uv": [12.25, 2.5, 11.75, 3.75], "texture": "#0"}, - "west": {"uv": [12.25, 2.5, 12.25, 3.75], "texture": "#0"}, - "up": {"uv": [12.25, 2.5, 11.75, 2.5], "texture": "#0"}, - "down": {"uv": [12.75, 2.5, 12.25, 2.5], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-2.15, 0.85, -3.15], - "to": [2.15, 5.15, 3.15], - "faces": { - "north": {"uv": [3, 8, 5, 10], "texture": "#0"}, - "east": {"uv": [0, 8, 3, 10], "texture": "#0"}, - "south": {"uv": [8, 8, 10, 10], "texture": "#0"}, - "west": {"uv": [5, 8, 8, 10], "texture": "#0"}, - "up": {"uv": [5, 8, 3, 5], "texture": "#0"}, - "down": {"uv": [7, 5, 5, 8], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-2, 1, -3], - "to": [2, 5, 3], - "faces": { - "north": {"uv": [3, 13, 5, 15], "texture": "#0"}, - "east": {"uv": [0, 13, 3, 15], "texture": "#0"}, - "south": {"uv": [8, 13, 10, 15], "texture": "#0"}, - "west": {"uv": [5, 13, 8, 15], "texture": "#0"}, - "up": {"uv": [5, 13, 3, 10], "texture": "#0"}, - "down": {"uv": [7, 10, 5, 13], "texture": "#0"} - } - }, - { - "name": "front_left_leg", - "from": [-1.5, 0, -2.5], - "to": [-0.5, 1.5, -1.5], - "faces": { - "north": {"uv": [11, 11.25, 11.5, 12], "texture": "#0"}, - "east": {"uv": [10.5, 11.25, 11, 12], "texture": "#0"}, - "south": {"uv": [12, 11.25, 12.5, 12], "texture": "#0"}, - "west": {"uv": [11.5, 11.25, 12, 12], "texture": "#0"}, - "up": {"uv": [11.5, 11.25, 11, 10.75], "texture": "#0"}, - "down": {"uv": [12, 10.75, 11.5, 11.25], "texture": "#0"} - } - }, - { - "name": "front_right_leg", - "from": [0.5, 0, -2.5], - "to": [1.5, 1.5, -1.5], - "faces": { - "north": {"uv": [13.25, 11.25, 13.75, 12], "texture": "#0"}, - "east": {"uv": [12.75, 11.25, 13.25, 12], "texture": "#0"}, - "south": {"uv": [14.25, 11.25, 14.75, 12], "texture": "#0"}, - "west": {"uv": [13.75, 11.25, 14.25, 12], "texture": "#0"}, - "up": {"uv": [13.75, 11.25, 13.25, 10.75], "texture": "#0"}, - "down": {"uv": [14.25, 10.75, 13.75, 11.25], "texture": "#0"} - } - }, - { - "name": "back_left_leg", - "from": [-1.5, 0, 1.5], - "to": [-0.5, 1.5, 2.5], - "faces": { - "north": {"uv": [11, 8.25, 11.5, 9], "texture": "#0"}, - "east": {"uv": [10.5, 8.25, 11, 9], "texture": "#0"}, - "south": {"uv": [12, 8.25, 12.5, 9], "texture": "#0"}, - "west": {"uv": [11.5, 8.25, 12, 9], "texture": "#0"}, - "up": {"uv": [11.5, 8.25, 11, 7.75], "texture": "#0"}, - "down": {"uv": [12, 7.75, 11.5, 8.25], "texture": "#0"} - } - }, - { - "name": "back_right_leg", - "from": [0.5, 0, 1.5], - "to": [1.5, 1.5, 2.5], - "faces": { - "north": {"uv": [13.25, 8.25, 13.75, 9], "texture": "#0"}, - "east": {"uv": [12.75, 8.25, 13.25, 9], "texture": "#0"}, - "south": {"uv": [14.25, 8.25, 14.75, 9], "texture": "#0"}, - "west": {"uv": [13.75, 8.25, 14.25, 9], "texture": "#0"}, - "up": {"uv": [13.75, 8.25, 13.25, 7.75], "texture": "#0"}, - "down": {"uv": [14.25, 7.75, 13.75, 8.25], "texture": "#0"} - } - }, - { - "name": "tail", - "from": [-0.25, 0.04323, 2.54663], - "to": [0.25, 3.04323, 3.04663], - "rotation": {"angle": -20, "axis": "x", "origin": [0, 3, 2.5]}, - "faces": { - "north": {"uv": [11.25, 13.5, 11.5, 15], "texture": "#0"}, - "east": {"uv": [11, 13.5, 11.25, 15], "texture": "#0"}, - "south": {"uv": [11.75, 13.5, 12, 15], "texture": "#0"}, - "west": {"uv": [11.5, 13.5, 11.75, 15], "texture": "#0"}, - "up": {"uv": [11.5, 13.5, 11.25, 13.25], "texture": "#0"}, - "down": {"uv": [11.75, 13.25, 11.5, 13.5], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "head", - "origin": [0, 5, -7], - "color": 0, - "children": [0, 1, 2] - }, - { - "name": "body", - "origin": [0, 3, 4], - "color": 0, - "children": [3, 4] - }, - { - "name": "leg", - "origin": [-2, 3, -4], - "color": 0, - "children": [5, 6, 7, 8] - }, - { - "name": "tail", - "origin": [0, 6, 5], - "rotation": [-29, 0, 0], - "color": 0, - "children": [9] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/armadillo/armadillo_baby_scared.json b/src/main/resources/assets/minecraft/models/entity/armadillo/armadillo_baby_scared.json deleted file mode 100644 index 7775d86..0000000 --- a/src/main/resources/assets/minecraft/models/entity/armadillo/armadillo_baby_scared.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Made by Miraculixx", - "texture_size": [64, 64], - "textures": { - "0": "entity/armadillo" - }, - "elements": [ - { - "name": "body", - "from": [-2.5, 0, -3], - "to": [2.5, 5, 2], - "faces": { - "north": {"uv": [2.5, 2.5, 5, 5], "texture": "#0"}, - "east": {"uv": [0, 2.5, 2.5, 5], "texture": "#0"}, - "south": {"uv": [7.5, 2.5, 10, 5], "texture": "#0"}, - "west": {"uv": [5, 2.5, 7.5, 5], "texture": "#0"}, - "up": {"uv": [5, 2.5, 2.5, 0], "texture": "#0"}, - "down": {"uv": [7.5, 0, 5, 2.5], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "body", - "origin": [0, 0, 0], - "color": 0, - "children": [0] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/axolotl/axolotl_adult.json b/src/main/resources/assets/minecraft/models/entity/axolotl/axolotl_adult.json deleted file mode 100644 index 9923dd8..0000000 --- a/src/main/resources/assets/minecraft/models/entity/axolotl/axolotl_adult.json +++ /dev/null @@ -1,195 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Made by Miraculixx", - "texture_size": [64, 64], - "textures": { - }, - "elements": [ - { - "name": "head", - "from": [-4, 0, -10], - "to": [4, 5, -5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, -4, 0]}, - "faces": { - "north": {"uv": [1.25, 1.5, 3.25, 2.75], "texture": "#0"}, - "east": {"uv": [0, 1.5, 1.25, 2.75], "texture": "#0"}, - "south": {"uv": [4.5, 1.5, 6.5, 2.75], "texture": "#0"}, - "west": {"uv": [3.25, 1.5, 4.5, 2.75], "texture": "#0"}, - "up": {"uv": [3.25, 1.5, 1.25, 0.25], "texture": "#0"}, - "down": {"uv": [5.25, 0.25, 3.25, 1.5], "texture": "#0"} - } - }, - { - "name": "top_gills", - "from": [-4, 5, -6], - "to": [4, 8, -6], - "rotation": {"angle": 0, "axis": "y", "origin": [0, -4, 0]}, - "faces": { - "north": {"uv": [0.75, 9.25, 2.75, 10], "texture": "#0"}, - "east": {"uv": [0.75, 9.25, 0.75, 10], "texture": "#0"}, - "south": {"uv": [2.75, 9.25, 0.75, 10], "texture": "#0"}, - "west": {"uv": [2.75, 9.25, 2.75, 10], "texture": "#0"}, - "up": {"uv": [2.75, 9.25, 0.75, 9.25], "texture": "#0"}, - "down": {"uv": [4.75, 9.25, 2.75, 9.25], "texture": "#0"} - } - }, - { - "name": "left_gills", - "from": [4, 0, -6], - "to": [7, 7, -6], - "rotation": {"angle": 0, "axis": "y", "origin": [0, -4, 0]}, - "faces": { - "north": {"uv": [0, 10, 0.75, 11.75], "texture": "#0"}, - "east": {"uv": [0, 10, 0, 11.75], "texture": "#0"}, - "south": {"uv": [0.75, 10, 0, 11.75], "texture": "#0"}, - "west": {"uv": [0.75, 10, 0.75, 11.75], "texture": "#0"}, - "up": {"uv": [0.75, 10, 0, 10], "texture": "#0"}, - "down": {"uv": [1.5, 10, 0.75, 10], "texture": "#0"} - } - }, - { - "name": "right_gills", - "from": [-7, 0, -6], - "to": [-4, 7, -6], - "rotation": {"angle": 0, "axis": "y", "origin": [0, -4, 0]}, - "faces": { - "north": {"uv": [2.75, 10, 3.5, 11.75], "texture": "#0"}, - "east": {"uv": [2.75, 10, 2.75, 11.75], "texture": "#0"}, - "south": {"uv": [3.5, 10, 2.75, 11.75], "texture": "#0"}, - "west": {"uv": [3.5, 10, 3.5, 11.75], "texture": "#0"}, - "up": {"uv": [3.5, 10, 2.75, 10], "texture": "#0"}, - "down": {"uv": [4.25, 10, 3.5, 10], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-4, 0, -5], - "to": [4, 4, 5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, -4, 0]}, - "faces": { - "north": {"uv": [2.5, 5.25, 4.5, 6.25], "texture": "#0"}, - "east": {"uv": [0, 5.25, 2.5, 6.25], "texture": "#0"}, - "south": {"uv": [7, 5.25, 9, 6.25], "texture": "#0"}, - "west": {"uv": [4.5, 5.25, 7, 6.25], "texture": "#0"}, - "up": {"uv": [4.5, 5.25, 2.5, 2.75], "texture": "#0"}, - "down": {"uv": [6.5, 2.75, 4.5, 5.25], "texture": "#0"} - } - }, - { - "name": "body", - "from": [0, 0, -4], - "to": [0, 5, 5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, -4, 0]}, - "faces": { - "north": {"uv": [2.75, 6.5, 2.75, 7.75], "texture": "#0"}, - "east": {"uv": [0.5, 6.5, 2.75, 7.75], "texture": "#0"}, - "south": {"uv": [5, 6.5, 5, 7.75], "texture": "#0"}, - "west": {"uv": [2.75, 6.5, 0.5, 7.75], "texture": "#0"}, - "up": {"uv": [2.75, 6.5, 2.75, 4.25], "texture": "#0"}, - "down": {"uv": [2.75, 4.25, 2.75, 6.5], "texture": "#0"} - } - }, - { - "name": "leg1", - "from": [2.5, -4, 3], - "to": [5.5, 1, 3], - "rotation": {"x": 90, "y": -85, "z": -30, "origin": [4, 1, 3]}, - "faces": { - "north": {"uv": [0.5, 3.25, 1.25, 4.5], "texture": "#0"}, - "east": {"uv": [0.5, 3.25, 0.5, 4.5], "texture": "#0"}, - "south": {"uv": [1.25, 3.25, 2, 4.5], "texture": "#0"}, - "west": {"uv": [1.25, 3.25, 1.25, 4.5], "texture": "#0"}, - "up": {"uv": [1.25, 3.25, 0.5, 3.25], "texture": "#0"}, - "down": {"uv": [2, 3.25, 1.25, 3.25], "texture": "#0"} - } - }, - { - "name": "leg2", - "from": [-5.5, -4, 3], - "to": [-2.5, 1, 3], - "rotation": {"x": 90, "y": 85, "z": 30, "origin": [-4, 1, 3]}, - "faces": { - "north": {"uv": [0.5, 3.25, 1.25, 4.5], "texture": "#0"}, - "east": {"uv": [0.5, 3.25, 0.5, 4.5], "texture": "#0"}, - "south": {"uv": [1.25, 3.25, 2, 4.5], "texture": "#0"}, - "west": {"uv": [1.25, 3.25, 1.25, 4.5], "texture": "#0"}, - "up": {"uv": [1.25, 3.25, 0.5, 3.25], "texture": "#0"}, - "down": {"uv": [2, 3.25, 1.25, 3.25], "texture": "#0"} - } - }, - { - "name": "leg3", - "from": [2.5, -4, -4], - "to": [5.5, 1, -4], - "rotation": {"x": 90, "y": -75, "z": -30, "origin": [4, 1, -4]}, - "faces": { - "north": {"uv": [0.5, 3.25, 1.25, 4.5], "texture": "#0"}, - "east": {"uv": [0.5, 3.25, 0.5, 4.5], "texture": "#0"}, - "south": {"uv": [1.25, 3.25, 2, 4.5], "texture": "#0"}, - "west": {"uv": [1.25, 3.25, 1.25, 4.5], "texture": "#0"}, - "up": {"uv": [1.25, 3.25, 0.5, 3.25], "texture": "#0"}, - "down": {"uv": [2, 3.25, 1.25, 3.25], "texture": "#0"} - } - }, - { - "name": "leg4", - "from": [-5.5, -4, -4], - "to": [-2.5, 1, -4], - "rotation": {"x": 90, "y": 75, "z": 30, "origin": [-4, 1, -4]}, - "faces": { - "north": {"uv": [0.5, 3.25, 1.25, 4.5], "texture": "#0"}, - "east": {"uv": [0.5, 3.25, 0.5, 4.5], "texture": "#0"}, - "south": {"uv": [1.25, 3.25, 2, 4.5], "texture": "#0"}, - "west": {"uv": [1.25, 3.25, 1.25, 4.5], "texture": "#0"}, - "up": {"uv": [1.25, 3.25, 0.5, 3.25], "texture": "#0"}, - "down": {"uv": [2, 3.25, 1.25, 3.25], "texture": "#0"} - } - }, - { - "name": "tail", - "from": [0, 0, 5], - "to": [0, 5, 17], - "rotation": {"angle": 0, "axis": "y", "origin": [0, -4, 0]}, - "faces": { - "north": {"uv": [3.5, 7.75, 3.5, 9], "texture": "#0"}, - "east": {"uv": [0.5, 7.75, 3.5, 9], "texture": "#0"}, - "south": {"uv": [6.5, 7.75, 6.5, 9], "texture": "#0"}, - "west": {"uv": [3.5, 7.75, 0.5, 9], "texture": "#0"}, - "up": {"uv": [3.5, 7.75, 3.5, 4.75], "texture": "#0"}, - "down": {"uv": [3.5, 4.75, 3.5, 7.75], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "head", - "origin": [0, 6, -5], - "color": 0, - "children": [0] - }, - { - "name": "gills", - "origin": [0, 9, -6], - "color": 0, - "children": [1, 2, 3] - }, - { - "name": "body", - "origin": [0, 6, 4], - "color": 0, - "children": [4, 5] - }, - { - "name": "leg", - "origin": [-3.5, 5, -4], - "color": 0, - "children": [6, 7, 8, 9] - }, - { - "name": "tail", - "origin": [0, 6, 5], - "color": 0, - "children": [10] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/axolotl/axolotl_baby.json b/src/main/resources/assets/minecraft/models/entity/axolotl/axolotl_baby.json deleted file mode 100644 index ed2d35a..0000000 --- a/src/main/resources/assets/minecraft/models/entity/axolotl/axolotl_baby.json +++ /dev/null @@ -1,195 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Made by Miraculixx", - "texture_size": [64, 64], - "textures": { - }, - "elements": [ - { - "name": "head", - "from": [-2, 0, -5], - "to": [2, 2.5, -2.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, -2, 0]}, - "faces": { - "north": {"uv": [1.25, 1.5, 3.25, 2.75], "texture": "#0"}, - "east": {"uv": [0, 1.5, 1.25, 2.75], "texture": "#0"}, - "south": {"uv": [4.5, 1.5, 6.5, 2.75], "texture": "#0"}, - "west": {"uv": [3.25, 1.5, 4.5, 2.75], "texture": "#0"}, - "up": {"uv": [3.25, 1.5, 1.25, 0.25], "texture": "#0"}, - "down": {"uv": [5.25, 0.25, 3.25, 1.5], "texture": "#0"} - } - }, - { - "name": "top_gills", - "from": [-2, 2.5, -3], - "to": [2, 4, -3], - "rotation": {"angle": 0, "axis": "y", "origin": [0, -2, 0]}, - "faces": { - "north": {"uv": [0.75, 9.25, 2.75, 10], "texture": "#0"}, - "east": {"uv": [0.75, 9.25, 0.75, 10], "texture": "#0"}, - "south": {"uv": [2.75, 9.25, 0.75, 10], "texture": "#0"}, - "west": {"uv": [2.75, 9.25, 2.75, 10], "texture": "#0"}, - "up": {"uv": [2.75, 9.25, 0.75, 9.25], "texture": "#0"}, - "down": {"uv": [4.75, 9.25, 2.75, 9.25], "texture": "#0"} - } - }, - { - "name": "left_gills", - "from": [2, 0, -3], - "to": [3.5, 3.5, -3], - "rotation": {"angle": 0, "axis": "y", "origin": [0, -2, 0]}, - "faces": { - "north": {"uv": [0, 10, 0.75, 11.75], "texture": "#0"}, - "east": {"uv": [0, 10, 0, 11.75], "texture": "#0"}, - "south": {"uv": [0.75, 10, 0, 11.75], "texture": "#0"}, - "west": {"uv": [0.75, 10, 0.75, 11.75], "texture": "#0"}, - "up": {"uv": [0.75, 10, 0, 10], "texture": "#0"}, - "down": {"uv": [1.5, 10, 0.75, 10], "texture": "#0"} - } - }, - { - "name": "right_gills", - "from": [-3.5, 0, -3], - "to": [-2, 3.5, -3], - "rotation": {"angle": 0, "axis": "y", "origin": [0, -2, 0]}, - "faces": { - "north": {"uv": [2.75, 10, 3.5, 11.75], "texture": "#0"}, - "east": {"uv": [2.75, 10, 2.75, 11.75], "texture": "#0"}, - "south": {"uv": [3.5, 10, 2.75, 11.75], "texture": "#0"}, - "west": {"uv": [3.5, 10, 3.5, 11.75], "texture": "#0"}, - "up": {"uv": [3.5, 10, 2.75, 10], "texture": "#0"}, - "down": {"uv": [4.25, 10, 3.5, 10], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-2, 0, -2.5], - "to": [2, 2, 2.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, -2, 0]}, - "faces": { - "north": {"uv": [2.5, 5.25, 4.5, 6.25], "texture": "#0"}, - "east": {"uv": [0, 5.25, 2.5, 6.25], "texture": "#0"}, - "south": {"uv": [7, 5.25, 9, 6.25], "texture": "#0"}, - "west": {"uv": [4.5, 5.25, 7, 6.25], "texture": "#0"}, - "up": {"uv": [4.5, 5.25, 2.5, 2.75], "texture": "#0"}, - "down": {"uv": [6.5, 2.75, 4.5, 5.25], "texture": "#0"} - } - }, - { - "name": "body", - "from": [0, 0, -2], - "to": [0, 2.5, 2.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, -2, 0]}, - "faces": { - "north": {"uv": [2.75, 6.5, 2.75, 7.75], "texture": "#0"}, - "east": {"uv": [0.5, 6.5, 2.75, 7.75], "texture": "#0"}, - "south": {"uv": [5, 6.5, 5, 7.75], "texture": "#0"}, - "west": {"uv": [2.75, 6.5, 0.5, 7.75], "texture": "#0"}, - "up": {"uv": [2.75, 6.5, 2.75, 4.25], "texture": "#0"}, - "down": {"uv": [2.75, 4.25, 2.75, 6.5], "texture": "#0"} - } - }, - { - "name": "leg1", - "from": [1.25, -2, 1.5], - "to": [2.75, 0.5, 1.5], - "rotation": {"x": 90, "y": -85, "z": -30, "origin": [2, 0.5, 1.5]}, - "faces": { - "north": {"uv": [0.5, 3.25, 1.25, 4.5], "texture": "#0"}, - "east": {"uv": [0.5, 3.25, 0.5, 4.5], "texture": "#0"}, - "south": {"uv": [1.25, 3.25, 2, 4.5], "texture": "#0"}, - "west": {"uv": [1.25, 3.25, 1.25, 4.5], "texture": "#0"}, - "up": {"uv": [1.25, 3.25, 0.5, 3.25], "texture": "#0"}, - "down": {"uv": [2, 3.25, 1.25, 3.25], "texture": "#0"} - } - }, - { - "name": "leg2", - "from": [-2.75, -2, 1.5], - "to": [-1.25, 0.5, 1.5], - "rotation": {"x": 90, "y": 85, "z": 30, "origin": [-2, 0.5, 1.5]}, - "faces": { - "north": {"uv": [0.5, 3.25, 1.25, 4.5], "texture": "#0"}, - "east": {"uv": [0.5, 3.25, 0.5, 4.5], "texture": "#0"}, - "south": {"uv": [1.25, 3.25, 2, 4.5], "texture": "#0"}, - "west": {"uv": [1.25, 3.25, 1.25, 4.5], "texture": "#0"}, - "up": {"uv": [1.25, 3.25, 0.5, 3.25], "texture": "#0"}, - "down": {"uv": [2, 3.25, 1.25, 3.25], "texture": "#0"} - } - }, - { - "name": "leg3", - "from": [1.25, -2, -2], - "to": [2.75, 0.5, -2], - "rotation": {"x": 90, "y": -75, "z": -30, "origin": [2, 0.5, -2]}, - "faces": { - "north": {"uv": [0.5, 3.25, 1.25, 4.5], "texture": "#0"}, - "east": {"uv": [0.5, 3.25, 0.5, 4.5], "texture": "#0"}, - "south": {"uv": [1.25, 3.25, 2, 4.5], "texture": "#0"}, - "west": {"uv": [1.25, 3.25, 1.25, 4.5], "texture": "#0"}, - "up": {"uv": [1.25, 3.25, 0.5, 3.25], "texture": "#0"}, - "down": {"uv": [2, 3.25, 1.25, 3.25], "texture": "#0"} - } - }, - { - "name": "leg4", - "from": [-2.75, -2, -2], - "to": [-1.25, 0.5, -2], - "rotation": {"x": 90, "y": 75, "z": 30, "origin": [-2, 0.5, -2]}, - "faces": { - "north": {"uv": [0.5, 3.25, 1.25, 4.5], "texture": "#0"}, - "east": {"uv": [0.5, 3.25, 0.5, 4.5], "texture": "#0"}, - "south": {"uv": [1.25, 3.25, 2, 4.5], "texture": "#0"}, - "west": {"uv": [1.25, 3.25, 1.25, 4.5], "texture": "#0"}, - "up": {"uv": [1.25, 3.25, 0.5, 3.25], "texture": "#0"}, - "down": {"uv": [2, 3.25, 1.25, 3.25], "texture": "#0"} - } - }, - { - "name": "tail", - "from": [0, 0, 2.5], - "to": [0, 2.5, 8.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, -2, 0]}, - "faces": { - "north": {"uv": [3.5, 7.75, 3.5, 9], "texture": "#0"}, - "east": {"uv": [0.5, 7.75, 3.5, 9], "texture": "#0"}, - "south": {"uv": [6.5, 7.75, 6.5, 9], "texture": "#0"}, - "west": {"uv": [3.5, 7.75, 0.5, 9], "texture": "#0"}, - "up": {"uv": [3.5, 7.75, 3.5, 4.75], "texture": "#0"}, - "down": {"uv": [3.5, 4.75, 3.5, 7.75], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "head", - "origin": [0, 6, -5], - "color": 0, - "children": [0] - }, - { - "name": "gills", - "origin": [0, 9, -6], - "color": 0, - "children": [1, 2, 3] - }, - { - "name": "body", - "origin": [0, 6, 4], - "color": 0, - "children": [4, 5] - }, - { - "name": "leg", - "origin": [-3.5, 5, -4], - "color": 0, - "children": [6, 7, 8, 9] - }, - { - "name": "tail", - "origin": [0, 6, 5], - "color": 0, - "children": [10] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/axolotl/color/axolotl_adult_blue.json b/src/main/resources/assets/minecraft/models/entity/axolotl/color/axolotl_adult_blue.json deleted file mode 100644 index eb3b6a7..0000000 --- a/src/main/resources/assets/minecraft/models/entity/axolotl/color/axolotl_adult_blue.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/axolotl/axolotl_adult", - "textures": { - "0": "entity/axolotl/axolotl_blue" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/axolotl/color/axolotl_adult_cyan.json b/src/main/resources/assets/minecraft/models/entity/axolotl/color/axolotl_adult_cyan.json deleted file mode 100644 index 9ed1b21..0000000 --- a/src/main/resources/assets/minecraft/models/entity/axolotl/color/axolotl_adult_cyan.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/axolotl/axolotl_adult", - "textures": { - "0": "entity/axolotl/axolotl_cyan" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/axolotl/color/axolotl_adult_gold.json b/src/main/resources/assets/minecraft/models/entity/axolotl/color/axolotl_adult_gold.json deleted file mode 100644 index 5ca8c2f..0000000 --- a/src/main/resources/assets/minecraft/models/entity/axolotl/color/axolotl_adult_gold.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/axolotl/axolotl_adult", - "textures": { - "0": "entity/axolotl/axolotl_gold" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/axolotl/color/axolotl_adult_lucy.json b/src/main/resources/assets/minecraft/models/entity/axolotl/color/axolotl_adult_lucy.json deleted file mode 100644 index 96900df..0000000 --- a/src/main/resources/assets/minecraft/models/entity/axolotl/color/axolotl_adult_lucy.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/axolotl/axolotl_adult", - "textures": { - "0": "entity/axolotl/axolotl_lucy" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/axolotl/color/axolotl_adult_wild.json b/src/main/resources/assets/minecraft/models/entity/axolotl/color/axolotl_adult_wild.json deleted file mode 100644 index fdab232..0000000 --- a/src/main/resources/assets/minecraft/models/entity/axolotl/color/axolotl_adult_wild.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/axolotl/axolotl_adult", - "textures": { - "0": "entity/axolotl/axolotl_wild" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/axolotl/color/axolotl_baby_blue.json b/src/main/resources/assets/minecraft/models/entity/axolotl/color/axolotl_baby_blue.json deleted file mode 100644 index db61f4a..0000000 --- a/src/main/resources/assets/minecraft/models/entity/axolotl/color/axolotl_baby_blue.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/axolotl/axolotl_baby", - "textures": { - "0": "entity/axolotl/axolotl_blue" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/axolotl/color/axolotl_baby_cyan.json b/src/main/resources/assets/minecraft/models/entity/axolotl/color/axolotl_baby_cyan.json deleted file mode 100644 index 1ca96d4..0000000 --- a/src/main/resources/assets/minecraft/models/entity/axolotl/color/axolotl_baby_cyan.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/axolotl/axolotl_baby", - "textures": { - "0": "entity/axolotl/axolotl_cyan" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/axolotl/color/axolotl_baby_gold.json b/src/main/resources/assets/minecraft/models/entity/axolotl/color/axolotl_baby_gold.json deleted file mode 100644 index a40402f..0000000 --- a/src/main/resources/assets/minecraft/models/entity/axolotl/color/axolotl_baby_gold.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/axolotl/axolotl_baby", - "textures": { - "0": "entity/axolotl/axolotl_gold" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/axolotl/color/axolotl_baby_lucy.json b/src/main/resources/assets/minecraft/models/entity/axolotl/color/axolotl_baby_lucy.json deleted file mode 100644 index 4aa4450..0000000 --- a/src/main/resources/assets/minecraft/models/entity/axolotl/color/axolotl_baby_lucy.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/axolotl/axolotl_baby", - "textures": { - "0": "entity/axolotl/axolotl_lucy" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/axolotl/color/axolotl_baby_wild.json b/src/main/resources/assets/minecraft/models/entity/axolotl/color/axolotl_baby_wild.json deleted file mode 100644 index 564b06b..0000000 --- a/src/main/resources/assets/minecraft/models/entity/axolotl/color/axolotl_baby_wild.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/axolotl/axolotl_baby", - "textures": { - "0": "entity/axolotl/axolotl_wild" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/bat.json b/src/main/resources/assets/minecraft/models/entity/bat.json deleted file mode 100644 index 9be433b..0000000 --- a/src/main/resources/assets/minecraft/models/entity/bat.json +++ /dev/null @@ -1,162 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Made by Miraculixx", - "texture_size": [32, 32], - "textures": { - "0": "entity/bat" - }, - "elements": [ - { - "name": "head", - "from": [-2, 5, -3], - "to": [2, 8, -1], - "rotation": {"angle": 0, "axis": "y", "origin": [0, -2, -2]}, - "faces": { - "north": {"uv": [1, 4.5, 3, 6], "texture": "#0"}, - "east": {"uv": [0, 4.5, 1, 6], "texture": "#0"}, - "south": {"uv": [4, 4.5, 6, 6], "texture": "#0"}, - "west": {"uv": [3, 4.5, 4, 6], "texture": "#0"}, - "up": {"uv": [3, 4.5, 1, 3.5], "texture": "#0"}, - "down": {"uv": [5, 3.5, 3, 4.5], "texture": "#0"} - } - }, - { - "name": "head", - "from": [-4, 6, -2], - "to": [-1, 11, -2], - "rotation": {"angle": 0, "axis": "y", "origin": [0, -2, -2]}, - "faces": { - "north": {"uv": [4, 7.5, 5.5, 10], "texture": "#0"}, - "east": {"uv": [4, 7.5, 4, 10], "texture": "#0"}, - "south": {"uv": [5.5, 7.5, 7, 10], "texture": "#0"}, - "west": {"uv": [5.5, 7.5, 5.5, 10], "texture": "#0"}, - "up": {"uv": [5.5, 7.5, 4, 7.5], "texture": "#0"}, - "down": {"uv": [7, 7.5, 5.5, 7.5], "texture": "#0"} - } - }, - { - "name": "head", - "from": [1, 6, -2], - "to": [4, 11, -2], - "rotation": {"angle": 0, "axis": "y", "origin": [0, -2, -2]}, - "faces": { - "north": {"uv": [0.5, 7.5, 2, 10], "texture": "#0"}, - "east": {"uv": [0.5, 7.5, 0.5, 10], "texture": "#0"}, - "south": {"uv": [2, 7.5, 3.5, 10], "texture": "#0"}, - "west": {"uv": [2, 7.5, 2, 10], "texture": "#0"}, - "up": {"uv": [2, 7.5, 0.5, 7.5], "texture": "#0"}, - "down": {"uv": [3.5, 7.5, 2, 7.5], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-1.5, 0, -3], - "to": [1.5, 5, -1], - "rotation": {"angle": -40, "axis": "x", "origin": [0, 5, -2]}, - "faces": { - "north": {"uv": [1, 1, 2.5, 3.5], "texture": "#0"}, - "east": {"uv": [0, 1, 1, 3.5], "texture": "#0"}, - "south": {"uv": [3.5, 1, 5, 3.5], "texture": "#0"}, - "west": {"uv": [2.5, 1, 3.5, 3.5], "texture": "#0"}, - "up": {"uv": [2.5, 1, 1, 0], "texture": "#0"}, - "down": {"uv": [4, 0, 2.5, 1], "texture": "#0"} - } - }, - { - "name": "left_wing", - "from": [-3.5, 0.59848, -0.14431], - "to": [-1.5, 7.59848, -0.14431], - "rotation": {"x": -47.60591, "y": 29.4987, "z": -28.34077, "origin": [0, 2.75, -0.25]}, - "faces": { - "north": {"uv": [6, 3.5, 7, 7], "texture": "#0"}, - "east": {"uv": [6, 3.5, 6, 7], "texture": "#0"}, - "south": {"uv": [7, 3.5, 8, 7], "texture": "#0"}, - "west": {"uv": [7, 3.5, 7, 7], "texture": "#0"}, - "up": {"uv": [7, 3.5, 6, 3.5], "texture": "#0"}, - "down": {"uv": [8, 3.5, 7, 3.5], "texture": "#0"} - } - }, - { - "name": "outer_left_wing", - "from": [-9.5, -0.40152, -0.14431], - "to": [-3.5, 7.59848, -0.14431], - "rotation": {"x": -47.60591, "y": 29.4987, "z": -28.34077, "origin": [0, 2.75, -0.25]}, - "faces": { - "north": {"uv": [8, 4, 11, 8], "texture": "#0"}, - "east": {"uv": [8, 4, 8, 8], "texture": "#0"}, - "south": {"uv": [11, 4, 14, 8], "texture": "#0"}, - "west": {"uv": [11, 4, 11, 8], "texture": "#0"}, - "up": {"uv": [11, 4, 8, 4], "texture": "#0"}, - "down": {"uv": [14, 4, 11, 4], "texture": "#0"} - } - }, - { - "name": "right_wing", - "from": [1.5, 0.59848, -0.14431], - "to": [3.5, 7.59848, -0.14431], - "rotation": {"x": -47.60591, "y": -29.4987, "z": 28.34077, "origin": [0, 2.75, -0.25]}, - "faces": { - "north": {"uv": [6, 0, 7, 3.5], "texture": "#0"}, - "east": {"uv": [6, 0, 6, 3.5], "texture": "#0"}, - "south": {"uv": [7, 0, 8, 3.5], "texture": "#0"}, - "west": {"uv": [7, 0, 7, 3.5], "texture": "#0"}, - "up": {"uv": [7, 0, 6, 0], "texture": "#0"}, - "down": {"uv": [8, 0, 7, 0], "texture": "#0"} - } - }, - { - "name": "outer_right_wing", - "from": [3.5, -0.40152, -0.14431], - "to": [9.5, 7.59848, -0.14431], - "rotation": {"x": -47.60591, "y": -29.4987, "z": 28.34077, "origin": [0, 2.75, -0.25]}, - "faces": { - "north": {"uv": [8, 0, 11, 4], "texture": "#0"}, - "east": {"uv": [8, 0, 8, 4], "texture": "#0"}, - "south": {"uv": [11, 0, 14, 4], "texture": "#0"}, - "west": {"uv": [11, 0, 11, 4], "texture": "#0"}, - "up": {"uv": [11, 0, 8, 0], "texture": "#0"}, - "down": {"uv": [14, 0, 11, 0], "texture": "#0"} - } - }, - { - "name": "feet", - "from": [-1.5, -1.00746, 1.27302], - "to": [1.5, 0.99254, 1.27302], - "rotation": {"angle": -45, "axis": "x", "origin": [0, 1, 1]}, - "faces": { - "north": {"uv": [8, 8, 9.5, 9], "texture": "#0"}, - "east": {"uv": [8, 8, 8, 9], "texture": "#0"}, - "south": {"uv": [9.5, 8, 11, 9], "texture": "#0"}, - "west": {"uv": [9.5, 8, 9.5, 9], "texture": "#0"}, - "up": {"uv": [9.5, 8, 8, 8], "texture": "#0"}, - "down": {"uv": [11, 8, 9.5, 8], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "head", - "origin": [0, 7, 0], - "color": 0, - "children": [0, 1, 2] - }, - { - "name": "body", - "origin": [0, 7, 0], - "color": 0, - "children": [3] - }, - { - "name": "wing", - "origin": [-1.5, 7, 0], - "color": 0, - "children": [4, 5, 6, 7] - }, - { - "name": "feet", - "origin": [0, 2, 0], - "color": 0, - "children": [8] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/bee/adult.json b/src/main/resources/assets/minecraft/models/entity/bee/adult.json deleted file mode 100644 index 2b624cb..0000000 --- a/src/main/resources/assets/minecraft/models/entity/bee/adult.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Model by Miraculixx", - "texture_size": [64, 64], - "textures": { - "0": "entity/bee/bee" - }, - "elements": [ - { - "name": "torso", - "from": [-3.5, 2, -5], - "to": [3.5, 9, 5], - "faces": { - "north": {"uv": [2.5, 2.5, 4.25, 4.25], "texture": "#0"}, - "east": {"uv": [0, 2.5, 2.5, 4.25], "texture": "#0"}, - "south": {"uv": [6.75, 2.5, 8.5, 4.25], "texture": "#0"}, - "west": {"uv": [4.25, 2.5, 6.75, 4.25], "texture": "#0"}, - "up": {"uv": [4.25, 2.5, 2.5, 0], "texture": "#0"}, - "down": {"uv": [6, 0, 4.25, 2.5], "texture": "#0"} - } - }, - { - "name": "left_antenna", - "from": [-1.5, 7, -8], - "to": [-1.5, 9, -5], - "faces": { - "north": {"uv": [1.25, 0.75, 1.25, 1.25], "texture": "#0"}, - "east": {"uv": [0.5, 0.75, 1.25, 1.25], "texture": "#0"}, - "south": {"uv": [2, 0.75, 2, 1.25], "texture": "#0"}, - "west": {"uv": [1.25, 0.75, 0.5, 1.25], "texture": "#0"}, - "up": {"uv": [1.25, 0.75, 1.25, 0], "texture": "#0"}, - "down": {"uv": [1.25, 0, 1.25, 0.75], "texture": "#0"} - } - }, - { - "name": "right_antenna", - "from": [1.5, 7, -8], - "to": [1.5, 9, -5], - "faces": { - "north": {"uv": [1.5, 1.5, 1.5, 2], "texture": "#0"}, - "east": {"uv": [2.25, 1.5, 1.5, 2], "texture": "#0"}, - "south": {"uv": [2.25, 1.5, 2.25, 2], "texture": "#0"}, - "west": {"uv": [1.5, 1.5, 2.25, 2], "texture": "#0"}, - "up": {"uv": [1.5, 1.5, 1.5, 0.75], "texture": "#0"}, - "down": {"uv": [1.5, 0.75, 1.5, 1.5], "texture": "#0"} - } - }, - { - "name": "left_wing", - "from": [-10.5, 9, -3], - "to": [-1.5, 9, 3], - "rotation": {"angle": -20, "axis": "z", "origin": [-1.5, 9, 0]}, - "faces": { - "north": {"uv": [3.75, 6, 1.5, 6], "texture": "#0"}, - "east": {"uv": [5.25, 6, 3.75, 6], "texture": "#0"}, - "south": {"uv": [7.5, 6, 5.25, 6], "texture": "#0"}, - "west": {"uv": [1.5, 6, 0, 6], "texture": "#0"}, - "up": {"uv": [1.5, 6, 3.75, 4.5], "texture": "#0"}, - "down": {"uv": [1.5, 4.5, 3.75, 6], "texture": "#0"} - } - }, - { - "name": "right_wing", - "from": [1.5, 9, -3], - "to": [10.5, 9, 3], - "rotation": {"angle": 20, "axis": "z", "origin": [1.5, 9, 0]}, - "faces": { - "north": {"uv": [1.5, 6, 3.75, 6], "texture": "#0"}, - "east": {"uv": [0, 6, 1.5, 6], "texture": "#0"}, - "south": {"uv": [5.25, 6, 7.5, 6], "texture": "#0"}, - "west": {"uv": [3.75, 6, 5.25, 6], "texture": "#0"}, - "up": {"uv": [3.75, 6, 1.5, 4.5], "texture": "#0"}, - "down": {"uv": [3.75, 4.5, 1.5, 6], "texture": "#0"} - } - }, - { - "name": "front_legs", - "from": [-1.5, 1, -1.6], - "to": [1.5, 3, -1.6], - "rotation": {"angle": -22.5, "axis": "x", "origin": [0, 1, 0.4]}, - "faces": { - "north": {"uv": [7, 0.25, 7.75, 0.75], "texture": "#0"}, - "east": {"uv": [7, 0.25, 7, 0.75], "texture": "#0"}, - "south": {"uv": [7, 0.25, 7.75, 0.75], "texture": "#0"}, - "west": {"uv": [7.75, 0.25, 7.75, 0.75], "texture": "#0"}, - "up": {"uv": [7.75, 0.25, 7, 0.25], "texture": "#0"}, - "down": {"uv": [8.5, 0.25, 7.75, 0.25], "texture": "#0"} - } - }, - { - "name": "middle_legs", - "from": [-2.5, 0.2, 0.4], - "to": [2.5, 2.2, 0.4], - "rotation": {"angle": -22.5, "axis": "x", "origin": [0, 0.2, 0.4]}, - "faces": { - "north": {"uv": [6.75, 0.75, 8, 1.25], "texture": "#0"}, - "east": {"uv": [6.75, 0.75, 6.75, 1.25], "texture": "#0"}, - "south": {"uv": [6.75, 0.75, 8, 1.25], "texture": "#0"}, - "west": {"uv": [8, 0.75, 8, 1.25], "texture": "#0"}, - "up": {"uv": [8, 0.75, 6.75, 0.75], "texture": "#0"}, - "down": {"uv": [9.25, 0.75, 8, 0.75], "texture": "#0"} - } - }, - { - "name": "back_legs", - "from": [-2.5, -0.6, 2.4], - "to": [2.5, 1.4, 2.4], - "rotation": {"angle": -22.5, "axis": "x", "origin": [0, -0.6, 0.4]}, - "faces": { - "north": {"uv": [6.75, 1.25, 8, 1.75], "texture": "#0"}, - "east": {"uv": [6.75, 1.25, 6.75, 1.75], "texture": "#0"}, - "south": {"uv": [6.75, 1.25, 8, 1.75], "texture": "#0"}, - "west": {"uv": [8, 1.25, 8, 1.75], "texture": "#0"}, - "up": {"uv": [8, 1.25, 6.75, 1.25], "texture": "#0"}, - "down": {"uv": [9.25, 1.25, 8, 1.25], "texture": "#0"} - } - }, - { - "name": "stinger", - "from": [0, 5, 5], - "to": [0, 6, 7], - "faces": { - "north": {"uv": [6.5, 2.25, 6.5, 2.5], "texture": "#0"}, - "east": {"uv": [6.5, 2.25, 7, 2.5], "texture": "#0"}, - "south": {"uv": [7, 2.25, 7, 2.5], "texture": "#0"}, - "west": {"uv": [6.5, 2.25, 7, 2.5], "texture": "#0"}, - "up": {"uv": [6.5, 2.25, 6.5, 1.75], "texture": "#0"}, - "down": {"uv": [6.5, 1.75, 6.5, 2.25], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "torso", - "origin": [8, 5, 8], - "color": 0, - "children": [0] - }, - { - "name": "antenna", - "origin": [8, 7, 3], - "color": 0, - "children": [1, 2] - }, - { - "name": "wing", - "origin": [6.5, 9, 5], - "color": 0, - "children": [3, 4] - }, - { - "name": "leg", - "origin": [6.5, 2, 6], - "color": 0, - "children": [5, 6, 7] - }, - { - "name": "stinger", - "origin": [8, 5, 8], - "color": 0, - "children": [8] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/bee/baby.json b/src/main/resources/assets/minecraft/models/entity/bee/baby.json deleted file mode 100644 index 0732adf..0000000 --- a/src/main/resources/assets/minecraft/models/entity/bee/baby.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Model by Miraculixx", - "texture_size": [64, 64], - "textures": { - "0": "entity/bee/bee" - }, - "elements": [ - { - "name": "torso", - "from": [-1.75, 1, -2.5], - "to": [1.75, 4.5, 2.5], - "faces": { - "north": {"uv": [2.5, 2.5, 4.25, 4.25], "texture": "#0"}, - "east": {"uv": [0, 2.5, 2.5, 4.25], "texture": "#0"}, - "south": {"uv": [6.75, 2.5, 8.5, 4.25], "texture": "#0"}, - "west": {"uv": [4.25, 2.5, 6.75, 4.25], "texture": "#0"}, - "up": {"uv": [4.25, 2.5, 2.5, 0], "texture": "#0"}, - "down": {"uv": [6, 0, 4.25, 2.5], "texture": "#0"} - } - }, - { - "name": "left_antenna", - "from": [-0.75, 3.5, -4], - "to": [-0.75, 4.5, -2.5], - "faces": { - "north": {"uv": [1.25, 0.75, 1.25, 1.25], "texture": "#0"}, - "east": {"uv": [0.5, 0.75, 1.25, 1.25], "texture": "#0"}, - "south": {"uv": [2, 0.75, 2, 1.25], "texture": "#0"}, - "west": {"uv": [1.25, 0.75, 0.5, 1.25], "texture": "#0"}, - "up": {"uv": [1.25, 0.75, 1.25, 0], "texture": "#0"}, - "down": {"uv": [1.25, 0, 1.25, 0.75], "texture": "#0"} - } - }, - { - "name": "right_antenna", - "from": [0.75, 3.5, -4], - "to": [0.75, 4.5, -2.5], - "faces": { - "north": {"uv": [1.5, 1.5, 1.5, 2], "texture": "#0"}, - "east": {"uv": [2.25, 1.5, 1.5, 2], "texture": "#0"}, - "south": {"uv": [2.25, 1.5, 2.25, 2], "texture": "#0"}, - "west": {"uv": [1.5, 1.5, 2.25, 2], "texture": "#0"}, - "up": {"uv": [1.5, 1.5, 1.5, 0.75], "texture": "#0"}, - "down": {"uv": [1.5, 0.75, 1.5, 1.5], "texture": "#0"} - } - }, - { - "name": "left_wing", - "from": [-5.25, 4.5, -1.5], - "to": [-0.75, 4.5, 1.5], - "rotation": {"angle": -20, "axis": "z", "origin": [-0.75, 4.5, 0]}, - "faces": { - "north": {"uv": [3.75, 6, 1.5, 6], "texture": "#0"}, - "east": {"uv": [5.25, 6, 3.75, 6], "texture": "#0"}, - "south": {"uv": [7.5, 6, 5.25, 6], "texture": "#0"}, - "west": {"uv": [1.5, 6, 0, 6], "texture": "#0"}, - "up": {"uv": [1.5, 6, 3.75, 4.5], "texture": "#0"}, - "down": {"uv": [1.5, 4.5, 3.75, 6], "texture": "#0"} - } - }, - { - "name": "right_wing", - "from": [0.75, 4.5, -1.5], - "to": [5.25, 4.5, 1.5], - "rotation": {"angle": 20, "axis": "z", "origin": [0.75, 4.5, 0]}, - "faces": { - "north": {"uv": [1.5, 6, 3.75, 6], "texture": "#0"}, - "east": {"uv": [0, 6, 1.5, 6], "texture": "#0"}, - "south": {"uv": [5.25, 6, 7.5, 6], "texture": "#0"}, - "west": {"uv": [3.75, 6, 5.25, 6], "texture": "#0"}, - "up": {"uv": [3.75, 6, 1.5, 4.5], "texture": "#0"}, - "down": {"uv": [3.75, 4.5, 1.5, 6], "texture": "#0"} - } - }, - { - "name": "front_legs", - "from": [-0.75, 0.5, -0.8], - "to": [0.75, 1.5, -0.8], - "rotation": {"angle": -22.5, "axis": "x", "origin": [0, 0.5, 0.2]}, - "faces": { - "north": {"uv": [7, 0.25, 7.75, 0.75], "texture": "#0"}, - "east": {"uv": [7, 0.25, 7, 0.75], "texture": "#0"}, - "south": {"uv": [7, 0.25, 7.75, 0.75], "texture": "#0"}, - "west": {"uv": [7.75, 0.25, 7.75, 0.75], "texture": "#0"}, - "up": {"uv": [7.75, 0.25, 7, 0.25], "texture": "#0"}, - "down": {"uv": [8.5, 0.25, 7.75, 0.25], "texture": "#0"} - } - }, - { - "name": "middle_legs", - "from": [-1.25, 0.1, 0.2], - "to": [1.25, 1.1, 0.2], - "rotation": {"angle": -22.5, "axis": "x", "origin": [0, 0.1, 0.2]}, - "faces": { - "north": {"uv": [6.75, 0.75, 8, 1.25], "texture": "#0"}, - "east": {"uv": [6.75, 0.75, 6.75, 1.25], "texture": "#0"}, - "south": {"uv": [6.75, 0.75, 8, 1.25], "texture": "#0"}, - "west": {"uv": [8, 0.75, 8, 1.25], "texture": "#0"}, - "up": {"uv": [8, 0.75, 6.75, 0.75], "texture": "#0"}, - "down": {"uv": [9.25, 0.75, 8, 0.75], "texture": "#0"} - } - }, - { - "name": "back_legs", - "from": [-1.25, -0.3, 1.2], - "to": [1.25, 0.7, 1.2], - "rotation": {"angle": -22.5, "axis": "x", "origin": [0, -0.3, 0.2]}, - "faces": { - "north": {"uv": [6.75, 1.25, 8, 1.75], "texture": "#0"}, - "east": {"uv": [6.75, 1.25, 6.75, 1.75], "texture": "#0"}, - "south": {"uv": [6.75, 1.25, 8, 1.75], "texture": "#0"}, - "west": {"uv": [8, 1.25, 8, 1.75], "texture": "#0"}, - "up": {"uv": [8, 1.25, 6.75, 1.25], "texture": "#0"}, - "down": {"uv": [9.25, 1.25, 8, 1.25], "texture": "#0"} - } - }, - { - "name": "stinger", - "from": [0, 2.5, 2.5], - "to": [0, 3, 3.5], - "faces": { - "north": {"uv": [6.5, 2.25, 6.5, 2.5], "texture": "#0"}, - "east": {"uv": [6.5, 2.25, 7, 2.5], "texture": "#0"}, - "south": {"uv": [7, 2.25, 7, 2.5], "texture": "#0"}, - "west": {"uv": [6.5, 2.25, 7, 2.5], "texture": "#0"}, - "up": {"uv": [6.5, 2.25, 6.5, 1.75], "texture": "#0"}, - "down": {"uv": [6.5, 1.75, 6.5, 2.25], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "torso", - "origin": [8, 5, 8], - "color": 0, - "children": [0] - }, - { - "name": "antenna", - "origin": [8, 7, 3], - "color": 0, - "children": [1, 2] - }, - { - "name": "wing", - "origin": [6.5, 9, 5], - "color": 0, - "children": [3, 4] - }, - { - "name": "leg", - "origin": [6.5, 2, 6], - "color": 0, - "children": [5, 6, 7] - }, - { - "name": "stinger", - "origin": [8, 5, 8], - "color": 0, - "children": [8] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/breeze.json b/src/main/resources/assets/minecraft/models/entity/breeze.json deleted file mode 100644 index 8f991f5..0000000 --- a/src/main/resources/assets/minecraft/models/entity/breeze.json +++ /dev/null @@ -1,92 +0,0 @@ -{ - "format_version": "1.21.6", - "credit": "Model by Miraculixx", - "texture_size": [32, 32], - "textures": { - "0": "entity/breeze/breeze" - }, - "elements": [ - { - "name": "head", - "from": [-4, 20, -4], - "to": [4, 28, 4], - "faces": { - "north": {"uv": [4, 4, 8, 8], "texture": "#0"}, - "east": {"uv": [0, 4, 4, 8], "texture": "#0"}, - "south": {"uv": [12, 4, 16, 8], "texture": "#0"}, - "west": {"uv": [8, 4, 12, 8], "texture": "#0"}, - "up": {"uv": [8, 4, 4, 0], "texture": "#0"}, - "down": {"uv": [12, 0, 8, 4], "texture": "#0"} - } - }, - { - "name": "head", - "from": [-5, 22, -4.25], - "to": [5, 25, -0.25], - "faces": { - "north": {"uv": [4, 14, 9, 15.5], "texture": "#0"}, - "east": {"uv": [2, 14, 4, 15.5], "texture": "#0"}, - "south": {"uv": [11, 14, 16, 15.5], "texture": "#0"}, - "west": {"uv": [9, 14, 11, 15.5], "texture": "#0"}, - "up": {"uv": [9, 14, 4, 12], "texture": "#0"}, - "down": {"uv": [14, 12, 9, 14], "texture": "#0"} - } - }, - { - "name": "rod_1", - "from": [-1, 9.9343, -0.6424], - "to": [1, 17.9343, 1.3576], - "rotation": {"angle": -22.5, "axis": "x", "origin": [0, 5, -3]}, - "faces": { - "north": {"uv": [1, 9.5, 2, 13.5], "texture": "#0"}, - "east": {"uv": [0, 9.5, 1, 13.5], "texture": "#0"}, - "south": {"uv": [3, 9.5, 4, 13.5], "texture": "#0"}, - "west": {"uv": [2, 9.5, 3, 13.5], "texture": "#0"}, - "up": {"uv": [2, 9.5, 1, 8.5], "texture": "#0"}, - "down": {"uv": [3, 8.5, 2, 9.5], "texture": "#0"} - } - }, - { - "name": "rod_2", - "from": [-1, 11.1843, -0.6424], - "to": [1, 19.1843, 1.3576], - "rotation": {"angle": -22.5, "axis": "z", "origin": [0, 5, -3]}, - "faces": { - "north": {"uv": [1, 9.5, 2, 13.5], "texture": "#0"}, - "east": {"uv": [0, 9.5, 1, 13.5], "texture": "#0"}, - "south": {"uv": [3, 9.5, 4, 13.5], "texture": "#0"}, - "west": {"uv": [2, 9.5, 3, 13.5], "texture": "#0"}, - "up": {"uv": [2, 9.5, 1, 8.5], "texture": "#0"}, - "down": {"uv": [3, 8.5, 2, 9.5], "texture": "#0"} - } - }, - { - "name": "rod_3", - "from": [-1, 11.1843, -0.6424], - "to": [1, 19.1843, 1.3576], - "rotation": {"angle": 22.5, "axis": "z", "origin": [0, 5, -3]}, - "faces": { - "north": {"uv": [1, 9.5, 2, 13.5], "texture": "#0"}, - "east": {"uv": [0, 9.5, 1, 13.5], "texture": "#0"}, - "south": {"uv": [3, 9.5, 4, 13.5], "texture": "#0"}, - "west": {"uv": [2, 9.5, 3, 13.5], "texture": "#0"}, - "up": {"uv": [2, 9.5, 1, 8.5], "texture": "#0"}, - "down": {"uv": [3, 8.5, 2, 9.5], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "head", - "origin": [0, 20, 0], - "color": 0, - "children": [0, 1] - }, - { - "name": "rods", - "origin": [0, 16, 0], - "color": 0, - "children": [2, 3, 4] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/camel/camel_adult.json b/src/main/resources/assets/minecraft/models/entity/camel/camel_adult.json deleted file mode 100644 index 363d991..0000000 --- a/src/main/resources/assets/minecraft/models/entity/camel/camel_adult.json +++ /dev/null @@ -1,203 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Made by Miraculixx", - "texture_size": [128, 128], - "textures": { - "0": "entity/camel/camel" - }, - "elements": [ - { - "name": "head", - "from": [-2.5, 39, -30], - "to": [2.5, 44, -24], - "faces": { - "north": {"uv": [7, 0.75, 7.625, 1.375], "texture": "#0"}, - "east": {"uv": [6.25, 0.75, 7, 1.375], "texture": "#0"}, - "south": {"uv": [8.375, 0.75, 9, 1.375], "texture": "#0"}, - "west": {"uv": [7.625, 0.75, 8.375, 1.375], "texture": "#0"}, - "up": {"uv": [7.625, 0.75, 7, 0], "texture": "#0"}, - "down": {"uv": [8.25, 0, 7.625, 0.75], "texture": "#0"} - } - }, - { - "name": "head", - "from": [-3.5, 30, -24], - "to": [3.5, 44, -17], - "faces": { - "north": {"uv": [3.5, 0.875, 4.375, 2.625], "texture": "#0"}, - "east": {"uv": [2.625, 0.875, 3.5, 2.625], "texture": "#0"}, - "south": {"uv": [5.25, 0.875, 6.125, 2.625], "texture": "#0"}, - "west": {"uv": [4.375, 0.875, 5.25, 2.625], "texture": "#0"}, - "up": {"uv": [4.375, 0.875, 3.5, 0], "texture": "#0"}, - "down": {"uv": [5.25, 0, 4.375, 0.875], "texture": "#0"} - } - }, - { - "name": "head", - "from": [-3.5, 22, -24], - "to": [3.5, 30, -5], - "faces": { - "north": {"uv": [9.875, 5.375, 10.75, 6.375], "texture": "#0"}, - "east": {"uv": [7.5, 5.375, 9.875, 6.375], "texture": "#0"}, - "south": {"uv": [13.125, 5.375, 14, 6.375], "texture": "#0"}, - "west": {"uv": [10.75, 5.375, 13.125, 6.375], "texture": "#0"}, - "up": {"uv": [10.75, 5.375, 9.875, 3], "texture": "#0"}, - "down": {"uv": [11.625, 3, 10.75, 5.375], "texture": "#0"} - } - }, - { - "name": "left_ear", - "from": [-5.5, 42.5, -19.5], - "to": [-2.5, 43.5, -17.5], - "rotation": {"angle": -40, "axis": "z", "origin": [-3.5, 43, -19]}, - "faces": { - "north": {"uv": [5.875, 0.25, 6.25, 0.375], "texture": "#0"}, - "east": {"uv": [5.625, 0.25, 5.875, 0.375], "texture": "#0"}, - "south": {"uv": [6.5, 0.25, 6.875, 0.375], "texture": "#0"}, - "west": {"uv": [6.25, 0.25, 6.5, 0.375], "texture": "#0"}, - "up": {"uv": [6.25, 0.25, 5.875, 0], "texture": "#0"}, - "down": {"uv": [6.625, 0, 6.25, 0.25], "texture": "#0"} - } - }, - { - "name": "right_ear", - "from": [2.5, 42.5, -19.5], - "to": [5.5, 43.5, -17.5], - "rotation": {"angle": 40, "axis": "z", "origin": [3.5, 43, -19]}, - "faces": { - "north": {"uv": [8.625, 0.25, 9, 0.375], "texture": "#0"}, - "east": {"uv": [8.375, 0.25, 8.625, 0.375], "texture": "#0"}, - "south": {"uv": [9.25, 0.25, 9.625, 0.375], "texture": "#0"}, - "west": {"uv": [9, 0.25, 9.25, 0.375], "texture": "#0"}, - "up": {"uv": [9, 0.25, 8.625, 0], "texture": "#0"}, - "down": {"uv": [9.375, 0, 9, 0.25], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-7.5, 20, -13], - "to": [7.5, 32, 14], - "faces": { - "north": {"uv": [3.375, 6.5, 5.25, 8], "texture": "#0"}, - "east": {"uv": [0, 6.5, 3.375, 8], "texture": "#0"}, - "south": {"uv": [8.625, 6.5, 10.5, 8], "texture": "#0"}, - "west": {"uv": [5.25, 6.5, 8.625, 8], "texture": "#0"}, - "up": {"uv": [5.25, 6.5, 3.375, 3.125], "texture": "#0"}, - "down": {"uv": [7.125, 3.125, 5.25, 6.5], "texture": "#0"} - } - }, - { - "name": "hump", - "from": [-4.5, 32, -5], - "to": [4.5, 37, 6], - "faces": { - "north": {"uv": [10.625, 1.375, 11.75, 2], "texture": "#0"}, - "east": {"uv": [9.25, 1.375, 10.625, 2], "texture": "#0"}, - "south": {"uv": [13.125, 1.375, 14.25, 2], "texture": "#0"}, - "west": {"uv": [11.75, 1.375, 13.125, 2], "texture": "#0"}, - "up": {"uv": [11.75, 1.375, 10.625, 0], "texture": "#0"}, - "down": {"uv": [12.875, 0, 11.75, 1.375], "texture": "#0"} - } - }, - { - "name": "front_left_leg", - "from": [-7.3, 0, -12], - "to": [-2.3, 21, -7], - "faces": { - "north": {"uv": [0.625, 0.625, 1.25, 3.25], "texture": "#0"}, - "east": {"uv": [0, 0.625, 0.625, 3.25], "texture": "#0"}, - "south": {"uv": [1.875, 0.625, 2.5, 3.25], "texture": "#0"}, - "west": {"uv": [1.25, 0.625, 1.875, 3.25], "texture": "#0"}, - "up": {"uv": [1.25, 0.625, 0.625, 0], "texture": "#0"}, - "down": {"uv": [1.875, 0, 1.25, 0.625], "texture": "#0"} - } - }, - { - "name": "front_right_leg", - "from": [2.3, 0, -12], - "to": [7.3, 21, -7], - "faces": { - "north": {"uv": [0.625, 3.875, 1.25, 6.5], "texture": "#0"}, - "east": {"uv": [0, 3.875, 0.625, 6.5], "texture": "#0"}, - "south": {"uv": [1.875, 3.875, 2.5, 6.5], "texture": "#0"}, - "west": {"uv": [1.25, 3.875, 1.875, 6.5], "texture": "#0"}, - "up": {"uv": [1.25, 3.875, 0.625, 3.25], "texture": "#0"}, - "down": {"uv": [1.875, 3.25, 1.25, 3.875], "texture": "#0"} - } - }, - { - "name": "back_left_leg", - "from": [-7.3, 0, 8], - "to": [-2.3, 21, 13], - "faces": { - "north": {"uv": [7.875, 2.625, 8.5, 5.25], "texture": "#0"}, - "east": {"uv": [7.25, 2.625, 7.875, 5.25], "texture": "#0"}, - "south": {"uv": [9.125, 2.625, 9.75, 5.25], "texture": "#0"}, - "west": {"uv": [8.5, 2.625, 9.125, 5.25], "texture": "#0"}, - "up": {"uv": [8.5, 2.625, 7.875, 2], "texture": "#0"}, - "down": {"uv": [9.125, 2, 8.5, 2.625], "texture": "#0"} - } - }, - { - "name": "back_right_leg", - "from": [2.3, 0, 8], - "to": [7.3, 21, 13], - "faces": { - "north": {"uv": [12.375, 2.625, 13, 5.25], "texture": "#0"}, - "east": {"uv": [11.75, 2.625, 12.375, 5.25], "texture": "#0"}, - "south": {"uv": [13.625, 2.625, 14.25, 5.25], "texture": "#0"}, - "west": {"uv": [13, 2.625, 13.625, 5.25], "texture": "#0"}, - "up": {"uv": [13, 2.625, 12.375, 2], "texture": "#0"}, - "down": {"uv": [13.625, 2, 13, 2.625], "texture": "#0"} - } - }, - { - "name": "tail", - "from": [-1.5, 15, 14], - "to": [1.5, 29, 14], - "rotation": {"angle": -7.5, "axis": "x", "origin": [0, 29, 14]}, - "faces": { - "north": {"uv": [15.25, 0, 15.625, 1.75], "texture": "#0"}, - "east": {"uv": [15.25, 0, 15.25, 1.75], "texture": "#0"}, - "south": {"uv": [15.25, 0, 15.625, 1.75], "texture": "#0"}, - "west": {"uv": [15.625, 0, 15.625, 1.75], "texture": "#0"}, - "up": {"uv": [15.625, 0, 15.25, 0], "texture": "#0"}, - "down": {"uv": [16, 0, 15.625, 0], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "head", - "origin": [0, 23, -9], - "color": 0, - "children": [0, 1, 2] - }, - { - "name": "ear", - "origin": [-3, 44, -18.5], - "rotation": [0, 0, -45], - "color": 0, - "children": [3, 4] - }, - { - "name": "body", - "origin": [0, 20, 10.5], - "color": 0, - "children": [5, 6] - }, - { - "name": "leg", - "origin": [-4.9, 23, -10], - "color": 0, - "children": [7, 8, 9, 10] - }, - { - "name": "tail", - "origin": [0, 29, 14], - "rotation": [-5, 0, 0], - "color": 0, - "children": [11] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/camel/camel_baby.json b/src/main/resources/assets/minecraft/models/entity/camel/camel_baby.json deleted file mode 100644 index 29fa13f..0000000 --- a/src/main/resources/assets/minecraft/models/entity/camel/camel_baby.json +++ /dev/null @@ -1,203 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Made by Miraculixx", - "texture_size": [128, 128], - "textures": { - "0": "entity/camel/camel" - }, - "elements": [ - { - "name": "head", - "from": [-1.25, 19.5, -15], - "to": [1.25, 22, -12], - "faces": { - "north": {"uv": [7, 0.75, 7.625, 1.375], "texture": "#0"}, - "east": {"uv": [6.25, 0.75, 7, 1.375], "texture": "#0"}, - "south": {"uv": [8.375, 0.75, 9, 1.375], "texture": "#0"}, - "west": {"uv": [7.625, 0.75, 8.375, 1.375], "texture": "#0"}, - "up": {"uv": [7.625, 0.75, 7, 0], "texture": "#0"}, - "down": {"uv": [8.25, 0, 7.625, 0.75], "texture": "#0"} - } - }, - { - "name": "head", - "from": [-1.75, 15, -12], - "to": [1.75, 22, -8.5], - "faces": { - "north": {"uv": [3.5, 0.875, 4.375, 2.625], "texture": "#0"}, - "east": {"uv": [2.625, 0.875, 3.5, 2.625], "texture": "#0"}, - "south": {"uv": [5.25, 0.875, 6.125, 2.625], "texture": "#0"}, - "west": {"uv": [4.375, 0.875, 5.25, 2.625], "texture": "#0"}, - "up": {"uv": [4.375, 0.875, 3.5, 0], "texture": "#0"}, - "down": {"uv": [5.25, 0, 4.375, 0.875], "texture": "#0"} - } - }, - { - "name": "head", - "from": [-1.75, 11, -12], - "to": [1.75, 15, -2.5], - "faces": { - "north": {"uv": [9.875, 5.375, 10.75, 6.375], "texture": "#0"}, - "east": {"uv": [7.5, 5.375, 9.875, 6.375], "texture": "#0"}, - "south": {"uv": [13.125, 5.375, 14, 6.375], "texture": "#0"}, - "west": {"uv": [10.75, 5.375, 13.125, 6.375], "texture": "#0"}, - "up": {"uv": [10.75, 5.375, 9.875, 3], "texture": "#0"}, - "down": {"uv": [11.625, 3, 10.75, 5.375], "texture": "#0"} - } - }, - { - "name": "left_ear", - "from": [-2.75, 21.25, -9.75], - "to": [-1.25, 21.75, -8.75], - "rotation": {"angle": -40, "axis": "z", "origin": [-1.75, 21.5, -9.5]}, - "faces": { - "north": {"uv": [5.875, 0.25, 6.25, 0.375], "texture": "#0"}, - "east": {"uv": [5.625, 0.25, 5.875, 0.375], "texture": "#0"}, - "south": {"uv": [6.5, 0.25, 6.875, 0.375], "texture": "#0"}, - "west": {"uv": [6.25, 0.25, 6.5, 0.375], "texture": "#0"}, - "up": {"uv": [6.25, 0.25, 5.875, 0], "texture": "#0"}, - "down": {"uv": [6.625, 0, 6.25, 0.25], "texture": "#0"} - } - }, - { - "name": "right_ear", - "from": [1.25, 21.25, -9.75], - "to": [2.75, 21.75, -8.75], - "rotation": {"angle": 40, "axis": "z", "origin": [1.75, 21.5, -9.5]}, - "faces": { - "north": {"uv": [8.625, 0.25, 9, 0.375], "texture": "#0"}, - "east": {"uv": [8.375, 0.25, 8.625, 0.375], "texture": "#0"}, - "south": {"uv": [9.25, 0.25, 9.625, 0.375], "texture": "#0"}, - "west": {"uv": [9, 0.25, 9.25, 0.375], "texture": "#0"}, - "up": {"uv": [9, 0.25, 8.625, 0], "texture": "#0"}, - "down": {"uv": [9.375, 0, 9, 0.25], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-3.75, 10, -6.5], - "to": [3.75, 16, 7], - "faces": { - "north": {"uv": [3.375, 6.5, 5.25, 8], "texture": "#0"}, - "east": {"uv": [0, 6.5, 3.375, 8], "texture": "#0"}, - "south": {"uv": [8.625, 6.5, 10.5, 8], "texture": "#0"}, - "west": {"uv": [5.25, 6.5, 8.625, 8], "texture": "#0"}, - "up": {"uv": [5.25, 6.5, 3.375, 3.125], "texture": "#0"}, - "down": {"uv": [7.125, 3.125, 5.25, 6.5], "texture": "#0"} - } - }, - { - "name": "hump", - "from": [-2.25, 16, -2.5], - "to": [2.25, 18.5, 3], - "faces": { - "north": {"uv": [10.625, 1.375, 11.75, 2], "texture": "#0"}, - "east": {"uv": [9.25, 1.375, 10.625, 2], "texture": "#0"}, - "south": {"uv": [13.125, 1.375, 14.25, 2], "texture": "#0"}, - "west": {"uv": [11.75, 1.375, 13.125, 2], "texture": "#0"}, - "up": {"uv": [11.75, 1.375, 10.625, 0], "texture": "#0"}, - "down": {"uv": [12.875, 0, 11.75, 1.375], "texture": "#0"} - } - }, - { - "name": "front_left_leg", - "from": [-3.65, 0, -6], - "to": [-1.15, 10.5, -3.5], - "faces": { - "north": {"uv": [0.625, 0.625, 1.25, 3.25], "texture": "#0"}, - "east": {"uv": [0, 0.625, 0.625, 3.25], "texture": "#0"}, - "south": {"uv": [1.875, 0.625, 2.5, 3.25], "texture": "#0"}, - "west": {"uv": [1.25, 0.625, 1.875, 3.25], "texture": "#0"}, - "up": {"uv": [1.25, 0.625, 0.625, 0], "texture": "#0"}, - "down": {"uv": [1.875, 0, 1.25, 0.625], "texture": "#0"} - } - }, - { - "name": "front_right_leg", - "from": [1.15, 0, -6], - "to": [3.65, 10.5, -3.5], - "faces": { - "north": {"uv": [0.625, 3.875, 1.25, 6.5], "texture": "#0"}, - "east": {"uv": [0, 3.875, 0.625, 6.5], "texture": "#0"}, - "south": {"uv": [1.875, 3.875, 2.5, 6.5], "texture": "#0"}, - "west": {"uv": [1.25, 3.875, 1.875, 6.5], "texture": "#0"}, - "up": {"uv": [1.25, 3.875, 0.625, 3.25], "texture": "#0"}, - "down": {"uv": [1.875, 3.25, 1.25, 3.875], "texture": "#0"} - } - }, - { - "name": "back_left_leg", - "from": [-3.65, 0, 4], - "to": [-1.15, 10.5, 6.5], - "faces": { - "north": {"uv": [7.875, 2.625, 8.5, 5.25], "texture": "#0"}, - "east": {"uv": [7.25, 2.625, 7.875, 5.25], "texture": "#0"}, - "south": {"uv": [9.125, 2.625, 9.75, 5.25], "texture": "#0"}, - "west": {"uv": [8.5, 2.625, 9.125, 5.25], "texture": "#0"}, - "up": {"uv": [8.5, 2.625, 7.875, 2], "texture": "#0"}, - "down": {"uv": [9.125, 2, 8.5, 2.625], "texture": "#0"} - } - }, - { - "name": "back_right_leg", - "from": [1.15, 0, 4], - "to": [3.65, 10.5, 6.5], - "faces": { - "north": {"uv": [12.375, 2.625, 13, 5.25], "texture": "#0"}, - "east": {"uv": [11.75, 2.625, 12.375, 5.25], "texture": "#0"}, - "south": {"uv": [13.625, 2.625, 14.25, 5.25], "texture": "#0"}, - "west": {"uv": [13, 2.625, 13.625, 5.25], "texture": "#0"}, - "up": {"uv": [13, 2.625, 12.375, 2], "texture": "#0"}, - "down": {"uv": [13.625, 2, 13, 2.625], "texture": "#0"} - } - }, - { - "name": "tail", - "from": [-0.75, 7.5, 7], - "to": [0.75, 14.5, 7], - "rotation": {"angle": -7.5, "axis": "x", "origin": [0, 14.5, 7]}, - "faces": { - "north": {"uv": [15.25, 0, 15.625, 1.75], "texture": "#0"}, - "east": {"uv": [15.25, 0, 15.25, 1.75], "texture": "#0"}, - "south": {"uv": [15.25, 0, 15.625, 1.75], "texture": "#0"}, - "west": {"uv": [15.625, 0, 15.625, 1.75], "texture": "#0"}, - "up": {"uv": [15.625, 0, 15.25, 0], "texture": "#0"}, - "down": {"uv": [16, 0, 15.625, 0], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "head", - "origin": [0, 23, -9], - "color": 0, - "children": [0, 1, 2] - }, - { - "name": "ear", - "origin": [-3, 44, -18.5], - "rotation": [0, 0, -45], - "color": 0, - "children": [3, 4] - }, - { - "name": "body", - "origin": [0, 20, 10.5], - "color": 0, - "children": [5, 6] - }, - { - "name": "leg", - "origin": [-4.9, 23, -10], - "color": 0, - "children": [7, 8, 9, 10] - }, - { - "name": "tail", - "origin": [0, 29, 14], - "rotation": [-5, 0, 0], - "color": 0, - "children": [11] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/camel/camel_husk_adult.json b/src/main/resources/assets/minecraft/models/entity/camel/camel_husk_adult.json deleted file mode 100644 index 3c7f457..0000000 --- a/src/main/resources/assets/minecraft/models/entity/camel/camel_husk_adult.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/camel/camel_adult", - "textures": { - "0": "entity/camel/camel_husk" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/camel/camel_husk_baby.json b/src/main/resources/assets/minecraft/models/entity/camel/camel_husk_baby.json deleted file mode 100644 index fc3fd5a..0000000 --- a/src/main/resources/assets/minecraft/models/entity/camel/camel_husk_baby.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/camel/camel_baby", - "textures": { - "0": "entity/camel/camel_husk" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/cat/cat.json b/src/main/resources/assets/minecraft/models/entity/cat/cat.json deleted file mode 100644 index 55aa765..0000000 --- a/src/main/resources/assets/minecraft/models/entity/cat/cat.json +++ /dev/null @@ -1,204 +0,0 @@ -{ - "credit": "Model by Miraculixx", - "texture_size": [64, 32], - "elements": [ - { - "name": "head", - "from": [-2.5, 7, -14], - "to": [2.5, 11, -9], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -2]}, - "faces": { - "north": {"uv": [1.25, 2.5, 2.5, 4.5], "texture": "#0"}, - "east": {"uv": [0, 2.5, 1.25, 4.5], "texture": "#0"}, - "south": {"uv": [3.75, 2.5, 5, 4.5], "texture": "#0"}, - "west": {"uv": [2.5, 2.5, 3.75, 4.5], "texture": "#0"}, - "up": {"uv": [2.5, 2.5, 1.25, 0], "texture": "#0"}, - "down": {"uv": [3.75, 0, 2.5, 2.5], "texture": "#0"} - } - }, - { - "name": "head", - "from": [-1.5, 7.02, -15], - "to": [1.5, 9.02, -13], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -2]}, - "faces": { - "north": {"uv": [0.5, 13, 1.25, 14], "texture": "#0"}, - "east": {"uv": [0, 13, 0.5, 14], "texture": "#0"}, - "south": {"uv": [1.75, 13, 2.5, 14], "texture": "#0"}, - "west": {"uv": [1.25, 13, 1.75, 14], "texture": "#0"}, - "up": {"uv": [1.25, 13, 0.5, 12], "texture": "#0"}, - "down": {"uv": [2, 12, 1.25, 13], "texture": "#0"} - } - }, - { - "name": "head", - "from": [1, 11, -11], - "to": [2, 12, -9], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -2]}, - "faces": { - "north": {"uv": [0.5, 6, 0.75, 6.5], "texture": "#0"}, - "east": {"uv": [0, 6, 0.5, 6.5], "texture": "#0"}, - "south": {"uv": [1.25, 6, 1.5, 6.5], "texture": "#0"}, - "west": {"uv": [0.75, 6, 1.25, 6.5], "texture": "#0"}, - "up": {"uv": [0.75, 6, 0.5, 5], "texture": "#0"}, - "down": {"uv": [1, 5, 0.75, 6], "texture": "#0"} - } - }, - { - "name": "head", - "from": [-2, 11, -11], - "to": [-1, 12, -9], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -2]}, - "faces": { - "north": {"uv": [2, 6, 2.25, 6.5], "texture": "#0"}, - "east": {"uv": [1.5, 6, 2, 6.5], "texture": "#0"}, - "south": {"uv": [2.75, 6, 3, 6.5], "texture": "#0"}, - "west": {"uv": [2.25, 6, 2.75, 6.5], "texture": "#0"}, - "up": {"uv": [2.25, 6, 2, 5], "texture": "#0"}, - "down": {"uv": [2.5, 5, 2.25, 6], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-2, 4, -9], - "to": [2, 10, 7], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 11, 9]}, - "faces": { - "north": {"uv": [6.5, 0, 7.5, 3], "texture": "#0"}, - "east": {"uv": [5, 3, 6.5, 11], "rotation": 90, "texture": "#0"}, - "south": {"uv": [7.5, 0, 8.5, 3], "texture": "#0"}, - "west": {"uv": [9, 11, 7.5, 3], "rotation": 90, "texture": "#0"}, - "up": {"uv": [10, 11, 9, 3], "texture": "#0"}, - "down": {"uv": [7.5, 11, 6.5, 3], "texture": "#0"} - } - }, - { - "name": "front_left_leg", - "from": [-2, 0, -7], - "to": [-0.1, 4, -5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0.1, -2]}, - "faces": { - "north": {"uv": [10.5, 4, 11, 6], "texture": "#0"}, - "east": {"uv": [10, 4, 10.5, 6], "texture": "#0"}, - "south": {"uv": [11.5, 4, 12, 6], "texture": "#0"}, - "west": {"uv": [11, 4, 11.5, 6], "texture": "#0"}, - "up": {"uv": [11, 4, 10.5, 3], "texture": "#0"}, - "down": {"uv": [11.5, 3, 11, 4], "texture": "#0"} - } - }, - { - "name": "front_right_leg", - "from": [0.1, 0, -7], - "to": [2, 4, -5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0.1, -2]}, - "faces": { - "north": {"uv": [10.5, 4, 11, 6], "texture": "#0"}, - "east": {"uv": [10, 4, 10.5, 6], "texture": "#0"}, - "south": {"uv": [11.5, 4, 12, 6], "texture": "#0"}, - "west": {"uv": [11, 4, 11.5, 6], "texture": "#0"}, - "up": {"uv": [11, 4, 10.5, 3], "texture": "#0"}, - "down": {"uv": [11.5, 3, 11, 4], "texture": "#0"} - } - }, - { - "name": "back_left_leg", - "from": [-2, 0, 4], - "to": [-0.1, 4, 6], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -2]}, - "faces": { - "north": {"uv": [2.5, 8.5, 3, 10.5], "texture": "#0"}, - "east": {"uv": [2, 8.5, 2.5, 10.5], "texture": "#0"}, - "south": {"uv": [3.5, 8.5, 4, 10.5], "texture": "#0"}, - "west": {"uv": [3, 8.5, 3.5, 10.5], "texture": "#0"}, - "up": {"uv": [3, 8.5, 2.5, 7.5], "texture": "#0"}, - "down": {"uv": [3.5, 7.5, 3, 8.5], "texture": "#0"} - } - }, - { - "name": "back_right_leg", - "from": [0.1, 0, 4], - "to": [2, 4, 6], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -2]}, - "faces": { - "north": {"uv": [2.5, 8.5, 3, 10.5], "texture": "#0"}, - "east": {"uv": [2, 8.5, 2.5, 10.5], "texture": "#0"}, - "south": {"uv": [3.5, 8.5, 4, 10.5], "texture": "#0"}, - "west": {"uv": [3, 8.5, 3.5, 10.5], "texture": "#0"}, - "up": {"uv": [3, 8.5, 2.5, 7.5], "texture": "#0"}, - "down": {"uv": [3.5, 7.5, 3, 8.5], "texture": "#0"} - } - }, - { - "name": "tail", - "from": [-0.5, -1.9, 14], - "to": [0.5, 6.1, 15], - "rotation": {"angle": -45, "axis": "x", "origin": [0, -2.4, 6]}, - "faces": { - "north": {"uv": [0.25, 8, 0.5, 12], "texture": "#0"}, - "east": {"uv": [0, 8, 0.25, 12], "texture": "#0"}, - "south": {"uv": [0.75, 8, 1, 12], "texture": "#0"}, - "west": {"uv": [0.5, 8, 0.75, 12], "texture": "#0"}, - "up": {"uv": [0.5, 8, 0.25, 7.5], "texture": "#0"}, - "down": {"uv": [0.75, 7.5, 0.5, 8], "texture": "#0"} - } - }, - { - "name": "tail2", - "from": [-0.5, 1.57553, 4.53334], - "to": [0.5, 2.57553, 12.53334], - "rotation": {"angle": 22.5, "axis": "x", "origin": [0, -14.42447, 13.03334]}, - "faces": { - "north": {"uv": [1.25, 7.5, 1.5, 8], "texture": "#0"}, - "east": {"uv": [1.25, 8, 1.5, 12], "rotation": 90, "texture": "#0"}, - "south": {"uv": [1.5, 7.5, 1.75, 8], "texture": "#0"}, - "west": {"uv": [1, 12, 1.25, 8], "rotation": 90, "texture": "#0"}, - "up": {"uv": [1.75, 8, 1.5, 12], "texture": "#0"}, - "down": {"uv": [2, 12, 1.75, 8], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "head", - "origin": [8, 9, -1], - "color": 0, - "children": [0, 1, 2, 3] - }, - { - "name": "body", - "origin": [8, 12, -2], - "color": 0, - "children": [4] - }, - { - "name": "front_left_leg", - "origin": [6.9, 9.9, 3], - "color": 0, - "children": [5] - }, - { - "name": "front_right_leg", - "origin": [9.1, 9.9, 3], - "color": 0, - "children": [6] - }, - { - "name": "back_left_leg", - "origin": [6.9, 6, 13], - "color": 0, - "children": [7] - }, - { - "name": "back_right_leg", - "origin": [9.1, 6, 13], - "color": 0, - "children": [8] - }, - { - "name": "tail", - "origin": [8, 8.5, 16], - "color": 0, - "children": [9, 10] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/cat/cat_baby.json b/src/main/resources/assets/minecraft/models/entity/cat/cat_baby.json deleted file mode 100644 index c8c5a1a..0000000 --- a/src/main/resources/assets/minecraft/models/entity/cat/cat_baby.json +++ /dev/null @@ -1,207 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Model by Miraculixx", - "texture_size": [64, 32], - "textures": { - }, - "elements": [ - { - "name": "head", - "from": [-1.875, 3.5, -7], - "to": [1.875, 6.5, -3.25], - "rotation": {"angle": 0, "axis": "y", "origin": [0, -1.75, 2]}, - "faces": { - "north": {"uv": [1.25, 2.5, 2.5, 4.5], "texture": "#0"}, - "east": {"uv": [0, 2.5, 1.25, 4.5], "texture": "#0"}, - "south": {"uv": [3.75, 2.5, 5, 4.5], "texture": "#0"}, - "west": {"uv": [2.5, 2.5, 3.75, 4.5], "texture": "#0"}, - "up": {"uv": [2.5, 2.5, 1.25, 0], "texture": "#0"}, - "down": {"uv": [3.75, 0, 2.5, 2.5], "texture": "#0"} - } - }, - { - "name": "head", - "from": [-1.125, 3.515, -7.75], - "to": [1.125, 5.015, -6.25], - "rotation": {"angle": 0, "axis": "y", "origin": [0, -1.75, 2]}, - "faces": { - "north": {"uv": [0.5, 13, 1.25, 14], "texture": "#0"}, - "east": {"uv": [0, 13, 0.5, 14], "texture": "#0"}, - "south": {"uv": [1.75, 13, 2.5, 14], "texture": "#0"}, - "west": {"uv": [1.25, 13, 1.75, 14], "texture": "#0"}, - "up": {"uv": [1.25, 13, 0.5, 12], "texture": "#0"}, - "down": {"uv": [2, 12, 1.25, 13], "texture": "#0"} - } - }, - { - "name": "head", - "from": [0.75, 6.5, -4.75], - "to": [1.5, 7.25, -3.25], - "rotation": {"angle": 0, "axis": "y", "origin": [0, -1.75, 2]}, - "faces": { - "north": {"uv": [0.5, 6, 0.75, 6.5], "texture": "#0"}, - "east": {"uv": [0, 6, 0.5, 6.5], "texture": "#0"}, - "south": {"uv": [1.25, 6, 1.5, 6.5], "texture": "#0"}, - "west": {"uv": [0.75, 6, 1.25, 6.5], "texture": "#0"}, - "up": {"uv": [0.75, 6, 0.5, 5], "texture": "#0"}, - "down": {"uv": [1, 5, 0.75, 6], "texture": "#0"} - } - }, - { - "name": "head", - "from": [-1.5, 6.5, -4.75], - "to": [-0.75, 7.25, -3.25], - "rotation": {"angle": 0, "axis": "y", "origin": [0, -1.75, 2]}, - "faces": { - "north": {"uv": [2, 6, 2.25, 6.5], "texture": "#0"}, - "east": {"uv": [1.5, 6, 2, 6.5], "texture": "#0"}, - "south": {"uv": [2.75, 6, 3, 6.5], "texture": "#0"}, - "west": {"uv": [2.25, 6, 2.75, 6.5], "texture": "#0"}, - "up": {"uv": [2.25, 6, 2, 5], "texture": "#0"}, - "down": {"uv": [2.5, 5, 2.25, 6], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-1, 2, -4.5], - "to": [1, 5, 3.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 5.5, 4.5]}, - "faces": { - "north": {"uv": [6.5, 0, 7.5, 3], "texture": "#0"}, - "east": {"uv": [5, 3, 6.5, 11], "rotation": 90, "texture": "#0"}, - "south": {"uv": [7.5, 0, 8.5, 3], "texture": "#0"}, - "west": {"uv": [9, 11, 7.5, 3], "rotation": 90, "texture": "#0"}, - "up": {"uv": [10, 11, 9, 3], "texture": "#0"}, - "down": {"uv": [7.5, 11, 6.5, 3], "texture": "#0"} - } - }, - { - "name": "front_left_leg", - "from": [-1, 0, -3.5], - "to": [-0.05, 2, -2.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0.05, -1]}, - "faces": { - "north": {"uv": [10.5, 4, 11, 6], "texture": "#0"}, - "east": {"uv": [10, 4, 10.5, 6], "texture": "#0"}, - "south": {"uv": [11.5, 4, 12, 6], "texture": "#0"}, - "west": {"uv": [11, 4, 11.5, 6], "texture": "#0"}, - "up": {"uv": [11, 4, 10.5, 3], "texture": "#0"}, - "down": {"uv": [11.5, 3, 11, 4], "texture": "#0"} - } - }, - { - "name": "front_right_leg", - "from": [0.05, 0, -3.5], - "to": [1, 2, -2.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0.05, -1]}, - "faces": { - "north": {"uv": [10.5, 4, 11, 6], "texture": "#0"}, - "east": {"uv": [10, 4, 10.5, 6], "texture": "#0"}, - "south": {"uv": [11.5, 4, 12, 6], "texture": "#0"}, - "west": {"uv": [11, 4, 11.5, 6], "texture": "#0"}, - "up": {"uv": [11, 4, 10.5, 3], "texture": "#0"}, - "down": {"uv": [11.5, 3, 11, 4], "texture": "#0"} - } - }, - { - "name": "back_left_leg", - "from": [-1, 0, 2], - "to": [-0.05, 2, 3], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -1]}, - "faces": { - "north": {"uv": [2.5, 8.5, 3, 10.5], "texture": "#0"}, - "east": {"uv": [2, 8.5, 2.5, 10.5], "texture": "#0"}, - "south": {"uv": [3.5, 8.5, 4, 10.5], "texture": "#0"}, - "west": {"uv": [3, 8.5, 3.5, 10.5], "texture": "#0"}, - "up": {"uv": [3, 8.5, 2.5, 7.5], "texture": "#0"}, - "down": {"uv": [3.5, 7.5, 3, 8.5], "texture": "#0"} - } - }, - { - "name": "back_right_leg", - "from": [0.05, 0, 2], - "to": [1, 2, 3], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -1]}, - "faces": { - "north": {"uv": [2.5, 8.5, 3, 10.5], "texture": "#0"}, - "east": {"uv": [2, 8.5, 2.5, 10.5], "texture": "#0"}, - "south": {"uv": [3.5, 8.5, 4, 10.5], "texture": "#0"}, - "west": {"uv": [3, 8.5, 3.5, 10.5], "texture": "#0"}, - "up": {"uv": [3, 8.5, 2.5, 7.5], "texture": "#0"}, - "down": {"uv": [3.5, 7.5, 3, 8.5], "texture": "#0"} - } - }, - { - "name": "tail", - "from": [-0.25, -0.95, 7], - "to": [0.25, 3.05, 7.5], - "rotation": {"angle": -45, "axis": "x", "origin": [0, -1.2, 3]}, - "faces": { - "north": {"uv": [0.25, 8, 0.5, 12], "texture": "#0"}, - "east": {"uv": [0, 8, 0.25, 12], "texture": "#0"}, - "south": {"uv": [0.75, 8, 1, 12], "texture": "#0"}, - "west": {"uv": [0.5, 8, 0.75, 12], "texture": "#0"}, - "up": {"uv": [0.5, 8, 0.25, 7.5], "texture": "#0"}, - "down": {"uv": [0.75, 7.5, 0.5, 8], "texture": "#0"} - } - }, - { - "name": "tail2", - "from": [-0.25, 0.78777, 2.26667], - "to": [0.25, 1.28777, 6.26667], - "rotation": {"angle": 22.5, "axis": "x", "origin": [0, -7.21223, 6.51667]}, - "faces": { - "north": {"uv": [1.25, 7.5, 1.5, 8], "texture": "#0"}, - "east": {"uv": [1.25, 8, 1.5, 12], "rotation": 90, "texture": "#0"}, - "south": {"uv": [1.5, 7.5, 1.75, 8], "texture": "#0"}, - "west": {"uv": [1, 12, 1.25, 8], "rotation": 90, "texture": "#0"}, - "up": {"uv": [1.75, 8, 1.5, 12], "texture": "#0"}, - "down": {"uv": [2, 12, 1.75, 8], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "head", - "origin": [8, 9, -1], - "color": 0, - "children": [0, 1, 2, 3] - }, - { - "name": "body", - "origin": [8, 12, -2], - "color": 0, - "children": [4] - }, - { - "name": "front_left_leg", - "origin": [6.9, 9.9, 3], - "color": 0, - "children": [5] - }, - { - "name": "front_right_leg", - "origin": [9.1, 9.9, 3], - "color": 0, - "children": [6] - }, - { - "name": "back_left_leg", - "origin": [6.9, 6, 13], - "color": 0, - "children": [7] - }, - { - "name": "back_right_leg", - "origin": [9.1, 6, 13], - "color": 0, - "children": [8] - }, - { - "name": "tail", - "origin": [8, 8.5, 16], - "color": 0, - "children": [9, 10] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_all_black.json b/src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_all_black.json deleted file mode 100644 index 7fe7d9e..0000000 --- a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_all_black.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/cat/cat", - "textures": { - "0": "entity/cat/all_black" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_black.json b/src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_black.json deleted file mode 100644 index e4d8c57..0000000 --- a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_black.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/cat/cat", - "textures": { - "0": "entity/cat/black" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_british_shorthair.json b/src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_british_shorthair.json deleted file mode 100644 index a954e4f..0000000 --- a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_british_shorthair.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/cat/cat", - "textures": { - "0": "entity/cat/british_shorthair" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_calico.json b/src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_calico.json deleted file mode 100644 index 52dc45b..0000000 --- a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_calico.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/cat/cat", - "textures": { - "0": "entity/cat/calico" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_jellie.json b/src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_jellie.json deleted file mode 100644 index d8a1fba..0000000 --- a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_jellie.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/cat/cat", - "textures": { - "0": "entity/cat/jellie" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_ocelot.json b/src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_ocelot.json deleted file mode 100644 index d90ac47..0000000 --- a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_ocelot.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/cat/cat", - "textures": { - "0": "entity/cat/ocelot" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_persian.json b/src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_persian.json deleted file mode 100644 index 95c487a..0000000 --- a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_persian.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/cat/cat", - "textures": { - "0": "entity/cat/persian" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_ragdoll.json b/src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_ragdoll.json deleted file mode 100644 index 6f6b1cf..0000000 --- a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_ragdoll.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/cat/cat", - "textures": { - "0": "entity/cat/ragdoll" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_red.json b/src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_red.json deleted file mode 100644 index 500ebd6..0000000 --- a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_red.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/cat/cat", - "textures": { - "0": "entity/cat/red" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_siamese.json b/src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_siamese.json deleted file mode 100644 index 156fd30..0000000 --- a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_siamese.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/cat/cat", - "textures": { - "0": "entity/cat/siamese" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_tabby.json b/src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_tabby.json deleted file mode 100644 index f26aef5..0000000 --- a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_tabby.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/cat/cat", - "textures": { - "0": "entity/cat/tabby" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_white.json b/src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_white.json deleted file mode 100644 index 9eb4be4..0000000 --- a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_adult_white.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/cat/cat", - "textures": { - "0": "entity/cat/white" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_all_black.json b/src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_all_black.json deleted file mode 100644 index e17b905..0000000 --- a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_all_black.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/cat/cat_baby", - "textures": { - "0": "entity/cat/all_black" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_black.json b/src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_black.json deleted file mode 100644 index a9a8417..0000000 --- a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_black.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/cat/cat_baby", - "textures": { - "0": "entity/cat/black" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_british_shorthair.json b/src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_british_shorthair.json deleted file mode 100644 index 8ec0e90..0000000 --- a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_british_shorthair.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/cat/cat_baby", - "textures": { - "0": "entity/cat/british_shorthair" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_calico.json b/src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_calico.json deleted file mode 100644 index e4ec2e6..0000000 --- a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_calico.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/cat/cat_baby", - "textures": { - "0": "entity/cat/calico" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_jellie.json b/src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_jellie.json deleted file mode 100644 index 888d346..0000000 --- a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_jellie.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/cat/cat_baby", - "textures": { - "0": "entity/cat/jellie" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_ocelot.json b/src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_ocelot.json deleted file mode 100644 index 68865d5..0000000 --- a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_ocelot.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/cat/cat_baby", - "textures": { - "0": "entity/cat/ocelot" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_persian.json b/src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_persian.json deleted file mode 100644 index 3cfa299..0000000 --- a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_persian.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/cat/cat_baby", - "textures": { - "0": "entity/cat/persian" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_ragdoll.json b/src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_ragdoll.json deleted file mode 100644 index b5fc037..0000000 --- a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_ragdoll.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/cat/cat_baby", - "textures": { - "0": "entity/cat/ragdoll" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_red.json b/src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_red.json deleted file mode 100644 index b7d00c2..0000000 --- a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_red.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/cat/cat_baby", - "textures": { - "0": "entity/cat/red" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_siamese.json b/src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_siamese.json deleted file mode 100644 index 72affd7..0000000 --- a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_siamese.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/cat/cat_baby", - "textures": { - "0": "entity/cat/siamese" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_tabby.json b/src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_tabby.json deleted file mode 100644 index 85b6ea1..0000000 --- a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_tabby.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/cat/cat_baby", - "textures": { - "0": "entity/cat/tabby" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_white.json b/src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_white.json deleted file mode 100644 index 33b7125..0000000 --- a/src/main/resources/assets/minecraft/models/entity/cat/color/cat_baby_white.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/cat/cat_baby", - "textures": { - "0": "entity/cat/white" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/chicken/adult.json b/src/main/resources/assets/minecraft/models/entity/chicken/adult.json deleted file mode 100644 index 58d3391..0000000 --- a/src/main/resources/assets/minecraft/models/entity/chicken/adult.json +++ /dev/null @@ -1,199 +0,0 @@ -{ - "credit": "Model by Miraculixx", - "texture_size": [64, 32], - "textures": { - "0": "entity/chicken/temperate_chicken" - }, - "elements": [ - { - "name": "head", - "from": [-2, 9, -5], - "to": [2, 15, -2], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 1]}, - "faces": { - "north": {"uv": [0.75, 1.5, 1.75, 4.5], "texture": "#0"}, - "east": {"uv": [0, 1.5, 0.75, 4.5], "texture": "#0"}, - "south": {"uv": [2.5, 1.5, 3.5, 4.5], "texture": "#0"}, - "west": {"uv": [1.75, 1.5, 2.5, 4.5], "texture": "#0"}, - "up": {"uv": [1.75, 1.5, 0.75, 0], "texture": "#0"}, - "down": {"uv": [2.75, 0, 1.75, 1.5], "texture": "#0"} - } - }, - { - "name": "bill", - "from": [-2, 11, -7], - "to": [2, 13, -5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 1]}, - "faces": { - "north": {"uv": [4, 1, 5, 2], "texture": "#0"}, - "east": {"uv": [3.5, 1, 4, 2], "texture": "#0"}, - "south": {"uv": [5.5, 1, 6.5, 2], "texture": "#0"}, - "west": {"uv": [5, 1, 5.5, 2], "texture": "#0"}, - "up": {"uv": [5, 1, 4, 0], "texture": "#0"}, - "down": {"uv": [6, 0, 5, 1], "texture": "#0"} - } - }, - { - "name": "chin", - "from": [-1, 9, -6], - "to": [1, 11, -4], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 1]}, - "faces": { - "north": {"uv": [4, 3, 4.5, 4], "texture": "#0"}, - "east": {"uv": [3.5, 3, 4, 4], "texture": "#0"}, - "south": {"uv": [5, 3, 5.5, 4], "texture": "#0"}, - "west": {"uv": [4.5, 3, 5, 4], "texture": "#0"}, - "up": {"uv": [4.5, 3, 4, 2], "texture": "#0"}, - "down": {"uv": [5, 2, 4.5, 3], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-3, 5, -3], - "to": [3, 11, 5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 1]}, - "faces": { - "north": {"uv": [1.5, 4.5, 3, 7.5], "texture": "#0"}, - "east": {"uv": [0, 7.5, 1.5, 11.5], "texture": "#0"}, - "south": {"uv": [3, 4.5, 4.5, 7.5], "texture": "#0"}, - "west": {"uv": [4.5, 7.5, 3, 11.5], "rotation": 90, "texture": "#0"}, - "up": {"uv": [6, 11.5, 4.5, 7.5], "texture": "#0"}, - "down": {"uv": [3, 7.5, 1.5, 11.5], "texture": "#0"} - } - }, - { - "name": "left_wing", - "from": [-4, 7, -2], - "to": [-3, 11, 4], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 1]}, - "faces": { - "north": {"uv": [7.5, 9.5, 7.75, 11.5], "texture": "#0"}, - "east": {"uv": [6, 9.5, 7.5, 11.5], "texture": "#0"}, - "south": {"uv": [9.25, 9.5, 9.5, 11.5], "texture": "#0"}, - "west": {"uv": [7.75, 9.5, 9.25, 11.5], "texture": "#0"}, - "up": {"uv": [7.75, 9.5, 7.5, 6.5], "texture": "#0"}, - "down": {"uv": [8, 6.5, 7.75, 9.5], "texture": "#0"} - } - }, - { - "name": "right_wing", - "from": [3, 7, -2], - "to": [4, 11, 4], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 1]}, - "faces": { - "north": {"uv": [7.5, 9.5, 7.75, 11.5], "texture": "#0"}, - "east": {"uv": [6, 9.5, 7.5, 11.5], "texture": "#0"}, - "south": {"uv": [9.25, 9.5, 9.5, 11.5], "texture": "#0"}, - "west": {"uv": [7.75, 9.5, 9.25, 11.5], "texture": "#0"}, - "up": {"uv": [7.75, 9.5, 7.5, 6.5], "texture": "#0"}, - "down": {"uv": [8, 6.5, 7.75, 9.5], "texture": "#0"} - } - }, - { - "name": "left_leg", - "from": [-3, 0, 2], - "to": [0, 5, 2], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 1]}, - "faces": { - "north": {"uv": [8.75, 1.5, 9.5, 4], "texture": "#0"}, - "east": {"uv": [6.5, 1.5, 7.25, 4], "texture": "#0"}, - "south": {"uv": [8.75, 1.5, 9.5, 4], "texture": "#0"}, - "west": {"uv": [8, 1.5, 8.75, 4], "texture": "#0"}, - "up": {"uv": [8, 1.5, 7.25, 0], "texture": "#0"}, - "down": {"uv": [8.75, 0, 8, 1.5], "texture": "#0"} - } - }, - { - "name": "left_leg_bottom", - "from": [-3, 0, -1], - "to": [0, 0, 2], - "rotation": {"angle": 0, "axis": "y", "origin": [-2, 0, 0]}, - "faces": { - "north": {"uv": [8, 1.5, 8.75, 1.5], "texture": "#0"}, - "east": {"uv": [7.25, 1.5, 8, 1.5], "texture": "#0"}, - "south": {"uv": [9.5, 1.5, 10.25, 1.5], "texture": "#0"}, - "west": {"uv": [8.75, 1.5, 9.5, 1.5], "texture": "#0"}, - "up": {"uv": [8.75, 1.5, 8, 0], "texture": "#0"}, - "down": {"uv": [8.75, 0, 8, 1.5], "texture": "#0"} - } - }, - { - "name": "right_leg", - "from": [0, 0, 2], - "to": [3, 5, 2], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 1]}, - "faces": { - "north": {"uv": [8.75, 1.5, 9.5, 4], "texture": "#0"}, - "east": {"uv": [8.75, 1.5, 8.75, 4], "texture": "#0"}, - "south": {"uv": [8.75, 1.5, 9.5, 4], "texture": "#0"}, - "west": {"uv": [9.5, 1.5, 9.5, 4], "texture": "#0"}, - "up": {"uv": [9.5, 1.5, 8.75, 1.5], "texture": "#0"}, - "down": {"uv": [10.25, 1.5, 9.5, 1.5], "texture": "#0"} - } - }, - { - "name": "left_leg_bottom", - "from": [0, 0, -1], - "to": [3, 0, 2], - "rotation": {"angle": 0, "axis": "y", "origin": [1, 0, 0]}, - "faces": { - "north": {"uv": [8, 1.5, 8.75, 1.5], "texture": "#0"}, - "east": {"uv": [7.25, 1.5, 8, 1.5], "texture": "#0"}, - "south": {"uv": [9.5, 1.5, 10.25, 1.5], "texture": "#0"}, - "west": {"uv": [8.75, 1.5, 9.5, 1.5], "texture": "#0"}, - "up": {"uv": [8.75, 1.5, 8, 0], "texture": "#0"}, - "down": {"uv": [8.75, 0, 8, 1.5], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "head", - "origin": [8, 9, 4], - "color": 0, - "children": [0] - }, - { - "name": "bill", - "origin": [8, 9, 4], - "color": 0, - "children": [1] - }, - { - "name": "chin", - "origin": [8, 9, 4], - "color": 0, - "children": [2] - }, - { - "name": "body", - "origin": [8, 8, 8], - "color": 0, - "children": [3] - }, - { - "name": "left_wing", - "origin": [4, 11, 8], - "color": 0, - "children": [4] - }, - { - "name": "right_wing", - "origin": [12, 11, 8], - "color": 0, - "children": [5] - }, - { - "name": "left_leg", - "origin": [7, 5, 9], - "color": 0, - "children": [6, 7] - }, - { - "name": "right_leg", - "origin": [10, 5, 9], - "color": 0, - "children": [8, 9] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/chicken/adult_cold.json b/src/main/resources/assets/minecraft/models/entity/chicken/adult_cold.json deleted file mode 100644 index f2c1a7d..0000000 --- a/src/main/resources/assets/minecraft/models/entity/chicken/adult_cold.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:entity/chicken/adult", - "textures": { - "0": "entity/chicken/cold_chicken" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/chicken/adult_temperate.json b/src/main/resources/assets/minecraft/models/entity/chicken/adult_temperate.json deleted file mode 100644 index 6f95b95..0000000 --- a/src/main/resources/assets/minecraft/models/entity/chicken/adult_temperate.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:entity/chicken/adult", - "textures": { - "0": "entity/chicken/temperate_chicken" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/chicken/adult_warm.json b/src/main/resources/assets/minecraft/models/entity/chicken/adult_warm.json deleted file mode 100644 index 6e80f0c..0000000 --- a/src/main/resources/assets/minecraft/models/entity/chicken/adult_warm.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:entity/chicken/adult", - "textures": { - "0": "entity/chicken/warm_chicken" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/chicken/baby.json b/src/main/resources/assets/minecraft/models/entity/chicken/baby.json deleted file mode 100644 index a93bf4d..0000000 --- a/src/main/resources/assets/minecraft/models/entity/chicken/baby.json +++ /dev/null @@ -1,199 +0,0 @@ -{ - "credit": "Model by Miraculixx", - "texture_size": [64, 32], - "textures": { - "0": "entity/chicken/temperate_chicken" - }, - "elements": [ - { - "name": "head", - "from": [-2, 5, -4.5], - "to": [2, 11, -1.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, -4, 1.5]}, - "faces": { - "north": {"uv": [0.75, 1.5, 1.75, 4.5], "texture": "#0"}, - "east": {"uv": [0, 1.5, 0.75, 4.5], "texture": "#0"}, - "south": {"uv": [2.5, 1.5, 3.5, 4.5], "texture": "#0"}, - "west": {"uv": [1.75, 1.5, 2.5, 4.5], "texture": "#0"}, - "up": {"uv": [1.75, 1.5, 0.75, 0], "texture": "#0"}, - "down": {"uv": [2.75, 0, 1.75, 1.5], "texture": "#0"} - } - }, - { - "name": "bill", - "from": [-2, 7, -6.5], - "to": [2, 9, -4.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, -4, 1.5]}, - "faces": { - "north": {"uv": [4, 1, 5, 2], "texture": "#0"}, - "east": {"uv": [3.5, 1, 4, 2], "texture": "#0"}, - "south": {"uv": [5.5, 1, 6.5, 2], "texture": "#0"}, - "west": {"uv": [5, 1, 5.5, 2], "texture": "#0"}, - "up": {"uv": [5, 1, 4, 0], "texture": "#0"}, - "down": {"uv": [6, 0, 5, 1], "texture": "#0"} - } - }, - { - "name": "chin", - "from": [-1, 5, -5.5], - "to": [1, 7, -3.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, -4, 1.5]}, - "faces": { - "north": {"uv": [4, 3, 4.5, 4], "texture": "#0"}, - "east": {"uv": [3.5, 3, 4, 4], "texture": "#0"}, - "south": {"uv": [5, 3, 5.5, 4], "texture": "#0"}, - "west": {"uv": [4.5, 3, 5, 4], "texture": "#0"}, - "up": {"uv": [4.5, 3, 4, 2], "texture": "#0"}, - "down": {"uv": [5, 2, 4.5, 3], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-1.75, 3, -2.5], - "to": [1.75, 7, 2.5], - "rotation": {"angle": 0, "axis": "y", "origin": [1, -2, 1.5]}, - "faces": { - "north": {"uv": [1.5, 4.5, 3, 7.5], "texture": "#0"}, - "east": {"uv": [0, 7.5, 1.5, 11.5], "texture": "#0"}, - "south": {"uv": [3, 4.5, 4.5, 7.5], "texture": "#0"}, - "west": {"uv": [4.5, 7.5, 3, 11.5], "rotation": 90, "texture": "#0"}, - "up": {"uv": [6, 11.5, 4.5, 7.5], "texture": "#0"}, - "down": {"uv": [3, 7.5, 1.5, 11.5], "texture": "#0"} - } - }, - { - "name": "left_wing", - "from": [-2.5, 4.25, -1.5], - "to": [-1.75, 7, 1.5], - "rotation": {"angle": 0, "axis": "y", "origin": [1.25, -2, 1.5]}, - "faces": { - "north": {"uv": [7.75, 9.5, 7.75, 10.5], "texture": "#0"}, - "east": {"uv": [7, 9.5, 7.75, 10.5], "texture": "#0"}, - "south": {"uv": [8.5, 9.5, 8.5, 10.5], "texture": "#0"}, - "west": {"uv": [7.75, 9.5, 8.5, 10.5], "texture": "#0"}, - "up": {"uv": [7.75, 9.5, 7.75, 8], "texture": "#0"}, - "down": {"uv": [7.75, 8, 7.75, 9.5], "texture": "#0"} - } - }, - { - "name": "right_wing", - "from": [1.75, 4.25, -1.5], - "to": [2.5, 7, 1.5], - "rotation": {"angle": 0, "axis": "y", "origin": [-1.25, -2, 1.5]}, - "faces": { - "north": {"uv": [7.75, 9.5, 7.75, 10.5], "texture": "#0"}, - "east": {"uv": [7, 9.5, 7.75, 10.5], "texture": "#0"}, - "south": {"uv": [8.5, 9.5, 8.5, 10.5], "texture": "#0"}, - "west": {"uv": [7.75, 9.5, 8.5, 10.5], "texture": "#0"}, - "up": {"uv": [7.75, 9.5, 7.75, 8], "texture": "#0"}, - "down": {"uv": [7.75, 8, 7.75, 9.5], "texture": "#0"} - } - }, - { - "name": "left_leg", - "from": [-2, 0, 1.5], - "to": [0, 4, 1.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [8.75, 1.5, 9.5, 4], "texture": "#0"}, - "east": {"uv": [6.5, 1.5, 7.25, 4], "texture": "#0"}, - "south": {"uv": [8.75, 1.5, 9.5, 4], "texture": "#0"}, - "west": {"uv": [8, 1.5, 8.75, 4], "texture": "#0"}, - "up": {"uv": [8, 1.5, 7.25, 0], "texture": "#0"}, - "down": {"uv": [8.75, 0, 8, 1.5], "texture": "#0"} - } - }, - { - "name": "left_leg_bottom", - "from": [-2, 0, -1.5], - "to": [0, 0, 1.5], - "rotation": {"angle": 0, "axis": "y", "origin": [-2, 0, -0.5]}, - "faces": { - "north": {"uv": [8, 1.5, 8.75, 1.5], "texture": "#0"}, - "east": {"uv": [7.25, 1.5, 8, 1.5], "texture": "#0"}, - "south": {"uv": [9.5, 1.5, 10.25, 1.5], "texture": "#0"}, - "west": {"uv": [8.75, 1.5, 9.5, 1.5], "texture": "#0"}, - "up": {"uv": [8.75, 1.5, 8, 0], "texture": "#0"}, - "down": {"uv": [8.75, 0, 8, 1.5], "texture": "#0"} - } - }, - { - "name": "right_leg", - "from": [0, 0, 1.5], - "to": [2, 4, 1.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [8.75, 1.5, 9.5, 4], "texture": "#0"}, - "east": {"uv": [8.75, 1.5, 8.75, 4], "texture": "#0"}, - "south": {"uv": [8.75, 1.5, 9.5, 4], "texture": "#0"}, - "west": {"uv": [9.5, 1.5, 9.5, 4], "texture": "#0"}, - "up": {"uv": [9.5, 1.5, 8.75, 1.5], "texture": "#0"}, - "down": {"uv": [10.25, 1.5, 9.5, 1.5], "texture": "#0"} - } - }, - { - "name": "left_leg_bottom", - "from": [0, 0, -1.5], - "to": [2, 0, 1.5], - "rotation": {"angle": 0, "axis": "y", "origin": [1, 0, -0.5]}, - "faces": { - "north": {"uv": [8, 1.5, 8.75, 1.5], "texture": "#0"}, - "east": {"uv": [7.25, 1.5, 8, 1.5], "texture": "#0"}, - "south": {"uv": [9.5, 1.5, 10.25, 1.5], "texture": "#0"}, - "west": {"uv": [8.75, 1.5, 9.5, 1.5], "texture": "#0"}, - "up": {"uv": [8.75, 1.5, 8, 0], "texture": "#0"}, - "down": {"uv": [8.75, 0, 8, 1.5], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "head", - "origin": [8, 9, 4], - "color": 0, - "children": [0] - }, - { - "name": "bill", - "origin": [8, 9, 4], - "color": 0, - "children": [1] - }, - { - "name": "chin", - "origin": [8, 9, 4], - "color": 0, - "children": [2] - }, - { - "name": "body", - "origin": [8, 8, 8], - "color": 0, - "children": [3] - }, - { - "name": "left_wing", - "origin": [4, 11, 8], - "color": 0, - "children": [4] - }, - { - "name": "right_wing", - "origin": [12, 11, 8], - "color": 0, - "children": [5] - }, - { - "name": "left_leg", - "origin": [7, 5, 9], - "color": 0, - "children": [6, 7] - }, - { - "name": "right_leg", - "origin": [10, 5, 9], - "color": 0, - "children": [8, 9] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/chicken/baby_cold.json b/src/main/resources/assets/minecraft/models/entity/chicken/baby_cold.json deleted file mode 100644 index dc4bd63..0000000 --- a/src/main/resources/assets/minecraft/models/entity/chicken/baby_cold.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:entity/chicken/baby", - "textures": { - "0": "entity/chicken/cold_chicken" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/chicken/baby_temperate.json b/src/main/resources/assets/minecraft/models/entity/chicken/baby_temperate.json deleted file mode 100644 index a172512..0000000 --- a/src/main/resources/assets/minecraft/models/entity/chicken/baby_temperate.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:entity/chicken/baby", - "textures": { - "0": "entity/chicken/temperate_chicken" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/chicken/baby_warm.json b/src/main/resources/assets/minecraft/models/entity/chicken/baby_warm.json deleted file mode 100644 index 82be5da..0000000 --- a/src/main/resources/assets/minecraft/models/entity/chicken/baby_warm.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:entity/chicken/baby", - "textures": { - "0": "entity/chicken/warm_chicken" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/cod/cod.json b/src/main/resources/assets/minecraft/models/entity/cod/cod.json deleted file mode 100644 index f8339cd..0000000 --- a/src/main/resources/assets/minecraft/models/entity/cod/cod.json +++ /dev/null @@ -1,153 +0,0 @@ -{ - "credit": "Model by Miraculixx", - "texture_size": [32, 32], - "textures": { - "0": "entity/fish/cod" - }, - "elements": [ - { - "name": "body", - "from": [-1, 0, -1.8], - "to": [1, 4, 5.2], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -1.8]}, - "faces": { - "north": {"uv": [3.5, 3.5, 4.5, 5.5], "texture": "#0"}, - "east": {"uv": [0, 3.5, 3.5, 5.5], "texture": "#0"}, - "south": {"uv": [8, 3.5, 9, 5.5], "texture": "#0"}, - "west": {"uv": [4.5, 3.5, 8, 5.5], "texture": "#0"}, - "up": {"uv": [4.5, 3.5, 3.5, 0], "texture": "#0"}, - "down": {"uv": [5.5, 0, 4.5, 3.5], "texture": "#0"} - } - }, - { - "name": "right_fin", - "from": [1, 1, -2.8], - "to": [3, 1, -0.8], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -1.8]}, - "faces": { - "north": {"uv": [13, 1.5, 14, 1.5], "texture": "#0"}, - "east": {"uv": [12, 1.5, 13, 1.5], "texture": "#0"}, - "south": {"uv": [15, 1.5, 16, 1.5], "texture": "#0"}, - "west": {"uv": [14, 1.5, 15, 1.5], "texture": "#0"}, - "up": {"uv": [14, 1.5, 13, 0.5], "texture": "#0"}, - "down": {"uv": [14, 0.5, 13, 1.5], "texture": "#0"} - } - }, - { - "name": "left_fin", - "from": [-3, 1, -2.8], - "to": [-1, 1, -0.8], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -1.8]}, - "faces": { - "north": {"uv": [13, 3, 14, 3], "texture": "#0"}, - "east": {"uv": [12, 3, 13, 3], "texture": "#0"}, - "south": {"uv": [15, 3, 16, 3], "texture": "#0"}, - "west": {"uv": [14, 3, 15, 3], "texture": "#0"}, - "up": {"uv": [14, 3, 13, 2], "texture": "#0"}, - "down": {"uv": [14, 2, 13, 3], "texture": "#0"} - } - }, - { - "name": "head", - "from": [-1, 0, -4.8], - "to": [1, 4, -1.8], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -1.8]}, - "faces": { - "north": {"uv": [7, 1.5, 8, 3.5], "texture": "#0"}, - "east": {"uv": [5.5, 1.5, 7, 3.5], "texture": "#0"}, - "south": {"uv": [9.5, 1.5, 10.5, 3.5], "texture": "#0"}, - "west": {"uv": [8, 1.5, 9.5, 3.5], "texture": "#0"}, - "up": {"uv": [8, 1.5, 7, 0], "texture": "#0"}, - "down": {"uv": [9, 0, 8, 1.5], "texture": "#0"} - } - }, - { - "name": "nose", - "from": [-1, 1, -5.8], - "to": [1, 4, -4.8], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -1.8]}, - "faces": { - "north": {"uv": [0.5, 0.5, 1.5, 2], "texture": "#0"}, - "east": {"uv": [0, 0.5, 0.5, 2], "texture": "#0"}, - "south": {"uv": [2, 0.5, 3, 2], "texture": "#0"}, - "west": {"uv": [1.5, 0.5, 2, 2], "texture": "#0"}, - "up": {"uv": [1.5, 0.5, 0.5, 0], "texture": "#0"}, - "down": {"uv": [2.5, 0, 1.5, 0.5], "texture": "#0"} - } - }, - { - "name": "fin_back", - "from": [0, 4, -2.8], - "to": [0, 5, 3.2], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -1.8]}, - "faces": { - "north": {"uv": [13, 0, 13, 0.5], "texture": "#0"}, - "east": {"uv": [13, 0, 16, 0.5], "texture": "#0"}, - "south": {"uv": [16, 0, 16, 0.5], "texture": "#0"}, - "west": {"uv": [13, 0, 16, 0.5], "rotation": 180, "texture": "#0"}, - "up": {"uv": [13, 0, 13, -3], "texture": "#0"}, - "down": {"uv": [13, -3, 13, 0], "texture": "#0"} - } - }, - { - "name": "tail", - "from": [0, 0, 5.2], - "to": [0, 4, 9.2], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -1.8]}, - "faces": { - "north": {"uv": [13, 3.5, 13, 5.5], "texture": "#0"}, - "east": {"uv": [13, 3.5, 15, 5.5], "rotation": 180, "texture": "#0"}, - "south": {"uv": [15, 3.5, 15, 5.5], "texture": "#0"}, - "west": {"uv": [13, 3.5, 15, 5.5], "texture": "#0"}, - "up": {"uv": [13, 3.5, 13, 1.5], "texture": "#0"}, - "down": {"uv": [13, 1.5, 13, 3.5], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "body", - "origin": [8, 2, 8], - "color": 0, - "children": [ - 0, - { - "name": "right_fin", - "origin": [9, 1, 8], - "color": 0, - "children": [1] - }, - { - "name": "left_fin", - "origin": [7, 1, 8], - "color": 0, - "children": [2] - } - ] - }, - { - "name": "head", - "origin": [8, 2, 8], - "color": 0, - "children": [3] - }, - { - "name": "nose", - "origin": [8, 2, 5], - "color": 0, - "children": [4] - }, - { - "name": "fin_back", - "origin": [8, 4, 8], - "color": 0, - "children": [5] - }, - { - "name": "tail", - "origin": [8, 2, 15], - "color": 0, - "children": [6] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/copper_golem/copper_golem_statue_alive.json b/src/main/resources/assets/minecraft/models/entity/copper_golem/copper_golem_statue_alive.json deleted file mode 100644 index e98cabd..0000000 --- a/src/main/resources/assets/minecraft/models/entity/copper_golem/copper_golem_statue_alive.json +++ /dev/null @@ -1,140 +0,0 @@ -{ - "format_version": "1.21.11", - "textures": { - "1": "entity/copper_golem/copper_golem_eyes", - "golem": "entity/copper_golem/copper_golem" - }, - "elements": [ - { - "from": [0, 0, -2], - "to": [4, 5, 2], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 2.5, 0]}, - "faces": { - "north": {"uv": [1, 7.75, 2, 9], "texture": "#golem"}, - "east": {"uv": [0, 7.75, 1, 9], "texture": "#golem"}, - "south": {"uv": [3, 7.75, 4, 9], "texture": "#golem"}, - "west": {"uv": [2, 7.75, 3, 9], "texture": "#golem"}, - "up": {"uv": [1, 6.75, 2, 7.75], "texture": "#golem"}, - "down": {"uv": [2, 6.75, 3, 7.75], "texture": "#golem"} - } - }, - { - "from": [-4, 0, -2], - "to": [0, 5, 2], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 2.5, 0]}, - "faces": { - "north": {"uv": [5, 7.75, 6, 9], "texture": "#golem"}, - "east": {"uv": [4, 7.75, 5, 9], "texture": "#golem"}, - "south": {"uv": [7, 7.75, 8, 9], "texture": "#golem"}, - "west": {"uv": [6, 7.75, 7, 9], "texture": "#golem"}, - "up": {"uv": [5, 6.75, 6, 7.75], "texture": "#golem"}, - "down": {"uv": [6, 6.75, 7, 7.75], "texture": "#golem"} - } - }, - { - "from": [4, 2, -2], - "to": [7, 12, 2], - "rotation": {"angle": 0, "axis": "y", "origin": [4, 4.5, 0]}, - "faces": { - "north": {"uv": [10, 5, 10.75, 7.5], "texture": "#golem"}, - "east": {"uv": [9, 5, 10, 7.5], "texture": "#golem"}, - "south": {"uv": [11.75, 5, 12.5, 7.5], "texture": "#golem"}, - "west": {"uv": [10.75, 5, 11.75, 7.5], "texture": "#golem"}, - "up": {"uv": [10, 4, 10.75, 5], "texture": "#golem"}, - "down": {"uv": [11.5, 4, 10.75, 5], "texture": "#golem"} - } - }, - { - "from": [-7, 2, -2], - "to": [-4, 12, 2], - "rotation": {"angle": 0, "axis": "y", "origin": [-7, 4.5, 0]}, - "faces": { - "north": {"uv": [13.5, 5, 14.25, 7.5], "texture": "#golem"}, - "east": {"uv": [12.5, 5, 13.5, 7.5], "texture": "#golem"}, - "south": {"uv": [15.25, 5, 16, 7.5], "texture": "#golem"}, - "west": {"uv": [14.25, 5, 15.25, 7.5], "texture": "#golem"}, - "up": {"uv": [13.5, 4, 14.25, 5], "texture": "#golem"}, - "down": {"uv": [15, 4, 14.25, 5], "texture": "#golem"} - } - }, - { - "from": [-4, 5, -3], - "to": [4, 11, 3], - "rotation": {"angle": 0, "axis": "y", "origin": [-4, 5, 1]}, - "faces": { - "north": {"uv": [1.5, 5.25, 3.5, 6.75], "texture": "#golem"}, - "east": {"uv": [0, 5.25, 1.5, 6.75], "texture": "#golem"}, - "south": {"uv": [5, 5.25, 7, 6.75], "texture": "#golem"}, - "west": {"uv": [3.5, 5.25, 5, 6.75], "texture": "#golem"}, - "up": {"uv": [1.5, 3.75, 3.5, 5.25], "texture": "#golem"}, - "down": {"uv": [3.5, 3.75, 5.5, 5.25], "texture": "#golem"} - } - }, - { - "from": [-4.04, 10.975, -5.05], - "to": [4.04, 16.025, 5.05], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 10.975, 0]}, - "faces": { - "north": {"uv": [2.5, 2.5, 4.5, 3.75], "texture": "#1"}, - "east": {"uv": [0, 2.5, 2.5, 3.75], "texture": "#1"}, - "south": {"uv": [7, 2.5, 9, 3.75], "texture": "#1"}, - "west": {"uv": [4.5, 2.5, 7, 3.75], "texture": "#1"}, - "up": {"uv": [2.5, 0, 4.5, 2.5], "texture": "#1"}, - "down": {"uv": [4.5, 0, 6.5, 2.5], "texture": "#1"} - } - }, - { - "name": "eyes", - "from": [-4, 11, -5], - "to": [4, 16, 5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 11, 0]}, - "faces": { - "north": {"uv": [2.5, 2.5, 4.5, 3.75], "texture": "#golem"}, - "east": {"uv": [0, 2.5, 2.5, 3.75], "texture": "#golem"}, - "south": {"uv": [7, 2.5, 9, 3.75], "texture": "#golem"}, - "west": {"uv": [4.5, 2.5, 7, 3.75], "texture": "#golem"}, - "up": {"uv": [2.5, 0, 4.5, 2.5], "texture": "#golem"}, - "down": {"uv": [4.5, 0, 6.5, 2.5], "texture": "#golem"} - } - }, - { - "from": [-1, 10, -6], - "to": [1, 13, -4], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 11, 0]}, - "faces": { - "north": {"uv": [14.5, 0.5, 15, 1.25], "texture": "#golem"}, - "east": {"uv": [14, 0.5, 14.5, 1.25], "texture": "#golem"}, - "south": {"uv": [15.5, 0.5, 16, 1.25], "texture": "#golem"}, - "west": {"uv": [15, 0.5, 15.5, 1.25], "texture": "#golem"}, - "up": {"uv": [14.5, 0, 15, 0.5], "texture": "#golem"}, - "down": {"uv": [15, 0, 15.5, 0.5], "texture": "#golem"} - } - }, - { - "from": [-1, 16, -1], - "to": [1, 20, 1], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 16, 0]}, - "faces": { - "north": {"uv": [9.75, 2.5, 10.25, 3.5], "texture": "#golem"}, - "east": {"uv": [9.25, 2.5, 9.75, 3.5], "texture": "#golem"}, - "south": {"uv": [10.75, 2.5, 11.25, 3.5], "texture": "#golem"}, - "west": {"uv": [10.25, 2.5, 10.75, 3.5], "texture": "#golem"}, - "up": {"uv": [9.75, 2, 10.25, 2.5], "texture": "#golem"}, - "down": {"uv": [10.25, 2, 10.75, 2.5], "texture": "#golem"} - } - }, - { - "from": [-2, 20, -2], - "to": [2, 24, 2], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 20, 0]}, - "faces": { - "north": {"uv": [10.25, 1, 11.25, 2], "texture": "#golem"}, - "east": {"uv": [9.25, 1, 10.25, 2], "texture": "#golem"}, - "south": {"uv": [12.25, 1, 13.25, 2], "texture": "#golem"}, - "west": {"uv": [11.25, 1, 12.25, 2], "texture": "#golem"}, - "up": {"uv": [10.25, 0, 11.25, 1], "texture": "#golem"}, - "down": {"uv": [11.25, 0, 12.25, 1], "texture": "#golem"} - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/copper_golem/exposed_copper_golem_statue_alive.json b/src/main/resources/assets/minecraft/models/entity/copper_golem/exposed_copper_golem_statue_alive.json deleted file mode 100644 index cccd8e8..0000000 --- a/src/main/resources/assets/minecraft/models/entity/copper_golem/exposed_copper_golem_statue_alive.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "entity/copper_golem/copper_golem_statue_alive", - "textures": { - "golem": "entity/copper_golem/exposed_copper_golem", - "1": "entity/copper_golem/exposed_copper_golem_eyes" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/copper_golem/oxidized_copper_golem_statue_alive.json b/src/main/resources/assets/minecraft/models/entity/copper_golem/oxidized_copper_golem_statue_alive.json deleted file mode 100644 index 5c345c8..0000000 --- a/src/main/resources/assets/minecraft/models/entity/copper_golem/oxidized_copper_golem_statue_alive.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "entity/copper_golem/copper_golem_statue_alive", - "textures": { - "golem": "entity/copper_golem/oxidized_copper_golem", - "1": "entity/copper_golem/oxidized_copper_golem_eyes" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/copper_golem/weathered_copper_golem_statue_alive.json b/src/main/resources/assets/minecraft/models/entity/copper_golem/weathered_copper_golem_statue_alive.json deleted file mode 100644 index d93481c..0000000 --- a/src/main/resources/assets/minecraft/models/entity/copper_golem/weathered_copper_golem_statue_alive.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "entity/copper_golem/copper_golem_statue_alive", - "textures": { - "golem": "entity/copper_golem/weathered_copper_golem", - "1": "entity/copper_golem/weathered_copper_golem_eyes" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/cow/adult.json b/src/main/resources/assets/minecraft/models/entity/cow/adult.json deleted file mode 100644 index 7b23bda..0000000 --- a/src/main/resources/assets/minecraft/models/entity/cow/adult.json +++ /dev/null @@ -1,180 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Made by Miraculixx", - "texture_size": [64, 64], - "textures": { - }, - "elements": [ - { - "name": "head", - "from": [-4, 16, -14], - "to": [4, 24, -8], - "faces": { - "north": {"uv": [1.5, 1.5, 3.5, 3.5], "texture": "#0"}, - "east": {"uv": [0, 1.5, 1.5, 3.5], "texture": "#0"}, - "south": {"uv": [5, 1.5, 7, 3.5], "texture": "#0"}, - "west": {"uv": [3.5, 1.5, 5, 3.5], "texture": "#0"}, - "up": {"uv": [3.5, 1.5, 1.5, 0], "texture": "#0"}, - "down": {"uv": [5.5, 0, 3.5, 1.5], "texture": "#0"} - } - }, - { - "name": "head", - "from": [-5, 22, -13], - "to": [-4, 25, -12], - "faces": { - "north": {"uv": [5.75, 0.25, 6, 1], "texture": "#0"}, - "east": {"uv": [5.5, 0.25, 5.75, 1], "texture": "#0"}, - "south": {"uv": [6.25, 0.25, 6.5, 1], "texture": "#0"}, - "west": {"uv": [6, 0.25, 6.25, 1], "texture": "#0"}, - "up": {"uv": [6, 0.25, 5.75, 0], "texture": "#0"}, - "down": {"uv": [6.25, 0, 6, 0.25], "texture": "#0"} - } - }, - { - "name": "head", - "from": [4, 22, -13], - "to": [5, 25, -12], - "faces": { - "north": {"uv": [5.75, 0.25, 6, 1], "texture": "#0"}, - "east": {"uv": [5.5, 0.25, 5.75, 1], "texture": "#0"}, - "south": {"uv": [6.25, 0.25, 6.5, 1], "texture": "#0"}, - "west": {"uv": [6, 0.25, 6.25, 1], "texture": "#0"}, - "up": {"uv": [6, 0.25, 5.75, 0], "texture": "#0"}, - "down": {"uv": [6.25, 0, 6, 0.25], "texture": "#0"} - } - }, - { - "name": "head", - "from": [-3, 16, -15], - "to": [3, 19, -14], - "faces": { - "north": {"uv": [0.5, 8.5, 2, 9.25], "texture": "#0"}, - "east": {"uv": [0.25, 8.5, 0.5, 9.25], "texture": "#0"}, - "south": {"uv": [2.25, 8.5, 3.75, 9.25], "texture": "#0"}, - "west": {"uv": [2, 8.5, 2.25, 9.25], "texture": "#0"}, - "up": {"uv": [2, 8.5, 0.5, 8.25], "texture": "#0"}, - "down": {"uv": [3.5, 8.25, 2, 8.5], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-6, 10, -8], - "to": [6, 28, 2], - "rotation": {"x": -90, "y": 0, "z": 0, "origin": [0, 20, 0]}, - "faces": { - "north": {"uv": [7, 3.5, 10, 8], "texture": "#0"}, - "east": {"uv": [4.5, 3.5, 7, 8], "texture": "#0"}, - "south": {"uv": [12.5, 3.5, 15.5, 8], "texture": "#0"}, - "west": {"uv": [10, 3.5, 12.5, 8], "texture": "#0"}, - "up": {"uv": [10, 3.5, 7, 1], "texture": "#0"}, - "down": {"uv": [13, 1, 10, 3.5], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-2, -1, -8], - "to": [2, 5, -7], - "rotation": {"x": -90, "y": 0, "z": 0, "origin": [0, 14, -5]}, - "faces": { - "north": {"uv": [13.25, 0.25, 14.25, 1.75], "texture": "#0"}, - "east": {"uv": [13, 0.25, 13.25, 1.75], "texture": "#0"}, - "south": {"uv": [14.5, 0.25, 15.5, 1.75], "texture": "#0"}, - "west": {"uv": [14.25, 0.25, 14.5, 1.75], "texture": "#0"}, - "up": {"uv": [14.25, 0.25, 13.25, 0], "texture": "#0"}, - "down": {"uv": [15.25, 0, 14.25, 0.25], "texture": "#0"} - } - }, - { - "name": "leg1", - "from": [2, 0, 5], - "to": [6, 12, 9], - "faces": { - "north": {"uv": [1, 5, 2, 8], "texture": "#0"}, - "east": {"uv": [0, 5, 1, 8], "texture": "#0"}, - "south": {"uv": [3, 5, 4, 8], "texture": "#0"}, - "west": {"uv": [2, 5, 3, 8], "texture": "#0"}, - "up": {"uv": [2, 5, 1, 4], "texture": "#0"}, - "down": {"uv": [3, 4, 2, 5], "texture": "#0"} - } - }, - { - "name": "leg2", - "from": [-6, 0, 5], - "to": [-2, 12, 9], - "faces": { - "north": {"uv": [1, 5, 2, 8], "texture": "#0"}, - "east": {"uv": [0, 5, 1, 8], "texture": "#0"}, - "south": {"uv": [3, 5, 4, 8], "texture": "#0"}, - "west": {"uv": [2, 5, 3, 8], "texture": "#0"}, - "up": {"uv": [2, 5, 1, 4], "texture": "#0"}, - "down": {"uv": [3, 4, 2, 5], "texture": "#0"} - } - }, - { - "name": "leg3", - "from": [2, 0, -7], - "to": [6, 12, -3], - "faces": { - "north": {"uv": [1, 5, 2, 8], "texture": "#0"}, - "east": {"uv": [0, 5, 1, 8], "texture": "#0"}, - "south": {"uv": [3, 5, 4, 8], "texture": "#0"}, - "west": {"uv": [2, 5, 3, 8], "texture": "#0"}, - "up": {"uv": [2, 5, 1, 4], "texture": "#0"}, - "down": {"uv": [3, 4, 2, 5], "texture": "#0"} - } - }, - { - "name": "leg4", - "from": [-6, 0, -7], - "to": [-2, 12, -3], - "faces": { - "north": {"uv": [1, 5, 2, 8], "texture": "#0"}, - "east": {"uv": [0, 5, 1, 8], "texture": "#0"}, - "south": {"uv": [3, 5, 4, 8], "texture": "#0"}, - "west": {"uv": [2, 5, 3, 8], "texture": "#0"}, - "up": {"uv": [2, 5, 1, 4], "texture": "#0"}, - "down": {"uv": [3, 4, 2, 5], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "head", - "origin": [0, 20, -8], - "color": 0, - "children": [0, 1, 2, 3] - }, - { - "name": "body", - "origin": [0, 19, 2], - "rotation": [-90, 0, 0], - "color": 0, - "children": [4, 5] - }, - { - "name": "leg1", - "origin": [4, 12, 7], - "color": 0, - "children": [6] - }, - { - "name": "leg2", - "origin": [-4, 12, 7], - "color": 0, - "children": [7] - }, - { - "name": "leg3", - "origin": [4, 12, -6], - "color": 0, - "children": [8] - }, - { - "name": "leg4", - "origin": [-4, 12, -6], - "color": 0, - "children": [9] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/cow/adult_cold.json b/src/main/resources/assets/minecraft/models/entity/cow/adult_cold.json deleted file mode 100644 index 8afb754..0000000 --- a/src/main/resources/assets/minecraft/models/entity/cow/adult_cold.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:entity/cow/adult", - "textures": { - "0": "entity/cow/cold_cow" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/cow/adult_temperate.json b/src/main/resources/assets/minecraft/models/entity/cow/adult_temperate.json deleted file mode 100644 index 51e6265..0000000 --- a/src/main/resources/assets/minecraft/models/entity/cow/adult_temperate.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:entity/cow/adult", - "textures": { - "0": "entity/cow/temperate_cow" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/cow/adult_warm.json b/src/main/resources/assets/minecraft/models/entity/cow/adult_warm.json deleted file mode 100644 index b9d368c..0000000 --- a/src/main/resources/assets/minecraft/models/entity/cow/adult_warm.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:entity/cow/adult", - "textures": { - "0": "entity/cow/warm_cow" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/cow/baby.json b/src/main/resources/assets/minecraft/models/entity/cow/baby.json deleted file mode 100644 index 23b9c77..0000000 --- a/src/main/resources/assets/minecraft/models/entity/cow/baby.json +++ /dev/null @@ -1,188 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Made by Miraculixx", - "texture_size": [64, 64], - "textures": { - }, - "elements": [ - { - "name": "head", - "from": [-4, 6, -9], - "to": [4, 14, -3], - "rotation": {"angle": 0, "axis": "y", "origin": [0, -10, 5]}, - "faces": { - "north": {"uv": [1.5, 1.5, 3.5, 3.5], "texture": "#0"}, - "east": {"uv": [0, 1.5, 1.5, 3.5], "texture": "#0"}, - "south": {"uv": [5, 1.5, 7, 3.5], "texture": "#0"}, - "west": {"uv": [3.5, 1.5, 5, 3.5], "texture": "#0"}, - "up": {"uv": [3.5, 1.5, 1.5, 0], "texture": "#0"}, - "down": {"uv": [5.5, 0, 3.5, 1.5], "texture": "#0"} - } - }, - { - "name": "head", - "from": [-5, 12, -8], - "to": [-4, 15, -7], - "rotation": {"angle": 0, "axis": "y", "origin": [0, -10, 5]}, - "faces": { - "north": {"uv": [5.75, 0.25, 6, 1], "texture": "#0"}, - "east": {"uv": [5.5, 0.25, 5.75, 1], "texture": "#0"}, - "south": {"uv": [6.25, 0.25, 6.5, 1], "texture": "#0"}, - "west": {"uv": [6, 0.25, 6.25, 1], "texture": "#0"}, - "up": {"uv": [6, 0.25, 5.75, 0], "texture": "#0"}, - "down": {"uv": [6.25, 0, 6, 0.25], "texture": "#0"} - } - }, - { - "name": "head", - "from": [4, 12, -8], - "to": [5, 15, -7], - "rotation": {"angle": 0, "axis": "y", "origin": [0, -10, 5]}, - "faces": { - "north": {"uv": [5.75, 0.25, 6, 1], "texture": "#0"}, - "east": {"uv": [5.5, 0.25, 5.75, 1], "texture": "#0"}, - "south": {"uv": [6.25, 0.25, 6.5, 1], "texture": "#0"}, - "west": {"uv": [6, 0.25, 6.25, 1], "texture": "#0"}, - "up": {"uv": [6, 0.25, 5.75, 0], "texture": "#0"}, - "down": {"uv": [6.25, 0, 6, 0.25], "texture": "#0"} - } - }, - { - "name": "head", - "from": [-3, 6, -10], - "to": [3, 9, -9], - "rotation": {"angle": 0, "axis": "y", "origin": [0, -10, 5]}, - "faces": { - "north": {"uv": [0.5, 8.5, 2, 9.25], "texture": "#0"}, - "east": {"uv": [0.25, 8.5, 0.5, 9.25], "texture": "#0"}, - "south": {"uv": [2.25, 8.5, 3.75, 9.25], "texture": "#0"}, - "west": {"uv": [2, 8.5, 2.25, 9.25], "texture": "#0"}, - "up": {"uv": [2, 8.5, 0.5, 8.25], "texture": "#0"}, - "down": {"uv": [3.5, 8.25, 2, 8.5], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-3, 14.5, -12.5], - "to": [3, 23.5, -7.5], - "rotation": {"x": -90, "y": 0, "z": 0, "origin": [0, 19.5, 1]}, - "faces": { - "north": {"uv": [7, 3.5, 10, 8], "texture": "#0"}, - "east": {"uv": [4.5, 3.5, 7, 8], "texture": "#0"}, - "south": {"uv": [12.5, 3.5, 15.5, 8], "texture": "#0"}, - "west": {"uv": [10, 3.5, 12.5, 8], "texture": "#0"}, - "up": {"uv": [10, 3.5, 7, 1], "texture": "#0"}, - "down": {"uv": [13, 1, 10, 3.5], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-1, 9, -12.5], - "to": [1, 12, -12], - "rotation": {"x": -90, "y": 0, "z": 0, "origin": [0, 16.5, -1.5]}, - "faces": { - "north": {"uv": [13.25, 0.25, 14.25, 1.75], "texture": "#0"}, - "east": {"uv": [13, 0.25, 13.25, 1.75], "texture": "#0"}, - "south": {"uv": [14.5, 0.25, 15.5, 1.75], "texture": "#0"}, - "west": {"uv": [14.25, 0.25, 14.5, 1.75], "texture": "#0"}, - "up": {"uv": [14.25, 0.25, 13.25, 0], "texture": "#0"}, - "down": {"uv": [15.25, 0, 14.25, 0.25], "texture": "#0"} - } - }, - { - "name": "leg1", - "from": [1, 0, 3.5], - "to": [3, 6, 5.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 1]}, - "faces": { - "north": {"uv": [1, 5, 2, 8], "texture": "#0"}, - "east": {"uv": [0, 5, 1, 8], "texture": "#0"}, - "south": {"uv": [3, 5, 4, 8], "texture": "#0"}, - "west": {"uv": [2, 5, 3, 8], "texture": "#0"}, - "up": {"uv": [2, 5, 1, 4], "texture": "#0"}, - "down": {"uv": [3, 4, 2, 5], "texture": "#0"} - } - }, - { - "name": "leg2", - "from": [-3, 0, 3.5], - "to": [-1, 6, 5.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 1]}, - "faces": { - "north": {"uv": [1, 5, 2, 8], "texture": "#0"}, - "east": {"uv": [0, 5, 1, 8], "texture": "#0"}, - "south": {"uv": [3, 5, 4, 8], "texture": "#0"}, - "west": {"uv": [2, 5, 3, 8], "texture": "#0"}, - "up": {"uv": [2, 5, 1, 4], "texture": "#0"}, - "down": {"uv": [3, 4, 2, 5], "texture": "#0"} - } - }, - { - "name": "leg3", - "from": [1, 0, -2.5], - "to": [3, 6, -0.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 1]}, - "faces": { - "north": {"uv": [1, 5, 2, 8], "texture": "#0"}, - "east": {"uv": [0, 5, 1, 8], "texture": "#0"}, - "south": {"uv": [3, 5, 4, 8], "texture": "#0"}, - "west": {"uv": [2, 5, 3, 8], "texture": "#0"}, - "up": {"uv": [2, 5, 1, 4], "texture": "#0"}, - "down": {"uv": [3, 4, 2, 5], "texture": "#0"} - } - }, - { - "name": "leg4", - "from": [-3, 0, -2.5], - "to": [-1, 6, -0.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 1]}, - "faces": { - "north": {"uv": [1, 5, 2, 8], "texture": "#0"}, - "east": {"uv": [0, 5, 1, 8], "texture": "#0"}, - "south": {"uv": [3, 5, 4, 8], "texture": "#0"}, - "west": {"uv": [2, 5, 3, 8], "texture": "#0"}, - "up": {"uv": [2, 5, 1, 4], "texture": "#0"}, - "down": {"uv": [3, 4, 2, 5], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "head", - "origin": [0, 20, -8], - "color": 0, - "children": [0, 1, 2, 3] - }, - { - "name": "body", - "origin": [0, 19, 2], - "rotation": [-90, 0, 0], - "color": 0, - "children": [4, 5] - }, - { - "name": "leg1", - "origin": [4, 12, 7], - "color": 0, - "children": [6] - }, - { - "name": "leg2", - "origin": [-4, 12, 7], - "color": 0, - "children": [7] - }, - { - "name": "leg3", - "origin": [4, 12, -6], - "color": 0, - "children": [8] - }, - { - "name": "leg4", - "origin": [-4, 12, -6], - "color": 0, - "children": [9] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/cow/baby_cold.json b/src/main/resources/assets/minecraft/models/entity/cow/baby_cold.json deleted file mode 100644 index a30d40e..0000000 --- a/src/main/resources/assets/minecraft/models/entity/cow/baby_cold.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:entity/cow/baby", - "textures": { - "0": "entity/cow/cold_cow" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/cow/baby_temperate.json b/src/main/resources/assets/minecraft/models/entity/cow/baby_temperate.json deleted file mode 100644 index eb6e7c9..0000000 --- a/src/main/resources/assets/minecraft/models/entity/cow/baby_temperate.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:entity/cow/baby", - "textures": { - "0": "entity/cow/temperate_cow" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/cow/baby_warm.json b/src/main/resources/assets/minecraft/models/entity/cow/baby_warm.json deleted file mode 100644 index 45b68a1..0000000 --- a/src/main/resources/assets/minecraft/models/entity/cow/baby_warm.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:entity/cow/baby", - "textures": { - "0": "entity/cow/warm_cow" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/dolphin/adult.json b/src/main/resources/assets/minecraft/models/entity/dolphin/adult.json deleted file mode 100644 index 97e5971..0000000 --- a/src/main/resources/assets/minecraft/models/entity/dolphin/adult.json +++ /dev/null @@ -1,163 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Made by Miraculixx", - "texture_size": [64, 64], - "textures": { - "0": "entity/dolphin" - }, - "elements": [ - { - "name": "head", - "from": [-4, 0, -9], - "to": [4, 7, -3], - "faces": { - "north": {"uv": [1.5, 1.5, 3.5, 3.25], "texture": "#0"}, - "east": {"uv": [0, 1.5, 1.5, 3.25], "texture": "#0"}, - "south": {"uv": [5, 1.5, 7, 3.25], "texture": "#0"}, - "west": {"uv": [3.5, 1.5, 5, 3.25], "texture": "#0"}, - "up": {"uv": [3.5, 1.5, 1.5, 0], "texture": "#0"}, - "down": {"uv": [5.5, 0, 3.5, 1.5], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-1, 0, -13], - "to": [1, 2, -9], - "faces": { - "north": {"uv": [1, 4.25, 1.5, 4.75], "texture": "#0"}, - "east": {"uv": [0, 4.25, 1, 4.75], "texture": "#0"}, - "south": {"uv": [2.5, 4.25, 3, 4.75], "texture": "#0"}, - "west": {"uv": [1.5, 4.25, 2.5, 4.75], "texture": "#0"}, - "up": {"uv": [1.5, 4.25, 1, 3.25], "texture": "#0"}, - "down": {"uv": [2, 3.25, 1.5, 4.25], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-4, 0, -3], - "to": [4, 7, 10], - "faces": { - "north": {"uv": [8.75, 3.25, 10.75, 5], "texture": "#0"}, - "east": {"uv": [5.5, 3.25, 8.75, 5], "texture": "#0"}, - "south": {"uv": [14, 3.25, 16, 5], "texture": "#0"}, - "west": {"uv": [10.75, 3.25, 14, 5], "texture": "#0"}, - "up": {"uv": [10.75, 3.25, 8.75, 0], "texture": "#0"}, - "down": {"uv": [12.75, 0, 10.75, 3.25], "texture": "#0"} - } - }, - { - "name": "tail", - "from": [-2, 0, 9.9], - "to": [2, 5, 20.9], - "rotation": {"angle": 2.5, "axis": "x", "origin": [0, 2.5, 18.65]}, - "faces": { - "north": {"uv": [2.75, 7.5, 3.75, 8.75], "texture": "#0"}, - "east": {"uv": [0, 7.5, 2.75, 8.75], "texture": "#0"}, - "south": {"uv": [6.5, 7.5, 7.5, 8.75], "texture": "#0"}, - "west": {"uv": [3.75, 7.5, 6.5, 8.75], "texture": "#0"}, - "up": {"uv": [3.75, 7.5, 2.75, 4.75], "texture": "#0"}, - "down": {"uv": [4.75, 4.75, 3.75, 7.5], "texture": "#0"} - } - }, - { - "name": "right_fin", - "from": [4, -1.25, -2], - "to": [5, 2.75, 5], - "rotation": {"x": -138.7, "y": -0.3, "z": 60.4, "origin": [4.5, 0.75, 1.5]}, - "faces": { - "north": {"uv": [13.75, 6.75, 14, 7.75], "texture": "#0"}, - "east": {"uv": [13.75, 7.75, 12, 6.75], "texture": "#0"}, - "south": {"uv": [15.75, 6.75, 16, 7.75], "texture": "#0"}, - "west": {"uv": [14, 6.75, 15.75, 7.75], "texture": "#0"}, - "up": {"uv": [14, 6.75, 13.75, 5], "texture": "#0"}, - "down": {"uv": [14.25, 5, 14, 6.75], "texture": "#0"} - } - }, - { - "name": "left_fin", - "from": [-5, -1.25, -2], - "to": [-4, 2.75, 5], - "rotation": {"x": 42.7, "y": 0.3, "z": -60.4, "origin": [-4.5, 0.75, 1.5]}, - "faces": { - "north": {"uv": [13.75, 6.75, 14, 7.75], "texture": "#0"}, - "east": {"uv": [12, 6.75, 13.75, 7.75], "texture": "#0"}, - "south": {"uv": [15.75, 6.75, 16, 7.75], "texture": "#0"}, - "west": {"uv": [14, 6.75, 15.75, 7.75], "texture": "#0"}, - "up": {"uv": [14, 6.75, 13.75, 5], "texture": "#0"}, - "down": {"uv": [14.25, 5, 14, 6.75], "texture": "#0"} - } - }, - { - "name": "back_fin", - "from": [-0.5, 5.75, 3], - "to": [0.5, 9.75, 8], - "rotation": {"x": -55, "y": 0, "z": 0, "origin": [0, 7.75, 5.5]}, - "faces": { - "north": {"uv": [14, 1.25, 14.25, 2.25], "texture": "#0"}, - "east": {"uv": [12.75, 1.25, 14, 2.25], "texture": "#0"}, - "south": {"uv": [15.5, 1.25, 15.75, 2.25], "texture": "#0"}, - "west": {"uv": [14.25, 1.25, 15.5, 2.25], "texture": "#0"}, - "up": {"uv": [14.25, 1.25, 14, 0], "texture": "#0"}, - "down": {"uv": [14.5, 0, 14.25, 1.25], "texture": "#0"} - } - }, - { - "name": "tail_fin", - "from": [-5, 2, 18.9], - "to": [5, 3, 24.9], - "rotation": {"angle": 5, "axis": "x", "origin": [0, 2.5, 18.65]}, - "faces": { - "north": {"uv": [6.25, 6.5, 8.75, 6.75], "texture": "#0"}, - "east": {"uv": [4.75, 6.5, 6.25, 6.75], "texture": "#0"}, - "south": {"uv": [10.25, 6.5, 12.75, 6.75], "texture": "#0"}, - "west": {"uv": [8.75, 6.5, 10.25, 6.75], "texture": "#0"}, - "up": {"uv": [8.75, 6.5, 6.25, 5], "texture": "#0"}, - "down": {"uv": [11.25, 5, 8.75, 6.5], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "head", - "origin": [0, 4, -6], - "color": 0, - "children": [0] - }, - { - "name": "body", - "origin": [0, 0, -3], - "color": 0, - "children": [1, 2] - }, - { - "name": "tail", - "origin": [0, 2.5, 11], - "color": 0, - "children": [3] - }, - { - "name": "right_fin", - "origin": [4.5, 0, -2], - "color": 0, - "children": [4] - }, - { - "name": "left_fin", - "origin": [-4.5, 0, -2], - "color": 0, - "children": [5] - }, - { - "name": "back_fin", - "origin": [0, 11, -5], - "color": 0, - "children": [6] - }, - { - "name": "tail_fin", - "origin": [0, 2.5, 20], - "color": 0, - "children": [7] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/dolphin/baby.json b/src/main/resources/assets/minecraft/models/entity/dolphin/baby.json deleted file mode 100644 index 1c10c24..0000000 --- a/src/main/resources/assets/minecraft/models/entity/dolphin/baby.json +++ /dev/null @@ -1,166 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Made by Miraculixx", - "texture_size": [64, 64], - "textures": { - "0": "entity/dolphin" - }, - "elements": [ - { - "name": "head", - "from": [-2, 0, -7.5], - "to": [2, 3.5, -4.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -3]}, - "faces": { - "north": {"uv": [1.5, 1.5, 3.5, 3.25], "texture": "#0"}, - "east": {"uv": [0, 1.5, 1.5, 3.25], "texture": "#0"}, - "south": {"uv": [5, 1.5, 7, 3.25], "texture": "#0"}, - "west": {"uv": [3.5, 1.5, 5, 3.25], "texture": "#0"}, - "up": {"uv": [3.5, 1.5, 1.5, 0], "texture": "#0"}, - "down": {"uv": [5.5, 0, 3.5, 1.5], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-0.5, 0, -9.5], - "to": [0.5, 1, -7.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -3]}, - "faces": { - "north": {"uv": [1, 4.25, 1.5, 4.75], "texture": "#0"}, - "east": {"uv": [0, 4.25, 1, 4.75], "texture": "#0"}, - "south": {"uv": [2.5, 4.25, 3, 4.75], "texture": "#0"}, - "west": {"uv": [1.5, 4.25, 2.5, 4.75], "texture": "#0"}, - "up": {"uv": [1.5, 4.25, 1, 3.25], "texture": "#0"}, - "down": {"uv": [2, 3.25, 1.5, 4.25], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-2, 0, -4.5], - "to": [2, 3.5, 2], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -3]}, - "faces": { - "north": {"uv": [8.75, 3.25, 10.75, 5], "texture": "#0"}, - "east": {"uv": [5.5, 3.25, 8.75, 5], "texture": "#0"}, - "south": {"uv": [14, 3.25, 16, 5], "texture": "#0"}, - "west": {"uv": [10.75, 3.25, 14, 5], "texture": "#0"}, - "up": {"uv": [10.75, 3.25, 8.75, 0], "texture": "#0"}, - "down": {"uv": [12.75, 0, 10.75, 3.25], "texture": "#0"} - } - }, - { - "name": "tail", - "from": [-1, 0, 1.95], - "to": [1, 2.5, 7.45], - "rotation": {"angle": 2.5, "axis": "x", "origin": [0, 1.25, 6.325]}, - "faces": { - "north": {"uv": [2.75, 7.5, 3.75, 8.75], "texture": "#0"}, - "east": {"uv": [0, 7.5, 2.75, 8.75], "texture": "#0"}, - "south": {"uv": [6.5, 7.5, 7.5, 8.75], "texture": "#0"}, - "west": {"uv": [3.75, 7.5, 6.5, 8.75], "texture": "#0"}, - "up": {"uv": [3.75, 7.5, 2.75, 4.75], "texture": "#0"}, - "down": {"uv": [4.75, 4.75, 3.75, 7.5], "texture": "#0"} - } - }, - { - "name": "right_fin", - "from": [2, -0.625, -4], - "to": [2.5, 1.375, -0.5], - "rotation": {"x": -138.7, "y": -0.3, "z": 60.4, "origin": [2.25, 0.375, -2.25]}, - "faces": { - "north": {"uv": [13.75, 6.75, 14, 7.75], "texture": "#0"}, - "east": {"uv": [13.75, 7.75, 12, 6.75], "texture": "#0"}, - "south": {"uv": [15.75, 6.75, 16, 7.75], "texture": "#0"}, - "west": {"uv": [14, 6.75, 15.75, 7.75], "texture": "#0"}, - "up": {"uv": [14, 6.75, 13.75, 5], "texture": "#0"}, - "down": {"uv": [14.25, 5, 14, 6.75], "texture": "#0"} - } - }, - { - "name": "left_fin", - "from": [-2.5, -0.625, -4], - "to": [-2, 1.375, -0.5], - "rotation": {"x": 42.7, "y": 0.3, "z": -60.4, "origin": [-2.25, 0.375, -2.25]}, - "faces": { - "north": {"uv": [13.75, 6.75, 14, 7.75], "texture": "#0"}, - "east": {"uv": [12, 6.75, 13.75, 7.75], "texture": "#0"}, - "south": {"uv": [15.75, 6.75, 16, 7.75], "texture": "#0"}, - "west": {"uv": [14, 6.75, 15.75, 7.75], "texture": "#0"}, - "up": {"uv": [14, 6.75, 13.75, 5], "texture": "#0"}, - "down": {"uv": [14.25, 5, 14, 6.75], "texture": "#0"} - } - }, - { - "name": "back_fin", - "from": [-0.25, 2.875, -1.5], - "to": [0.25, 4.875, 1], - "rotation": {"x": -55, "y": 0, "z": 0, "origin": [0, 3.875, -0.25]}, - "faces": { - "north": {"uv": [14, 1.25, 14.25, 2.25], "texture": "#0"}, - "east": {"uv": [12.75, 1.25, 14, 2.25], "texture": "#0"}, - "south": {"uv": [15.5, 1.25, 15.75, 2.25], "texture": "#0"}, - "west": {"uv": [14.25, 1.25, 15.5, 2.25], "texture": "#0"}, - "up": {"uv": [14.25, 1.25, 14, 0], "texture": "#0"}, - "down": {"uv": [14.5, 0, 14.25, 1.25], "texture": "#0"} - } - }, - { - "name": "tail_fin", - "from": [-2.5, 1, 6.45], - "to": [2.5, 1.5, 9.45], - "rotation": {"angle": 5, "axis": "x", "origin": [0, 1.25, 6.325]}, - "faces": { - "north": {"uv": [6.25, 6.5, 8.75, 6.75], "texture": "#0"}, - "east": {"uv": [4.75, 6.5, 6.25, 6.75], "texture": "#0"}, - "south": {"uv": [10.25, 6.5, 12.75, 6.75], "texture": "#0"}, - "west": {"uv": [8.75, 6.5, 10.25, 6.75], "texture": "#0"}, - "up": {"uv": [8.75, 6.5, 6.25, 5], "texture": "#0"}, - "down": {"uv": [11.25, 5, 8.75, 6.5], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "head", - "origin": [0, 4, -6], - "color": 0, - "children": [0] - }, - { - "name": "body", - "origin": [0, 0, -3], - "color": 0, - "children": [1, 2] - }, - { - "name": "tail", - "origin": [0, 2.5, 11], - "color": 0, - "children": [3] - }, - { - "name": "right_fin", - "origin": [4.5, 0, -2], - "color": 0, - "children": [4] - }, - { - "name": "left_fin", - "origin": [-4.5, 0, -2], - "color": 0, - "children": [5] - }, - { - "name": "back_fin", - "origin": [0, 11, -5], - "color": 0, - "children": [6] - }, - { - "name": "tail_fin", - "origin": [0, 2.5, 20], - "color": 0, - "children": [7] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/fox/adult.json b/src/main/resources/assets/minecraft/models/entity/fox/adult.json deleted file mode 100644 index fdc021a..0000000 --- a/src/main/resources/assets/minecraft/models/entity/fox/adult.json +++ /dev/null @@ -1,193 +0,0 @@ -{ - "credit": "Model by Miraculixx", - "texture_size": [48, 32], - "textures": { - "0": "entity/fox/fox" - }, - "elements": [ - { - "name": "head", - "from": [-4, 3.5, -11], - "to": [4, 9.5, -5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -3]}, - "faces": { - "north": {"uv": [2.33333, 5.5, 5, 8.5], "texture": "#0"}, - "east": {"uv": [0.33333, 5.5, 2.33333, 8.5], "texture": "#0"}, - "south": {"uv": [7, 5.5, 9.66667, 8.5], "texture": "#0"}, - "west": {"uv": [5, 5.5, 7, 8.5], "texture": "#0"}, - "up": {"uv": [5, 5.5, 2.33333, 2.5], "texture": "#0"}, - "down": {"uv": [7.66667, 2.5, 5, 5.5], "texture": "#0"} - } - }, - { - "name": "head", - "from": [-4, 9.5, -10], - "to": [-2, 11.5, -9], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -3]}, - "faces": { - "north": {"uv": [5.33333, 1, 6, 2], "texture": "#0"}, - "east": {"uv": [5, 1, 5.33333, 2], "texture": "#0"}, - "south": {"uv": [6.33333, 1, 7, 2], "texture": "#0"}, - "west": {"uv": [6, 1, 6.33333, 2], "texture": "#0"}, - "up": {"uv": [6, 1, 5.33333, 0.5], "texture": "#0"}, - "down": {"uv": [6.66667, 0.5, 6, 1], "texture": "#0"} - } - }, - { - "name": "head", - "from": [2, 9.5, -10], - "to": [4, 11.5, -9], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -3]}, - "faces": { - "north": {"uv": [3, 1, 3.66667, 2], "texture": "#0"}, - "east": {"uv": [2.66667, 1, 3, 2], "texture": "#0"}, - "south": {"uv": [4, 1, 4.66667, 2], "texture": "#0"}, - "west": {"uv": [3.66667, 1, 4, 2], "texture": "#0"}, - "up": {"uv": [3.66667, 1, 3, 0.5], "texture": "#0"}, - "down": {"uv": [4.33333, 0.5, 3.66667, 1], "texture": "#0"} - } - }, - { - "name": "head", - "from": [-2, 3.5, -14], - "to": [2, 5.5, -11], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -3]}, - "faces": { - "north": {"uv": [3, 10.5, 4.33333, 11.5], "texture": "#0"}, - "east": {"uv": [2, 10.5, 3, 11.5], "texture": "#0"}, - "south": {"uv": [5.33333, 10.5, 6.66667, 11.5], "texture": "#0"}, - "west": {"uv": [4.33333, 10.5, 5.33333, 11.5], "texture": "#0"}, - "up": {"uv": [4.33333, 10.5, 3, 9], "texture": "#0"}, - "down": {"uv": [5.66667, 9, 4.33333, 10.5], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-3, 3, -5.5], - "to": [3, 9, 5.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 10, 4]}, - "faces": { - "north": {"uv": [10, 7.5, 12, 10.5], "texture": "#0"}, - "east": {"uv": [14, 10.5, 12, 16], "rotation": 90, "texture": "#0"}, - "south": {"uv": [12, 7.5, 14, 10.5], "texture": "#0"}, - "west": {"uv": [8, 16, 10, 10.5], "rotation": 90, "texture": "#0"}, - "up": {"uv": [16, 16, 14, 10.5], "texture": "#0"}, - "down": {"uv": [12, 10.5, 10, 16], "texture": "#0"} - } - }, - { - "name": "leg1", - "from": [1.001, 0, 3], - "to": [3.001, 6, 5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -3]}, - "faces": { - "north": {"uv": [5, 13, 5.66667, 16], "texture": "#0"}, - "east": {"uv": [4.33333, 13, 5, 16], "texture": "#0"}, - "south": {"uv": [6.33333, 13, 7, 16], "texture": "#0"}, - "west": {"uv": [5.66667, 13, 6.33333, 16], "texture": "#0"}, - "up": {"uv": [5.66667, 13, 5, 12], "texture": "#0"}, - "down": {"uv": [6.33333, 12, 5.66667, 13], "texture": "#0"} - } - }, - { - "name": "leg2", - "from": [-3.001, 0, 3], - "to": [-1.001, 6, 5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -3]}, - "faces": { - "north": {"uv": [2, 13, 2.66667, 16], "texture": "#0"}, - "east": {"uv": [1.33333, 13, 2, 16], "texture": "#0"}, - "south": {"uv": [3.33333, 13, 4, 16], "texture": "#0"}, - "west": {"uv": [2.66667, 13, 3.33333, 16], "texture": "#0"}, - "up": {"uv": [2.66667, 13, 2, 12], "texture": "#0"}, - "down": {"uv": [3.33333, 12, 2.66667, 13], "texture": "#0"} - } - }, - { - "name": "leg3", - "from": [1.001, 0, -4], - "to": [3.001, 6, -2], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -3]}, - "faces": { - "north": {"uv": [5, 13, 5.66667, 16], "texture": "#0"}, - "east": {"uv": [4.33333, 13, 5, 16], "texture": "#0"}, - "south": {"uv": [6.33333, 13, 7, 16], "texture": "#0"}, - "west": {"uv": [5.66667, 13, 6.33333, 16], "texture": "#0"}, - "up": {"uv": [5.66667, 13, 5, 12], "texture": "#0"}, - "down": {"uv": [6.33333, 12, 5.66667, 13], "texture": "#0"} - } - }, - { - "name": "leg4", - "from": [-3.001, 0, -4], - "to": [-1.001, 6, -2], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -3]}, - "faces": { - "north": {"uv": [2, 13, 2.66667, 16], "texture": "#0"}, - "east": {"uv": [1.33333, 13, 2, 16], "texture": "#0"}, - "south": {"uv": [3.33333, 13, 4, 16], "texture": "#0"}, - "west": {"uv": [2.66667, 13, 3.33333, 16], "texture": "#0"}, - "up": {"uv": [2.66667, 13, 2, 12], "texture": "#0"}, - "down": {"uv": [3.33333, 12, 2.66667, 13], "texture": "#0"} - } - }, - { - "name": "tail", - "from": [-2, 2, 0], - "to": [2, 7, 9], - "rotation": {"angle": 22.5, "axis": "x", "origin": [0, -6, 7]}, - "faces": { - "north": {"uv": [13, 4.5, 14.33333, 7], "texture": "#0"}, - "east": {"uv": [10, 2.5, 11.66667, 7], "rotation": 90, "texture": "#0"}, - "south": {"uv": [13, 0, 14.33333, 2.5], "texture": "#0"}, - "west": {"uv": [13, 2.5, 14.66667, 7], "rotation": 270, "texture": "#0"}, - "up": {"uv": [16, 2.5, 14.66667, 7], "texture": "#0"}, - "down": {"uv": [13, 7, 11.66667, 2.5], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "head", - "origin": [9, 7.5, 5], - "color": 0, - "children": [0, 1, 2, 3] - }, - { - "name": "body", - "origin": [8, 8, 2], - "color": 0, - "children": [4] - }, - { - "name": "leg1", - "origin": [13, 6.5, 15], - "color": 0, - "children": [5] - }, - { - "name": "leg2", - "origin": [9, 6.5, 15], - "color": 0, - "children": [6] - }, - { - "name": "leg3", - "origin": [13, 6.5, 8], - "color": 0, - "children": [7] - }, - { - "name": "leg4", - "origin": [9, 6.5, 8], - "color": 0, - "children": [8] - }, - { - "name": "tail", - "origin": [12, 7, 17], - "color": 0, - "children": [9] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/fox/adult_snow.json b/src/main/resources/assets/minecraft/models/entity/fox/adult_snow.json deleted file mode 100644 index 0fc3fc8..0000000 --- a/src/main/resources/assets/minecraft/models/entity/fox/adult_snow.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/fox/adult", - "textures": { - "0": "entity/fox/snow_fox" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/fox/baby.json b/src/main/resources/assets/minecraft/models/entity/fox/baby.json deleted file mode 100644 index f924a10..0000000 --- a/src/main/resources/assets/minecraft/models/entity/fox/baby.json +++ /dev/null @@ -1,194 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Model by Miraculixx", - "texture_size": [48, 32], - "textures": { - "0": "entity/fox/fox" - }, - "elements": [ - { - "name": "head", - "from": [-2, 1.875, -5.0625], - "to": [4, 6.375, -0.5625], - "rotation": {"angle": 0, "axis": "y", "origin": [1, -0.75, 0.9375]}, - "faces": { - "north": {"uv": [2.33333, 5.5, 5, 8.5], "texture": "#0"}, - "east": {"uv": [0.33333, 5.5, 2.33333, 8.5], "texture": "#0"}, - "south": {"uv": [7, 5.5, 9.66667, 8.5], "texture": "#0"}, - "west": {"uv": [5, 5.5, 7, 8.5], "texture": "#0"}, - "up": {"uv": [5, 5.5, 2.33333, 2.5], "texture": "#0"}, - "down": {"uv": [7.66667, 2.5, 5, 5.5], "texture": "#0"} - } - }, - { - "name": "head", - "from": [-2, 6.375, -4.3125], - "to": [-0.5, 7.875, -3.5625], - "rotation": {"angle": 0, "axis": "y", "origin": [1, -0.75, 0.9375]}, - "faces": { - "north": {"uv": [5.33333, 1, 6, 2], "texture": "#0"}, - "east": {"uv": [5, 1, 5.33333, 2], "texture": "#0"}, - "south": {"uv": [6.33333, 1, 7, 2], "texture": "#0"}, - "west": {"uv": [6, 1, 6.33333, 2], "texture": "#0"}, - "up": {"uv": [6, 1, 5.33333, 0.5], "texture": "#0"}, - "down": {"uv": [6.66667, 0.5, 6, 1], "texture": "#0"} - } - }, - { - "name": "head", - "from": [2.5, 6.375, -4.3125], - "to": [4, 7.875, -3.5625], - "rotation": {"angle": 0, "axis": "y", "origin": [1, -0.75, 0.9375]}, - "faces": { - "north": {"uv": [3, 1, 3.66667, 2], "texture": "#0"}, - "east": {"uv": [2.66667, 1, 3, 2], "texture": "#0"}, - "south": {"uv": [4, 1, 4.66667, 2], "texture": "#0"}, - "west": {"uv": [3.66667, 1, 4, 2], "texture": "#0"}, - "up": {"uv": [3.66667, 1, 3, 0.5], "texture": "#0"}, - "down": {"uv": [4.33333, 0.5, 3.66667, 1], "texture": "#0"} - } - }, - { - "name": "head", - "from": [-0.5, 1.875, -7.3125], - "to": [2.5, 3.375, -5.0625], - "rotation": {"angle": 0, "axis": "y", "origin": [1, -0.75, 0.9375]}, - "faces": { - "north": {"uv": [3, 10.5, 4.33333, 11.5], "texture": "#0"}, - "east": {"uv": [2, 10.5, 3, 11.5], "texture": "#0"}, - "south": {"uv": [5.33333, 10.5, 6.66667, 11.5], "texture": "#0"}, - "west": {"uv": [4.33333, 10.5, 5.33333, 11.5], "texture": "#0"}, - "up": {"uv": [4.33333, 10.5, 3, 9], "texture": "#0"}, - "down": {"uv": [5.66667, 9, 4.33333, 10.5], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-0.5, 1.5, -3], - "to": [2.5, 4.5, 2.5], - "rotation": {"angle": 0, "axis": "y", "origin": [1, 5, 1.75]}, - "faces": { - "north": {"uv": [10, 7.5, 12, 10.5], "texture": "#0"}, - "east": {"uv": [14, 10.5, 12, 16], "rotation": 90, "texture": "#0"}, - "south": {"uv": [12, 7.5, 14, 10.5], "texture": "#0"}, - "west": {"uv": [8, 16, 10, 10.5], "rotation": 90, "texture": "#0"}, - "up": {"uv": [16, 16, 14, 10.5], "texture": "#0"}, - "down": {"uv": [12, 10.5, 10, 16], "texture": "#0"} - } - }, - { - "name": "leg1", - "from": [1.5005, 0, 1.25], - "to": [2.5005, 3, 2.25], - "rotation": {"angle": 0, "axis": "y", "origin": [1, 0, -1.75]}, - "faces": { - "north": {"uv": [5, 13, 5.66667, 16], "texture": "#0"}, - "east": {"uv": [4.33333, 13, 5, 16], "texture": "#0"}, - "south": {"uv": [6.33333, 13, 7, 16], "texture": "#0"}, - "west": {"uv": [5.66667, 13, 6.33333, 16], "texture": "#0"}, - "up": {"uv": [5.66667, 13, 5, 12], "texture": "#0"}, - "down": {"uv": [6.33333, 12, 5.66667, 13], "texture": "#0"} - } - }, - { - "name": "leg2", - "from": [-0.5005, 0, 1.25], - "to": [0.4995, 3, 2.25], - "rotation": {"angle": 0, "axis": "y", "origin": [1, 0, -1.75]}, - "faces": { - "north": {"uv": [2, 13, 2.66667, 16], "texture": "#0"}, - "east": {"uv": [1.33333, 13, 2, 16], "texture": "#0"}, - "south": {"uv": [3.33333, 13, 4, 16], "texture": "#0"}, - "west": {"uv": [2.66667, 13, 3.33333, 16], "texture": "#0"}, - "up": {"uv": [2.66667, 13, 2, 12], "texture": "#0"}, - "down": {"uv": [3.33333, 12, 2.66667, 13], "texture": "#0"} - } - }, - { - "name": "leg3", - "from": [1.5005, 0, -2.25], - "to": [2.5005, 3, -1.25], - "rotation": {"angle": 0, "axis": "y", "origin": [1, 0, -1.75]}, - "faces": { - "north": {"uv": [5, 13, 5.66667, 16], "texture": "#0"}, - "east": {"uv": [4.33333, 13, 5, 16], "texture": "#0"}, - "south": {"uv": [6.33333, 13, 7, 16], "texture": "#0"}, - "west": {"uv": [5.66667, 13, 6.33333, 16], "texture": "#0"}, - "up": {"uv": [5.66667, 13, 5, 12], "texture": "#0"}, - "down": {"uv": [6.33333, 12, 5.66667, 13], "texture": "#0"} - } - }, - { - "name": "leg4", - "from": [-0.5005, 0, -2.25], - "to": [0.4995, 3, -1.25], - "rotation": {"angle": 0, "axis": "y", "origin": [1, 0, -1.75]}, - "faces": { - "north": {"uv": [2, 13, 2.66667, 16], "texture": "#0"}, - "east": {"uv": [1.33333, 13, 2, 16], "texture": "#0"}, - "south": {"uv": [3.33333, 13, 4, 16], "texture": "#0"}, - "west": {"uv": [2.66667, 13, 3.33333, 16], "texture": "#0"}, - "up": {"uv": [2.66667, 13, 2, 12], "texture": "#0"}, - "down": {"uv": [3.33333, 12, 2.66667, 13], "texture": "#0"} - } - }, - { - "name": "tail", - "from": [0, 1, -0.25], - "to": [2, 3.5, 4.25], - "rotation": {"angle": 22.5, "axis": "x", "origin": [1, -3, 3.25]}, - "faces": { - "north": {"uv": [13, 4.5, 14.33333, 7], "texture": "#0"}, - "east": {"uv": [10, 2.5, 11.66667, 7], "rotation": 90, "texture": "#0"}, - "south": {"uv": [13, 0, 14.33333, 2.5], "texture": "#0"}, - "west": {"uv": [13, 2.5, 14.66667, 7], "rotation": 270, "texture": "#0"}, - "up": {"uv": [16, 2.5, 14.66667, 7], "texture": "#0"}, - "down": {"uv": [13, 7, 11.66667, 2.5], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "head", - "origin": [9, 7.5, 5], - "color": 0, - "children": [0, 1, 2, 3] - }, - { - "name": "body", - "origin": [8, 8, 2], - "color": 0, - "children": [4] - }, - { - "name": "leg1", - "origin": [13, 6.5, 15], - "color": 0, - "children": [5] - }, - { - "name": "leg2", - "origin": [9, 6.5, 15], - "color": 0, - "children": [6] - }, - { - "name": "leg3", - "origin": [13, 6.5, 8], - "color": 0, - "children": [7] - }, - { - "name": "leg4", - "origin": [9, 6.5, 8], - "color": 0, - "children": [8] - }, - { - "name": "tail", - "origin": [12, 7, 17], - "color": 0, - "children": [9] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/fox/baby_snow.json b/src/main/resources/assets/minecraft/models/entity/fox/baby_snow.json deleted file mode 100644 index db0dcb6..0000000 --- a/src/main/resources/assets/minecraft/models/entity/fox/baby_snow.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/fox/baby", - "textures": { - "0": "entity/fox/snow_fox" - } -} diff --git a/src/main/resources/assets/minecraft/models/entity/frog/frog.json b/src/main/resources/assets/minecraft/models/entity/frog/frog.json deleted file mode 100644 index f766840..0000000 --- a/src/main/resources/assets/minecraft/models/entity/frog/frog.json +++ /dev/null @@ -1,185 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Made by Miraculixx", - "texture_size": [48, 48], - "textures": { - }, - "elements": [ - { - "name": "head", - "from": [-3.5, 3, -4], - "to": [3.5, 6, 5], - "faces": { - "north": {"uv": [3, 7.33333, 5.33333, 8.33333], "texture": "#0"}, - "east": {"uv": [0, 7.33333, 3, 8.33333], "texture": "#0"}, - "south": {"uv": [8.33333, 7.33333, 10.66667, 8.33333], "texture": "#0"}, - "west": {"uv": [5.33333, 7.33333, 8.33333, 8.33333], "texture": "#0"}, - "up": {"uv": [5.33333, 7.33333, 3, 4.33333], "texture": "#0"}, - "down": {"uv": [7.66667, 4.33333, 5.33333, 7.33333], "texture": "#0"} - } - }, - { - "name": "eyes", - "from": [-3.5, 6, -3], - "to": [-0.5, 8, 0], - "faces": { - "north": {"uv": [1, 2.66667, 2, 3.33333], "texture": "#0"}, - "east": {"uv": [0, 2.66667, 1, 3.33333], "texture": "#0"}, - "south": {"uv": [3, 2.66667, 4, 3.33333], "texture": "#0"}, - "west": {"uv": [2, 2.66667, 3, 3.33333], "texture": "#0"}, - "up": {"uv": [2, 2.66667, 1, 1.66667], "texture": "#0"}, - "down": {"uv": [3, 1.66667, 2, 2.66667], "texture": "#0"} - } - }, - { - "name": "eyes", - "from": [0.5, 6, -3], - "to": [3.5, 8, 0], - "faces": { - "north": {"uv": [1, 1, 2, 1.66667], "texture": "#0"}, - "east": {"uv": [0, 1, 1, 1.66667], "texture": "#0"}, - "south": {"uv": [3, 1, 4, 1.66667], "texture": "#0"}, - "west": {"uv": [2, 1, 3, 1.66667], "texture": "#0"}, - "up": {"uv": [2, 1, 1, 0], "texture": "#0"}, - "down": {"uv": [3, 0, 2, 1], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-3.5, 1, -4], - "to": [3.5, 4, 5], - "faces": { - "north": {"uv": [4, 3.33333, 6.33333, 4.33333], "texture": "#0"}, - "east": {"uv": [1, 3.33333, 4, 4.33333], "texture": "#0"}, - "south": {"uv": [9.33333, 3.33333, 11.66667, 4.33333], "texture": "#0"}, - "west": {"uv": [6.33333, 3.33333, 9.33333, 4.33333], "texture": "#0"}, - "up": {"uv": [6.33333, 3.33333, 4, 0.33333], "texture": "#0"}, - "down": {"uv": [8.66667, 0.33333, 6.33333, 3.33333], "texture": "#0"} - } - }, - { - "name": "left_arm", - "from": [-5, 0, -3.5], - "to": [-3, 3, -0.5], - "faces": { - "north": {"uv": [1, 11.66667, 1.66667, 12.66667], "texture": "#0"}, - "east": {"uv": [0, 11.66667, 1, 12.66667], "texture": "#0"}, - "south": {"uv": [2.66667, 11.66667, 3.33333, 12.66667], "texture": "#0"}, - "west": {"uv": [1.66667, 11.66667, 2.66667, 12.66667], "texture": "#0"}, - "up": {"uv": [1.66667, 11.66667, 1, 10.66667], "texture": "#0"}, - "down": {"uv": [2.33333, 10.66667, 1.66667, 11.66667], "texture": "#0"} - } - }, - { - "name": "left_arm", - "from": [-8, 0.01, -7.5], - "to": [0, 0.01, 0.5], - "faces": { - "north": {"uv": [8.66667, 16, 11.33333, 16], "texture": "#0"}, - "east": {"uv": [6, 16, 8.66667, 16], "texture": "#0"}, - "south": {"uv": [14, 16, 16.66667, 16], "texture": "#0"}, - "west": {"uv": [11.33333, 16, 14, 16], "texture": "#0"}, - "up": {"uv": [11.33333, 16, 8.66667, 13.33333], "texture": "#0"}, - "down": {"uv": [11.33333, 13.33333, 8.66667, 16], "texture": "#0"} - } - }, - { - "name": "right_arm", - "from": [0, 0.01, -7.5], - "to": [8, 0.01, 0.5], - "faces": { - "north": {"uv": [3.33333, 16, 6, 16], "texture": "#0"}, - "east": {"uv": [0.66667, 16, 3.33333, 16], "texture": "#0"}, - "south": {"uv": [8.66667, 16, 11.33333, 16], "texture": "#0"}, - "west": {"uv": [6, 16, 8.66667, 16], "texture": "#0"}, - "up": {"uv": [6, 16, 3.33333, 13.33333], "texture": "#0"}, - "down": {"uv": [6, 13.33333, 3.33333, 16], "texture": "#0"} - } - }, - { - "name": "right_arm", - "from": [3, 0, -3.5], - "to": [5, 3, -0.5], - "faces": { - "north": {"uv": [1, 13.66667, 1.66667, 14.66667], "texture": "#0"}, - "east": {"uv": [0, 13.66667, 1, 14.66667], "texture": "#0"}, - "south": {"uv": [2.66667, 13.66667, 3.33333, 14.66667], "texture": "#0"}, - "west": {"uv": [1.66667, 13.66667, 2.66667, 14.66667], "texture": "#0"}, - "up": {"uv": [1.66667, 13.66667, 1, 12.66667], "texture": "#0"}, - "down": {"uv": [2.33333, 12.66667, 1.66667, 13.66667], "texture": "#0"} - } - }, - { - "name": "left_leg", - "from": [-9.5, 0.01, 0], - "to": [-1.5, 0.01, 8], - "faces": { - "north": {"uv": [3.33333, 13.33333, 6, 13.33333], "texture": "#0"}, - "east": {"uv": [0.66667, 13.33333, 3.33333, 13.33333], "texture": "#0"}, - "south": {"uv": [8.66667, 13.33333, 11.33333, 13.33333], "texture": "#0"}, - "west": {"uv": [6, 13.33333, 8.66667, 13.33333], "texture": "#0"}, - "up": {"uv": [6, 13.33333, 3.33333, 10.66667], "texture": "#0"}, - "down": {"uv": [6, 10.66667, 3.33333, 13.33333], "texture": "#0"} - } - }, - { - "name": "left_leg", - "from": [-5.5, 0, 2], - "to": [-2.5, 3, 6], - "faces": { - "north": {"uv": [6, 9.66667, 7, 10.66667], "texture": "#0"}, - "east": {"uv": [4.66667, 9.66667, 6, 10.66667], "texture": "#0"}, - "south": {"uv": [8.33333, 9.66667, 9.33333, 10.66667], "texture": "#0"}, - "west": {"uv": [7, 9.66667, 8.33333, 10.66667], "texture": "#0"}, - "up": {"uv": [7, 9.66667, 6, 8.33333], "texture": "#0"}, - "down": {"uv": [8, 8.33333, 7, 9.66667], "texture": "#0"} - } - }, - { - "name": "right_leg", - "from": [1.5, 0.01, 0], - "to": [9.5, 0.01, 8], - "faces": { - "north": {"uv": [8.66667, 13.33333, 11.33333, 13.33333], "texture": "#0"}, - "east": {"uv": [6, 13.33333, 8.66667, 13.33333], "texture": "#0"}, - "south": {"uv": [14, 13.33333, 16.66667, 13.33333], "texture": "#0"}, - "west": {"uv": [11.33333, 13.33333, 14, 13.33333], "texture": "#0"}, - "up": {"uv": [11.33333, 13.33333, 8.66667, 10.66667], "texture": "#0"}, - "down": {"uv": [11.33333, 10.66667, 8.66667, 13.33333], "texture": "#0"} - } - }, - { - "name": "right_leg", - "from": [2.5, 0, 2], - "to": [5.5, 3, 6], - "faces": { - "north": {"uv": [1.33333, 9.66667, 2.33333, 10.66667], "texture": "#0"}, - "east": {"uv": [0, 9.66667, 1.33333, 10.66667], "texture": "#0"}, - "south": {"uv": [3.66667, 9.66667, 4.66667, 10.66667], "texture": "#0"}, - "west": {"uv": [2.33333, 9.66667, 3.66667, 10.66667], "texture": "#0"}, - "up": {"uv": [2.33333, 9.66667, 1.33333, 8.33333], "texture": "#0"}, - "down": {"uv": [3.33333, 8.33333, 2.33333, 9.66667], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "head", - "origin": [0, 4, 3], - "color": 0, - "children": [0, 1, 2] - }, - { - "name": "body", - "origin": [0, 2, 4], - "color": 0, - "children": [3] - }, - { - "name": "leg", - "origin": [-4, 3, -2.5], - "color": 0, - "children": [4, 5, 6, 7, 8, 9, 10, 11] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/frog/variant/frog_cold.json b/src/main/resources/assets/minecraft/models/entity/frog/variant/frog_cold.json deleted file mode 100644 index cd87406..0000000 --- a/src/main/resources/assets/minecraft/models/entity/frog/variant/frog_cold.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/frog/frog", - "textures": { - "0": "entity/frog/cold_frog" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/frog/variant/frog_temperate.json b/src/main/resources/assets/minecraft/models/entity/frog/variant/frog_temperate.json deleted file mode 100644 index a87fb10..0000000 --- a/src/main/resources/assets/minecraft/models/entity/frog/variant/frog_temperate.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/frog/frog", - "textures": { - "0": "entity/frog/temperate_frog" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/frog/variant/frog_warm.json b/src/main/resources/assets/minecraft/models/entity/frog/variant/frog_warm.json deleted file mode 100644 index b0cf4e1..0000000 --- a/src/main/resources/assets/minecraft/models/entity/frog/variant/frog_warm.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/frog/frog", - "textures": { - "0": "entity/frog/warm_frog" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/ghast/ghast.json b/src/main/resources/assets/minecraft/models/entity/ghast/ghast.json deleted file mode 100644 index beea921..0000000 --- a/src/main/resources/assets/minecraft/models/entity/ghast/ghast.json +++ /dev/null @@ -1,163 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Made by Miraculixx", - "texture_size": [64, 32], - "textures": { - "0": "entity/ghast/ghast" - }, - "elements": [ - { - "name": "body", - "from": [-8, 0, -8], - "to": [8, 16, 8], - "faces": { - "north": {"uv": [4, 8, 8, 16], "texture": "#0"}, - "east": {"uv": [0, 8, 4, 16], "texture": "#0"}, - "south": {"uv": [12, 8, 16, 16], "texture": "#0"}, - "west": {"uv": [8, 8, 12, 16], "texture": "#0"}, - "up": {"uv": [8, 8, 4, 0], "texture": "#0"}, - "down": {"uv": [12, 0, 8, 8], "texture": "#0"} - } - }, - { - "name": "tentacle1", - "from": [2.7, -7, -6], - "to": [4.7, 1, -4], - "rotation": {"angle": -10, "axis": "x", "origin": [3.7, 1, -5]}, - "faces": { - "north": {"uv": [0.5, 1, 1, 5], "texture": "#0"}, - "east": {"uv": [0, 1, 0.5, 5], "texture": "#0"}, - "south": {"uv": [1.5, 1, 2, 5], "texture": "#0"}, - "west": {"uv": [1, 1, 1.5, 5], "texture": "#0"}, - "up": {"uv": [1, 1, 0.5, 0], "texture": "#0"}, - "down": {"uv": [1.5, 0, 1, 1], "texture": "#0"} - } - }, - { - "name": "tentacle2", - "from": [-7.3, -8, -6], - "to": [-5.3, 1, -4], - "rotation": {"angle": -15, "axis": "x", "origin": [-6.3, 1, -5]}, - "faces": { - "north": {"uv": [0.5, 1, 1, 5.5], "texture": "#0"}, - "east": {"uv": [0, 1, 0.5, 5.5], "texture": "#0"}, - "south": {"uv": [1.5, 1, 2, 5.5], "texture": "#0"}, - "west": {"uv": [1, 1, 1.5, 5.5], "texture": "#0"}, - "up": {"uv": [1, 1, 0.5, 0], "texture": "#0"}, - "down": {"uv": [1.5, 0, 1, 1], "texture": "#0"} - } - }, - { - "name": "tentacle3", - "from": [-2.3, -12, -6], - "to": [-0.3, 1, -4], - "rotation": {"angle": -25, "axis": "x", "origin": [-1.3, 1, -5]}, - "faces": { - "north": {"uv": [0.5, 1, 1, 7.5], "texture": "#0"}, - "east": {"uv": [0, 1, 0.5, 7.5], "texture": "#0"}, - "south": {"uv": [1.5, 1, 2, 7.5], "texture": "#0"}, - "west": {"uv": [1, 1, 1.5, 7.5], "texture": "#0"}, - "up": {"uv": [1, 1, 0.5, 0], "texture": "#0"}, - "down": {"uv": [1.5, 0, 1, 1], "texture": "#0"} - } - }, - { - "name": "tentacle4", - "from": [5.3, -10, -1], - "to": [7.3, 1, 1], - "rotation": {"angle": -12.5, "axis": "x", "origin": [6.3, 1, 0]}, - "faces": { - "north": {"uv": [0.5, 1, 1, 6.5], "texture": "#0"}, - "east": {"uv": [0, 1, 0.5, 6.5], "texture": "#0"}, - "south": {"uv": [1.5, 1, 2, 6.5], "texture": "#0"}, - "west": {"uv": [1, 1, 1.5, 6.5], "texture": "#0"}, - "up": {"uv": [1, 1, 0.5, 0], "texture": "#0"}, - "down": {"uv": [1.5, 0, 1, 1], "texture": "#0"} - } - }, - { - "name": "tentacle5", - "from": [0.3, -10, -1], - "to": [2.3, 1, 1], - "rotation": {"angle": -25, "axis": "x", "origin": [1.3, 1, 0]}, - "faces": { - "north": {"uv": [0.5, 1, 1, 6.5], "texture": "#0"}, - "east": {"uv": [0, 1, 0.5, 6.5], "texture": "#0"}, - "south": {"uv": [1.5, 1, 2, 6.5], "texture": "#0"}, - "west": {"uv": [1, 1, 1.5, 6.5], "texture": "#0"}, - "up": {"uv": [1, 1, 0.5, 0], "texture": "#0"}, - "down": {"uv": [1.5, 0, 1, 1], "texture": "#0"} - } - }, - { - "name": "tentacle6", - "from": [-4.7, -9, -1], - "to": [-2.7, 1, 1], - "rotation": {"angle": -15, "axis": "x", "origin": [-3.7, 1, 0]}, - "faces": { - "north": {"uv": [0.5, 1, 1, 6], "texture": "#0"}, - "east": {"uv": [0, 1, 0.5, 6], "texture": "#0"}, - "south": {"uv": [1.5, 1, 2, 6], "texture": "#0"}, - "west": {"uv": [1, 1, 1.5, 6], "texture": "#0"}, - "up": {"uv": [1, 1, 0.5, 0], "texture": "#0"}, - "down": {"uv": [1.5, 0, 1, 1], "texture": "#0"} - } - }, - { - "name": "tentacle7", - "from": [2.7, -11, 4], - "to": [4.7, 1, 6], - "rotation": {"angle": -32.5, "axis": "x", "origin": [3.7, 1, 5]}, - "faces": { - "north": {"uv": [0.5, 1, 1, 7], "texture": "#0"}, - "east": {"uv": [0, 1, 0.5, 7], "texture": "#0"}, - "south": {"uv": [1.5, 1, 2, 7], "texture": "#0"}, - "west": {"uv": [1, 1, 1.5, 7], "texture": "#0"}, - "up": {"uv": [1, 1, 0.5, 0], "texture": "#0"}, - "down": {"uv": [1.5, 0, 1, 1], "texture": "#0"} - } - }, - { - "name": "tentacle8", - "from": [-7.3, -11, 4], - "to": [-5.3, 1, 6], - "rotation": {"angle": -22.5, "axis": "x", "origin": [-6.3, 1, 5]}, - "faces": { - "north": {"uv": [0.5, 1, 1, 7], "texture": "#0"}, - "east": {"uv": [0, 1, 0.5, 7], "texture": "#0"}, - "south": {"uv": [1.5, 1, 2, 7], "texture": "#0"}, - "west": {"uv": [1, 1, 1.5, 7], "texture": "#0"}, - "up": {"uv": [1, 1, 0.5, 0], "texture": "#0"}, - "down": {"uv": [1.5, 0, 1, 1], "texture": "#0"} - } - }, - { - "name": "tentacle9", - "from": [-2.3, -8, 4], - "to": [-0.3, 1, 6], - "rotation": {"angle": -17.5, "axis": "x", "origin": [-1.3, 1, 5]}, - "faces": { - "north": {"uv": [0.5, 1, 1, 5.5], "texture": "#0"}, - "east": {"uv": [0, 1, 0.5, 5.5], "texture": "#0"}, - "south": {"uv": [1.5, 1, 2, 5.5], "texture": "#0"}, - "west": {"uv": [1, 1, 1.5, 5.5], "texture": "#0"}, - "up": {"uv": [1, 1, 0.5, 0], "texture": "#0"}, - "down": {"uv": [1.5, 0, 1, 1], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "body", - "origin": [0, 20, 0], - "color": 0, - "children": [0] - }, - { - "name": "tentacle", - "origin": [3.7, 13, -5], - "color": 0, - "children": [1, 2, 3, 4, 5, 6, 7, 8, 9] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/ghast/happy_ghast_adult.json b/src/main/resources/assets/minecraft/models/entity/ghast/happy_ghast_adult.json deleted file mode 100644 index 9c530af..0000000 --- a/src/main/resources/assets/minecraft/models/entity/ghast/happy_ghast_adult.json +++ /dev/null @@ -1,178 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Made by Miraculixx", - "texture_size": [64, 64], - "textures": { - "0": "entity/ghast/happy_ghast" - }, - "elements": [ - { - "name": "body", - "from": [-8, 0, -8], - "to": [8, 16, 8], - "rotation": {"angle": 0, "axis": "y", "origin": [0, -12, 0]}, - "faces": { - "north": {"uv": [4, 4, 8, 8], "texture": "#0"}, - "east": {"uv": [0, 4, 4, 8], "texture": "#0"}, - "south": {"uv": [12, 4, 16, 8], "texture": "#0"}, - "west": {"uv": [8, 4, 12, 8], "texture": "#0"}, - "up": {"uv": [8, 4, 4, 0], "texture": "#0"}, - "down": {"uv": [12, 0, 8, 4], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-7.5, 0.5, -7.5], - "to": [7.5, 15.5, 7.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, -12, 0]}, - "faces": { - "north": {"uv": [4, 12, 8, 16], "texture": "#0"}, - "east": {"uv": [0, 12, 4, 16], "texture": "#0"}, - "south": {"uv": [12, 12, 16, 16], "texture": "#0"}, - "west": {"uv": [8, 12, 12, 16], "texture": "#0"}, - "up": {"uv": [8, 12, 4, 8], "texture": "#0"}, - "down": {"uv": [12, 8, 8, 12], "texture": "#0"} - } - }, - { - "name": "tentacle1", - "from": [2.7, -7, -6], - "to": [4.7, 1, -4], - "rotation": {"angle": -10, "axis": "x", "origin": [3.7, 1, -5]}, - "faces": { - "north": {"uv": [0.5, 0.5, 1, 2.5], "texture": "#0"}, - "east": {"uv": [0, 0.5, 0.5, 2.5], "texture": "#0"}, - "south": {"uv": [1.5, 0.5, 2, 2.5], "texture": "#0"}, - "west": {"uv": [1, 0.5, 1.5, 2.5], "texture": "#0"}, - "up": {"uv": [1, 0.5, 0.5, 0], "texture": "#0"}, - "down": {"uv": [1.5, 0, 1, 0.5], "texture": "#0"} - } - }, - { - "name": "tentacle2", - "from": [-7.3, -8, -6], - "to": [-5.3, 1, -4], - "rotation": {"angle": -15, "axis": "x", "origin": [-6.3, 1, -5]}, - "faces": { - "north": {"uv": [0.5, 0.5, 1, 2.75], "texture": "#0"}, - "east": {"uv": [0, 0.5, 0.5, 2.75], "texture": "#0"}, - "south": {"uv": [1.5, 0.5, 2, 2.75], "texture": "#0"}, - "west": {"uv": [1, 0.5, 1.5, 2.75], "texture": "#0"}, - "up": {"uv": [1, 0.5, 0.5, 0], "texture": "#0"}, - "down": {"uv": [1.5, 0, 1, 0.5], "texture": "#0"} - } - }, - { - "name": "tentacle3", - "from": [-2.3, -12, -6], - "to": [-0.3, 1, -4], - "rotation": {"angle": -25, "axis": "x", "origin": [-1.3, 1, -5]}, - "faces": { - "north": {"uv": [0.5, 0.5, 1, 3.75], "texture": "#0"}, - "east": {"uv": [0, 0.5, 0.5, 3.75], "texture": "#0"}, - "south": {"uv": [1.5, 0.5, 2, 3.75], "texture": "#0"}, - "west": {"uv": [1, 0.5, 1.5, 3.75], "texture": "#0"}, - "up": {"uv": [1, 0.5, 0.5, 0], "texture": "#0"}, - "down": {"uv": [1.5, 0, 1, 0.5], "texture": "#0"} - } - }, - { - "name": "tentacle4", - "from": [5.3, -10, -1], - "to": [7.3, 1, 1], - "rotation": {"angle": -12.5, "axis": "x", "origin": [6.3, 1, 0]}, - "faces": { - "north": {"uv": [0.5, 0.5, 1, 3.25], "texture": "#0"}, - "east": {"uv": [0, 0.5, 0.5, 3.25], "texture": "#0"}, - "south": {"uv": [1.5, 0.5, 2, 3.25], "texture": "#0"}, - "west": {"uv": [1, 0.5, 1.5, 3.25], "texture": "#0"}, - "up": {"uv": [1, 0.5, 0.5, 0], "texture": "#0"}, - "down": {"uv": [1.5, 0, 1, 0.5], "texture": "#0"} - } - }, - { - "name": "tentacle5", - "from": [0.3, -10, -1], - "to": [2.3, 1, 1], - "rotation": {"angle": -25, "axis": "x", "origin": [1.3, 1, 0]}, - "faces": { - "north": {"uv": [0.5, 0.5, 1, 3.25], "texture": "#0"}, - "east": {"uv": [0, 0.5, 0.5, 3.25], "texture": "#0"}, - "south": {"uv": [1.5, 0.5, 2, 3.25], "texture": "#0"}, - "west": {"uv": [1, 0.5, 1.5, 3.25], "texture": "#0"}, - "up": {"uv": [1, 0.5, 0.5, 0], "texture": "#0"}, - "down": {"uv": [1.5, 0, 1, 0.5], "texture": "#0"} - } - }, - { - "name": "tentacle6", - "from": [-4.7, -9, -1], - "to": [-2.7, 1, 1], - "rotation": {"angle": -15, "axis": "x", "origin": [-3.7, 1, 0]}, - "faces": { - "north": {"uv": [0.5, 0.5, 1, 3], "texture": "#0"}, - "east": {"uv": [0, 0.5, 0.5, 3], "texture": "#0"}, - "south": {"uv": [1.5, 0.5, 2, 3], "texture": "#0"}, - "west": {"uv": [1, 0.5, 1.5, 3], "texture": "#0"}, - "up": {"uv": [1, 0.5, 0.5, 0], "texture": "#0"}, - "down": {"uv": [1.5, 0, 1, 0.5], "texture": "#0"} - } - }, - { - "name": "tentacle7", - "from": [2.7, -11, 4], - "to": [4.7, 1, 6], - "rotation": {"angle": -32.5, "axis": "x", "origin": [3.7, 1, 5]}, - "faces": { - "north": {"uv": [0.5, 0.5, 1, 3.5], "texture": "#0"}, - "east": {"uv": [0, 0.5, 0.5, 3.5], "texture": "#0"}, - "south": {"uv": [1.5, 0.5, 2, 3.5], "texture": "#0"}, - "west": {"uv": [1, 0.5, 1.5, 3.5], "texture": "#0"}, - "up": {"uv": [1, 0.5, 0.5, 0], "texture": "#0"}, - "down": {"uv": [1.5, 0, 1, 0.5], "texture": "#0"} - } - }, - { - "name": "tentacle8", - "from": [-7.3, -11, 4], - "to": [-5.3, 1, 6], - "rotation": {"angle": -22.5, "axis": "x", "origin": [-6.3, 1, 5]}, - "faces": { - "north": {"uv": [0.5, 0.5, 1, 3.5], "texture": "#0"}, - "east": {"uv": [0, 0.5, 0.5, 3.5], "texture": "#0"}, - "south": {"uv": [1.5, 0.5, 2, 3.5], "texture": "#0"}, - "west": {"uv": [1, 0.5, 1.5, 3.5], "texture": "#0"}, - "up": {"uv": [1, 0.5, 0.5, 0], "texture": "#0"}, - "down": {"uv": [1.5, 0, 1, 0.5], "texture": "#0"} - } - }, - { - "name": "tentacle9", - "from": [-2.3, -8, 4], - "to": [-0.3, 1, 6], - "rotation": {"angle": -17.5, "axis": "x", "origin": [-1.3, 1, 5]}, - "faces": { - "north": {"uv": [0.5, 0.5, 1, 2.75], "texture": "#0"}, - "east": {"uv": [0, 0.5, 0.5, 2.75], "texture": "#0"}, - "south": {"uv": [1.5, 0.5, 2, 2.75], "texture": "#0"}, - "west": {"uv": [1, 0.5, 1.5, 2.75], "texture": "#0"}, - "up": {"uv": [1, 0.5, 0.5, 0], "texture": "#0"}, - "down": {"uv": [1.5, 0, 1, 0.5], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "body", - "origin": [0, 20, 0], - "color": 0, - "children": [0, 1] - }, - { - "name": "tentacle", - "origin": [3.7, 13, -5], - "color": 0, - "children": [2, 3, 4, 5, 6, 7, 8, 9, 10] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/ghast/happy_ghast_baby.json b/src/main/resources/assets/minecraft/models/entity/ghast/happy_ghast_baby.json deleted file mode 100644 index 31c590c..0000000 --- a/src/main/resources/assets/minecraft/models/entity/ghast/happy_ghast_baby.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/ghast/happy_ghast_adult", - "textures": { - "0": "entity/ghast/happy_ghast_baby" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/guardian/guardian.json b/src/main/resources/assets/minecraft/models/entity/guardian/guardian.json deleted file mode 100644 index 9fa8d91..0000000 --- a/src/main/resources/assets/minecraft/models/entity/guardian/guardian.json +++ /dev/null @@ -1,352 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Made by Miraculixx", - "texture_size": [64, 64], - "textures": { - "0": "entity/guardian" - }, - "elements": [ - { - "name": "body", - "from": [-6, 2, -8], - "to": [6, 14, 8], - "faces": { - "north": {"uv": [4, 4, 7, 7], "texture": "#0"}, - "east": {"uv": [0, 4, 4, 7], "texture": "#0"}, - "south": {"uv": [11, 4, 14, 7], "texture": "#0"}, - "west": {"uv": [7, 4, 11, 7], "texture": "#0"}, - "up": {"uv": [7, 4, 4, 0], "texture": "#0"}, - "down": {"uv": [10, 0, 7, 4], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-6, 14, -6], - "to": [6, 16, 6], - "faces": { - "north": {"uv": [7, 13, 10, 13.5], "texture": "#0"}, - "east": {"uv": [4, 13, 7, 13.5], "texture": "#0"}, - "south": {"uv": [13, 13, 16, 13.5], "texture": "#0"}, - "west": {"uv": [10, 13, 13, 13.5], "texture": "#0"}, - "up": {"uv": [10, 13, 7, 10], "texture": "#0"}, - "down": {"uv": [13, 10, 10, 13], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-6, 0, -6], - "to": [6, 2, 6], - "faces": { - "north": {"uv": [7, 13, 10, 13.5], "texture": "#0"}, - "east": {"uv": [4, 13, 7, 13.5], "texture": "#0"}, - "south": {"uv": [13, 13, 16, 13.5], "texture": "#0"}, - "west": {"uv": [10, 13, 13, 13.5], "texture": "#0"}, - "up": {"uv": [10, 13, 7, 10], "texture": "#0"}, - "down": {"uv": [13, 10, 10, 13], "texture": "#0"} - } - }, - { - "name": "body", - "from": [6, 2, -6], - "to": [8, 14, 6], - "faces": { - "north": {"uv": [3, 10, 3.5, 13], "texture": "#0"}, - "east": {"uv": [0, 10, 3, 13], "texture": "#0"}, - "south": {"uv": [6.5, 10, 7, 13], "texture": "#0"}, - "west": {"uv": [3.5, 10, 6.5, 13], "texture": "#0"}, - "up": {"uv": [3.5, 10, 3, 7], "texture": "#0"}, - "down": {"uv": [4, 7, 3.5, 10], "texture": "#0"} - } - }, - { - "name": "body_sub_1", - "from": [-8, 2, -6], - "to": [-6, 14, 6], - "faces": { - "north": {"uv": [3.5, 10, 3, 13], "texture": "#0"}, - "east": {"uv": [6.5, 10, 3.5, 13], "texture": "#0"}, - "south": {"uv": [7, 10, 6.5, 13], "texture": "#0"}, - "west": {"uv": [3, 10, 0, 13], "texture": "#0"}, - "up": {"uv": [3, 10, 3.5, 7], "texture": "#0"}, - "down": {"uv": [3.5, 7, 4, 10], "texture": "#0"} - } - }, - { - "name": "eye", - "from": [-1, 6.5, -8.25], - "to": [1, 8.5, -7.25], - "faces": { - "north": {"uv": [2.25, 0.25, 2.75, 0.75], "texture": "#0"}, - "east": {"uv": [2, 0.25, 2.25, 0.75], "texture": "#0"}, - "south": {"uv": [3, 0.25, 3.5, 0.75], "texture": "#0"}, - "west": {"uv": [2.75, 0.25, 3, 0.75], "texture": "#0"}, - "up": {"uv": [2.75, 0.25, 2.25, 0], "texture": "#0"}, - "down": {"uv": [3.25, 0, 2.75, 0.25], "texture": "#0"} - } - }, - { - "name": "tail1", - "from": [-2, 6, 7], - "to": [2, 10, 15], - "faces": { - "north": {"uv": [12, 2, 13, 3], "texture": "#0"}, - "east": {"uv": [10, 2, 12, 3], "texture": "#0"}, - "south": {"uv": [15, 2, 16, 3], "texture": "#0"}, - "west": {"uv": [13, 2, 15, 3], "texture": "#0"}, - "up": {"uv": [13, 2, 12, 0], "texture": "#0"}, - "down": {"uv": [14, 0, 13, 2], "texture": "#0"} - } - }, - { - "name": "tail2", - "from": [-1.5, 6.5, 14], - "to": [1.5, 9.5, 21], - "faces": { - "north": {"uv": [1.75, 15.25, 2.5, 16], "texture": "#0"}, - "east": {"uv": [0, 15.25, 1.75, 16], "texture": "#0"}, - "south": {"uv": [4.25, 15.25, 5, 16], "texture": "#0"}, - "west": {"uv": [2.5, 15.25, 4.25, 16], "texture": "#0"}, - "up": {"uv": [2.5, 15.25, 1.75, 13.5], "texture": "#0"}, - "down": {"uv": [3.25, 13.5, 2.5, 15.25], "texture": "#0"} - } - }, - { - "name": "tail3", - "from": [-1, 7, 20], - "to": [1, 9, 26], - "faces": { - "north": {"uv": [11.75, 9.5, 12.25, 10], "texture": "#0"}, - "east": {"uv": [10.25, 9.5, 11.75, 10], "texture": "#0"}, - "south": {"uv": [13.75, 9.5, 14.25, 10], "texture": "#0"}, - "west": {"uv": [12.25, 9.5, 13.75, 10], "texture": "#0"}, - "up": {"uv": [12.25, 9.5, 11.75, 8], "texture": "#0"}, - "down": {"uv": [12.75, 8, 12.25, 9.5], "texture": "#0"} - } - }, - { - "name": "tail3", - "from": [0, 3.5, 23], - "to": [0, 12.5, 32], - "faces": { - "north": {"uv": [8.5, 7, 8.75, 9.25], "texture": "#0"}, - "east": {"uv": [6.25, 7, 8.5, 9.25], "texture": "#0"}, - "south": {"uv": [11, 7, 11.25, 9.25], "texture": "#0"}, - "west": {"uv": [8.5, 7, 6.25, 9.25], "texture": "#0"}, - "up": {"uv": [8.75, 7, 8.5, 4.75], "texture": "#0"}, - "down": {"uv": [9, 4.75, 8.75, 7], "texture": "#0"} - } - }, - { - "name": "spine12", - "from": [6, -3.5, -1], - "to": [8, 5.5, 1], - "rotation": {"x": 0, "y": 0, "z": -135, "origin": [7, 1, 0]}, - "faces": { - "north": {"uv": [0.5, 0.5, 1, 2.75], "texture": "#0"}, - "east": {"uv": [0, 0.5, 0.5, 2.75], "texture": "#0"}, - "south": {"uv": [1.5, 0.5, 2, 2.75], "texture": "#0"}, - "west": {"uv": [1, 0.5, 1.5, 2.75], "texture": "#0"}, - "up": {"uv": [1, 0.5, 0.5, 0], "texture": "#0"}, - "down": {"uv": [1.5, 0, 1, 0.5], "texture": "#0"} - } - }, - { - "name": "spine11", - "from": [-8, -3.5, -1], - "to": [-6, 5.5, 1], - "rotation": {"x": 0, "y": 0, "z": 135, "origin": [-7, 1, 0]}, - "faces": { - "north": {"uv": [0.5, 0.5, 1, 2.75], "texture": "#0"}, - "east": {"uv": [0, 0.5, 0.5, 2.75], "texture": "#0"}, - "south": {"uv": [1.5, 0.5, 2, 2.75], "texture": "#0"}, - "west": {"uv": [1, 0.5, 1.5, 2.75], "texture": "#0"}, - "up": {"uv": [1, 0.5, 0.5, 0], "texture": "#0"}, - "down": {"uv": [1.5, 0, 1, 0.5], "texture": "#0"} - } - }, - { - "name": "spine10", - "from": [-1, -3.5, -8], - "to": [1, 5.5, -6], - "rotation": {"x": -135, "y": 0, "z": 0, "origin": [0, 1, -7]}, - "faces": { - "north": {"uv": [0.5, 0.5, 1, 2.75], "texture": "#0"}, - "east": {"uv": [0, 0.5, 0.5, 2.75], "texture": "#0"}, - "south": {"uv": [1.5, 0.5, 2, 2.75], "texture": "#0"}, - "west": {"uv": [1, 0.5, 1.5, 2.75], "texture": "#0"}, - "up": {"uv": [1, 0.5, 0.5, 0], "texture": "#0"}, - "down": {"uv": [1.5, 0, 1, 0.5], "texture": "#0"} - } - }, - { - "name": "spine9", - "from": [-1, -3.5, 6], - "to": [1, 5.5, 8], - "rotation": {"x": 135, "y": 0, "z": 0, "origin": [0, 1, 7]}, - "faces": { - "north": {"uv": [0.5, 0.5, 1, 2.75], "texture": "#0"}, - "east": {"uv": [0, 0.5, 0.5, 2.75], "texture": "#0"}, - "south": {"uv": [1.5, 0.5, 2, 2.75], "texture": "#0"}, - "west": {"uv": [1, 0.5, 1.5, 2.75], "texture": "#0"}, - "up": {"uv": [1, 0.5, 0.5, 0], "texture": "#0"}, - "down": {"uv": [1.5, 0, 1, 0.5], "texture": "#0"} - } - }, - { - "name": "spine8", - "from": [6, 3.5, 6], - "to": [8, 12.5, 8], - "rotation": {"x": 45, "y": 0, "z": -90, "origin": [7, 8, 7]}, - "faces": { - "north": {"uv": [0.5, 0.5, 1, 2.75], "texture": "#0"}, - "east": {"uv": [0, 0.5, 0.5, 2.75], "texture": "#0"}, - "south": {"uv": [1.5, 0.5, 2, 2.75], "texture": "#0"}, - "west": {"uv": [1, 0.5, 1.5, 2.75], "texture": "#0"}, - "up": {"uv": [1, 0.5, 0.5, 0], "texture": "#0"}, - "down": {"uv": [1.5, 0, 1, 0.5], "texture": "#0"} - } - }, - { - "name": "spine7", - "from": [-8, 3.5, 6], - "to": [-6, 12.5, 8], - "rotation": {"x": 45, "y": 0, "z": 90, "origin": [-7, 8, 7]}, - "faces": { - "north": {"uv": [0.5, 0.5, 1, 2.75], "texture": "#0"}, - "east": {"uv": [0, 0.5, 0.5, 2.75], "texture": "#0"}, - "south": {"uv": [1.5, 0.5, 2, 2.75], "texture": "#0"}, - "west": {"uv": [1, 0.5, 1.5, 2.75], "texture": "#0"}, - "up": {"uv": [1, 0.5, 0.5, 0], "texture": "#0"}, - "down": {"uv": [1.5, 0, 1, 0.5], "texture": "#0"} - } - }, - { - "name": "spine6", - "from": [-8, 3.5, -8], - "to": [-6, 12.5, -6], - "rotation": {"x": -45, "y": 0, "z": 90, "origin": [-7, 8, -7]}, - "faces": { - "north": {"uv": [0.5, 0.5, 1, 2.75], "texture": "#0"}, - "east": {"uv": [0, 0.5, 0.5, 2.75], "texture": "#0"}, - "south": {"uv": [1.5, 0.5, 2, 2.75], "texture": "#0"}, - "west": {"uv": [1, 0.5, 1.5, 2.75], "texture": "#0"}, - "up": {"uv": [1, 0.5, 0.5, 0], "texture": "#0"}, - "down": {"uv": [1.5, 0, 1, 0.5], "texture": "#0"} - } - }, - { - "name": "spine5", - "from": [6, 3.5, -8], - "to": [8, 12.5, -6], - "rotation": {"x": -45, "y": 0, "z": -90, "origin": [7, 8, -7]}, - "faces": { - "north": {"uv": [0.5, 0.5, 1, 2.75], "texture": "#0"}, - "east": {"uv": [0, 0.5, 0.5, 2.75], "texture": "#0"}, - "south": {"uv": [1.5, 0.5, 2, 2.75], "texture": "#0"}, - "west": {"uv": [1, 0.5, 1.5, 2.75], "texture": "#0"}, - "up": {"uv": [1, 0.5, 0.5, 0], "texture": "#0"}, - "down": {"uv": [1.5, 0, 1, 0.5], "texture": "#0"} - } - }, - { - "name": "spine4", - "from": [6, 10.5, -1], - "to": [8, 19.5, 1], - "rotation": {"angle": -45, "axis": "z", "origin": [7, 15, 0]}, - "faces": { - "north": {"uv": [0.5, 0.5, 1, 2.75], "texture": "#0"}, - "east": {"uv": [0, 0.5, 0.5, 2.75], "texture": "#0"}, - "south": {"uv": [1.5, 0.5, 2, 2.75], "texture": "#0"}, - "west": {"uv": [1, 0.5, 1.5, 2.75], "texture": "#0"}, - "up": {"uv": [1, 0.5, 0.5, 0], "texture": "#0"}, - "down": {"uv": [1.5, 0, 1, 0.5], "texture": "#0"} - } - }, - { - "name": "spine3", - "from": [-8, 10.5, -1], - "to": [-6, 19.5, 1], - "rotation": {"angle": 45, "axis": "z", "origin": [-7, 15, 0]}, - "faces": { - "north": {"uv": [0.5, 0.5, 1, 2.75], "texture": "#0"}, - "east": {"uv": [0, 0.5, 0.5, 2.75], "texture": "#0"}, - "south": {"uv": [1.5, 0.5, 2, 2.75], "texture": "#0"}, - "west": {"uv": [1, 0.5, 1.5, 2.75], "texture": "#0"}, - "up": {"uv": [1, 0.5, 0.5, 0], "texture": "#0"}, - "down": {"uv": [1.5, 0, 1, 0.5], "texture": "#0"} - } - }, - { - "name": "spine2", - "from": [-1, 10.5, -8], - "to": [1, 19.5, -6], - "rotation": {"angle": -45, "axis": "x", "origin": [0, 15, -7]}, - "faces": { - "north": {"uv": [0.5, 0.5, 1, 2.75], "texture": "#0"}, - "east": {"uv": [0, 0.5, 0.5, 2.75], "texture": "#0"}, - "south": {"uv": [1.5, 0.5, 2, 2.75], "texture": "#0"}, - "west": {"uv": [1, 0.5, 1.5, 2.75], "texture": "#0"}, - "up": {"uv": [1, 0.5, 0.5, 0], "texture": "#0"}, - "down": {"uv": [1.5, 0, 1, 0.5], "texture": "#0"} - } - }, - { - "name": "spine1", - "from": [-1, 10.5, 6], - "to": [1, 19.5, 8], - "rotation": {"angle": 45, "axis": "x", "origin": [0, 15, 7]}, - "faces": { - "north": {"uv": [0.5, 0.5, 1, 2.75], "texture": "#0"}, - "east": {"uv": [0, 0.5, 0.5, 2.75], "texture": "#0"}, - "south": {"uv": [1.5, 0.5, 2, 2.75], "texture": "#0"}, - "west": {"uv": [1, 0.5, 1.5, 2.75], "texture": "#0"}, - "up": {"uv": [1, 0.5, 0.5, 0], "texture": "#0"}, - "down": {"uv": [1.5, 0, 1, 0.5], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "body", - "origin": [0, 24, 0], - "color": 0, - "children": [ - 0, - 1, - 2, - 3, - { - "name": "body_flipped", - "origin": [0, 0, 0], - "color": 0, - "children": [ - { - "name": "body_sub_1", - "origin": [0, 0, 0], - "color": 0, - "children": [4] - } - ] - } - ] - }, - { - "name": "eye", - "origin": [0, 23.5, -8.25], - "color": 0, - "children": [5] - }, - { - "name": "tail1", - "origin": [0, 24, 0], - "color": 0, - "children": [6, 7, 8, 9] - }, - { - "name": "spine", - "origin": [0, 12.5, 7], - "color": 0, - "children": [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_black.json b/src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_black.json deleted file mode 100644 index 2674d9e..0000000 --- a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_black.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/horse/horse_adult", - "textures": { - "0": "entity/horse/horse_black" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_brown.json b/src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_brown.json deleted file mode 100644 index 71c7f57..0000000 --- a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_brown.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/horse/horse_adult", - "textures": { - "0": "entity/horse/horse_brown" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_chestnut.json b/src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_chestnut.json deleted file mode 100644 index a1dcaad..0000000 --- a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_chestnut.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/horse/horse_adult", - "textures": { - "0": "entity/horse/horse_chestnut" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_creamy.json b/src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_creamy.json deleted file mode 100644 index 7918852..0000000 --- a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_creamy.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/horse/horse_adult", - "textures": { - "0": "entity/horse/horse_creamy" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_darkbrown.json b/src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_darkbrown.json deleted file mode 100644 index 9afd6f5..0000000 --- a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_darkbrown.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/horse/horse_adult", - "textures": { - "0": "entity/horse/horse_darkbrown" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_donkey.json b/src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_donkey.json deleted file mode 100644 index 172ea32..0000000 --- a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_donkey.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/horse/horse_adult", - "textures": { - "0": "entity/horse/donkey" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_gray.json b/src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_gray.json deleted file mode 100644 index 2ceca3d..0000000 --- a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_gray.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/horse/horse_adult", - "textures": { - "0": "entity/horse/horse_gray" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_mule.json b/src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_mule.json deleted file mode 100644 index aaecf08..0000000 --- a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_mule.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/horse/horse_adult", - "textures": { - "0": "entity/horse/mule" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_skeleton.json b/src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_skeleton.json deleted file mode 100644 index 1004047..0000000 --- a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_skeleton.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/horse/horse_adult", - "textures": { - "0": "entity/horse/horse_skeleton" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_white.json b/src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_white.json deleted file mode 100644 index 5bd6cbb..0000000 --- a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_white.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/horse/horse_adult", - "textures": { - "0": "entity/horse/horse_white" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_zombie.json b/src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_zombie.json deleted file mode 100644 index 7d95d79..0000000 --- a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_adult_zombie.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/horse/horse_adult", - "textures": { - "0": "entity/horse/horse_zombie" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_black.json b/src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_black.json deleted file mode 100644 index dc15c40..0000000 --- a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_black.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/horse/horse_baby", - "textures": { - "0": "entity/horse/horse_black" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_brown.json b/src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_brown.json deleted file mode 100644 index 39cfaa4..0000000 --- a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_brown.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/horse/horse_baby", - "textures": { - "0": "entity/horse/horse_brown" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_chestnut.json b/src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_chestnut.json deleted file mode 100644 index 51b639a..0000000 --- a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_chestnut.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/horse/horse_baby", - "textures": { - "0": "entity/horse/horse_chestnut" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_creamy.json b/src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_creamy.json deleted file mode 100644 index 775bb20..0000000 --- a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_creamy.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/horse/horse_baby", - "textures": { - "0": "entity/horse/horse_creamy" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_darkbrown.json b/src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_darkbrown.json deleted file mode 100644 index b384bbc..0000000 --- a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_darkbrown.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/horse/horse_baby", - "textures": { - "0": "entity/horse/horse_darkbrown" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_donkey.json b/src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_donkey.json deleted file mode 100644 index a4981a9..0000000 --- a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_donkey.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/horse/horse_baby", - "textures": { - "0": "entity/horse/donkey" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_gray.json b/src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_gray.json deleted file mode 100644 index 36c3b46..0000000 --- a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_gray.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/horse/horse_baby", - "textures": { - "0": "entity/horse/horse_gray" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_mule.json b/src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_mule.json deleted file mode 100644 index 3096922..0000000 --- a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_mule.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/horse/horse_baby", - "textures": { - "0": "entity/horse/mule" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_skeleton.json b/src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_skeleton.json deleted file mode 100644 index 8ba9ffd..0000000 --- a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_skeleton.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/horse/horse_baby", - "textures": { - "0": "entity/horse/horse_skeleton" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_white.json b/src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_white.json deleted file mode 100644 index 831158b..0000000 --- a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_white.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/horse/horse_baby", - "textures": { - "0": "entity/horse/horse_white" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_zombie.json b/src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_zombie.json deleted file mode 100644 index d4467ca..0000000 --- a/src/main/resources/assets/minecraft/models/entity/horse/color/horse_baby_zombie.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/horse/horse_baby", - "textures": { - "0": "entity/horse/horse_zombie" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/horse/horse_adult.json b/src/main/resources/assets/minecraft/models/entity/horse/horse_adult.json deleted file mode 100644 index ffffa30..0000000 --- a/src/main/resources/assets/minecraft/models/entity/horse/horse_adult.json +++ /dev/null @@ -1,198 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Made by Miraculixx", - "texture_size": [64, 64], - "textures": { - }, - "elements": [ - { - "name": "head", - "from": [-3, 25.25, -16.5], - "to": [3, 30.25, -9.5], - "rotation": {"angle": -35, "axis": "x", "origin": [0, 25.5, -13.75]}, - "faces": { - "north": {"uv": [1.75, 5, 3.25, 6.25], "texture": "#0"}, - "east": {"uv": [0, 5, 1.75, 6.25], "texture": "#0"}, - "south": {"uv": [5, 5, 6.5, 6.25], "texture": "#0"}, - "west": {"uv": [3.25, 5, 5, 6.25], "texture": "#0"}, - "up": {"uv": [3.25, 5, 1.75, 3.25], "texture": "#0"}, - "down": {"uv": [4.75, 3.25, 3.25, 5], "texture": "#0"} - } - }, - { - "name": "mouth", - "from": [-2, 25.25, -21.5], - "to": [2, 30.25, -16.5], - "rotation": {"angle": -35, "axis": "x", "origin": [0, 25.5, -13.75]}, - "faces": { - "north": {"uv": [1.25, 7.5, 2.25, 8.75], "texture": "#0"}, - "east": {"uv": [0, 7.5, 1.25, 8.75], "texture": "#0"}, - "south": {"uv": [3.5, 7.5, 4.5, 8.75], "texture": "#0"}, - "west": {"uv": [2.25, 7.5, 3.5, 8.75], "texture": "#0"}, - "up": {"uv": [2.25, 7.5, 1.25, 6.25], "texture": "#0"}, - "down": {"uv": [3.25, 6.25, 2.25, 7.5], "texture": "#0"} - } - }, - { - "name": "left_ear", - "from": [-2.55, 30.25, -10.51], - "to": [-0.55, 33.25, -9.51], - "rotation": {"angle": -35, "axis": "x", "origin": [0, 25.5, -13.75]}, - "faces": { - "north": {"uv": [5, 4.25, 5.5, 5], "texture": "#0"}, - "east": {"uv": [4.75, 4.25, 5, 5], "texture": "#0"}, - "south": {"uv": [5.75, 4.25, 6.25, 5], "texture": "#0"}, - "west": {"uv": [5.5, 4.25, 5.75, 5], "texture": "#0"}, - "up": {"uv": [5.5, 4.25, 5, 4], "texture": "#0"}, - "down": {"uv": [6, 4, 5.5, 4.25], "texture": "#0"} - } - }, - { - "name": "right_ear", - "from": [0.55, 30.25, -10.51], - "to": [2.55, 33.25, -9.51], - "rotation": {"angle": -35, "axis": "x", "origin": [0, 25.5, -13.75]}, - "faces": { - "north": {"uv": [5, 4.25, 5.5, 5], "texture": "#0"}, - "east": {"uv": [4.75, 4.25, 5, 5], "texture": "#0"}, - "south": {"uv": [5.75, 4.25, 6.25, 5], "texture": "#0"}, - "west": {"uv": [5.5, 4.25, 5.75, 5], "texture": "#0"}, - "up": {"uv": [5.5, 4.25, 5, 4], "texture": "#0"}, - "down": {"uv": [6, 4, 5.5, 4.25], "texture": "#0"} - } - }, - { - "name": "mane", - "from": [-1, 14.25, -9.5], - "to": [1, 30.25, -7.5], - "rotation": {"angle": -35, "axis": "x", "origin": [0, 25.5, -13.75]}, - "faces": { - "north": {"uv": [14.5, 9.5, 15, 13.5], "texture": "#0"}, - "east": {"uv": [14, 9.5, 14.5, 13.5], "texture": "#0"}, - "south": {"uv": [15.5, 9.5, 16, 13.5], "texture": "#0"}, - "west": {"uv": [15, 9.5, 15.5, 13.5], "texture": "#0"}, - "up": {"uv": [15, 9.5, 14.5, 9], "texture": "#0"}, - "down": {"uv": [15.5, 9, 15, 9.5], "texture": "#0"} - } - }, - { - "name": "neck", - "from": [-1.95, 13.25, -16.5], - "to": [2.05, 25.25, -9.5], - "rotation": {"angle": -35, "axis": "x", "origin": [0, 25.5, -13.75]}, - "faces": { - "north": {"uv": [1.75, 10.5, 2.75, 13.5], "texture": "#0"}, - "east": {"uv": [0, 10.5, 1.75, 13.5], "texture": "#0"}, - "south": {"uv": [4.5, 10.5, 5.5, 13.5], "texture": "#0"}, - "west": {"uv": [2.75, 10.5, 4.5, 13.5], "texture": "#0"}, - "up": {"uv": [2.75, 10.5, 1.75, 8.75], "texture": "#0"}, - "down": {"uv": [3.75, 8.75, 2.75, 10.5], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-5.05, 10.95, -11.05], - "to": [5.05, 21.05, 11.05], - "faces": { - "north": {"uv": [5.5, 13.5, 8, 16], "texture": "#0"}, - "east": {"uv": [0, 13.5, 5.5, 16], "texture": "#0"}, - "south": {"uv": [13.5, 13.5, 16, 16], "texture": "#0"}, - "west": {"uv": [8, 13.5, 13.5, 16], "texture": "#0"}, - "up": {"uv": [8, 13.5, 5.5, 8], "texture": "#0"}, - "down": {"uv": [10.5, 8, 8, 13.5], "texture": "#0"} - } - }, - { - "name": "tail", - "from": [-1.5, 6, 10.75], - "to": [1.5, 20, 14.75], - "rotation": {"angle": -27.5, "axis": "x", "origin": [0, 13, 12.75]}, - "faces": { - "north": {"uv": [11.5, 10, 12.25, 13.5], "texture": "#0"}, - "east": {"uv": [10.5, 10, 11.5, 13.5], "texture": "#0"}, - "south": {"uv": [13.25, 10, 14, 13.5], "texture": "#0"}, - "west": {"uv": [12.25, 10, 13.25, 13.5], "texture": "#0"}, - "up": {"uv": [12.25, 10, 11.5, 9], "texture": "#0"}, - "down": {"uv": [13, 9, 12.25, 10], "texture": "#0"} - } - }, - { - "name": "front_left_leg", - "from": [-5, 0, -10.9], - "to": [-1, 11, -6.9], - "faces": { - "north": {"uv": [14, 6.25, 13, 9], "texture": "#0"}, - "east": {"uv": [15, 6.25, 14, 9], "texture": "#0"}, - "south": {"uv": [16, 6.25, 15, 9], "texture": "#0"}, - "west": {"uv": [13, 6.25, 12, 9], "texture": "#0"}, - "up": {"uv": [13, 6.25, 14, 5.25], "texture": "#0"}, - "down": {"uv": [14, 5.25, 15, 6.25], "texture": "#0"} - } - }, - { - "name": "front_right_leg", - "from": [1, 0, -10.9], - "to": [5, 11, -6.9], - "faces": { - "north": {"uv": [13, 6.25, 14, 9], "texture": "#0"}, - "east": {"uv": [12, 6.25, 13, 9], "texture": "#0"}, - "south": {"uv": [15, 6.25, 16, 9], "texture": "#0"}, - "west": {"uv": [14, 6.25, 15, 9], "texture": "#0"}, - "up": {"uv": [14, 6.25, 13, 5.25], "texture": "#0"}, - "down": {"uv": [15, 5.25, 14, 6.25], "texture": "#0"} - } - }, - { - "name": "back_left_leg", - "from": [-5, 0, 7], - "to": [-1, 11, 11], - "faces": { - "north": {"uv": [14, 6.25, 13, 9], "texture": "#0"}, - "east": {"uv": [15, 6.25, 14, 9], "texture": "#0"}, - "south": {"uv": [16, 6.25, 15, 9], "texture": "#0"}, - "west": {"uv": [13, 6.25, 12, 9], "texture": "#0"}, - "up": {"uv": [13, 6.25, 14, 5.25], "texture": "#0"}, - "down": {"uv": [14, 5.25, 15, 6.25], "texture": "#0"} - } - }, - { - "name": "back_right_leg", - "from": [1, 0, 7], - "to": [5, 11, 11], - "faces": { - "north": {"uv": [13, 6.25, 14, 9], "texture": "#0"}, - "east": {"uv": [12, 6.25, 13, 9], "texture": "#0"}, - "south": {"uv": [15, 6.25, 16, 9], "texture": "#0"}, - "west": {"uv": [14, 6.25, 15, 9], "texture": "#0"}, - "up": {"uv": [14, 6.25, 13, 5.25], "texture": "#0"}, - "down": {"uv": [15, 5.25, 14, 6.25], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "head", - "origin": [0, 22, -9], - "color": 0, - "children": [0, 1, 2, 3, 4, 5] - }, - { - "name": "body", - "origin": [0, 13, 6], - "color": 0, - "children": [6] - }, - { - "name": "tail", - "origin": [0, 21, 11], - "color": 0, - "children": [7] - }, - { - "name": "leg", - "origin": [-4, 10, -9], - "color": 0, - "children": [8, 9, 10, 11] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/horse/horse_adult_chest.json b/src/main/resources/assets/minecraft/models/entity/horse/horse_adult_chest.json deleted file mode 100644 index 4b5b6b4..0000000 --- a/src/main/resources/assets/minecraft/models/entity/horse/horse_adult_chest.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Made by Miraculixx", - "texture_size": [64, 64], - "textures": { - "0": "entity/horse/donkey" - }, - "elements": [ - { - "name": "left_chest", - "from": [-11, 13, 3], - "to": [-3, 21, 6], - "rotation": {"x": 0, "y": 90, "z": 0, "origin": [-6, 17, 5]}, - "faces": { - "north": {"uv": [7.25, 6, 9.25, 8], "texture": "#0"}, - "east": {"uv": [6.5, 6, 7.25, 8], "texture": "#0"}, - "south": {"uv": [10, 6, 12, 8], "texture": "#0"}, - "west": {"uv": [9.25, 6, 10, 8], "texture": "#0"}, - "up": {"uv": [9.25, 6, 7.25, 5.25], "texture": "#0"}, - "down": {"uv": [11.25, 5.25, 9.25, 6], "texture": "#0"} - } - }, - { - "name": "right_chest", - "from": [1, 13, 4], - "to": [9, 21, 7], - "rotation": {"x": 0, "y": 90, "z": 0, "origin": [6, 17, 5]}, - "faces": { - "north": {"uv": [7.25, 6, 9.25, 8], "texture": "#0"}, - "east": {"uv": [6.5, 6, 7.25, 8], "texture": "#0"}, - "south": {"uv": [10, 6, 12, 8], "texture": "#0"}, - "west": {"uv": [9.25, 6, 10, 8], "texture": "#0"}, - "up": {"uv": [9.25, 6, 7.25, 5.25], "texture": "#0"}, - "down": {"uv": [11.25, 5.25, 9.25, 6], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "chest", - "origin": [-6, 21, 6], - "rotation": [0, 90, 0], - "color": 0, - "children": [0, 1] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/horse/horse_adult_markings.json b/src/main/resources/assets/minecraft/models/entity/horse/horse_adult_markings.json deleted file mode 100644 index 47a6e14..0000000 --- a/src/main/resources/assets/minecraft/models/entity/horse/horse_adult_markings.json +++ /dev/null @@ -1,203 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Made by Miraculixx", - "texture_size": [64, 64], - "textures": { - }, - "elements": [ - { - "name": "head", - "from": [-3.0568, 25.18843, -16.53251], - "to": [3.0632, 30.28843, -9.39251], - "rotation": {"angle": -35, "axis": "x", "origin": [0.0032, 25.44343, -13.72751]}, - "faces": { - "north": {"uv": [1.75, 5, 3.25, 6.25], "texture": "#0"}, - "east": {"uv": [0, 5, 1.75, 6.25], "texture": "#0"}, - "south": {"uv": [5, 5, 6.5, 6.25], "texture": "#0"}, - "west": {"uv": [3.25, 5, 5, 6.25], "texture": "#0"}, - "up": {"uv": [3.25, 5, 1.75, 3.25], "texture": "#0"}, - "down": {"uv": [4.75, 3.25, 3.25, 5], "texture": "#0"} - } - }, - { - "name": "mouth", - "from": [-2.04, 25.26836, -21.54318], - "to": [2.04, 30.36836, -16.44318], - "rotation": {"angle": -35, "axis": "x", "origin": [0, 25.52336, -13.63818]}, - "faces": { - "north": {"uv": [1.25, 7.5, 2.25, 8.75], "texture": "#0"}, - "east": {"uv": [0, 7.5, 1.25, 8.75], "texture": "#0"}, - "south": {"uv": [3.5, 7.5, 4.5, 8.75], "texture": "#0"}, - "west": {"uv": [2.25, 7.5, 3.5, 8.75], "texture": "#0"}, - "up": {"uv": [2.25, 7.5, 1.25, 6.25], "texture": "#0"}, - "down": {"uv": [3.25, 6.25, 2.25, 7.5], "texture": "#0"} - } - }, - { - "name": "left_ear", - "from": [-2.57, 30.1997, -10.43478], - "to": [-0.53, 33.2597, -9.41478], - "rotation": {"angle": -35, "axis": "x", "origin": [0.031, 25.3547, -13.73958]}, - "faces": { - "north": {"uv": [5, 4.25, 5.5, 5], "texture": "#0"}, - "east": {"uv": [4.75, 4.25, 5, 5], "texture": "#0"}, - "south": {"uv": [5.75, 4.25, 6.25, 5], "texture": "#0"}, - "west": {"uv": [5.5, 4.25, 5.75, 5], "texture": "#0"}, - "up": {"uv": [5.5, 4.25, 5, 4], "texture": "#0"}, - "down": {"uv": [6, 4, 5.5, 4.25], "texture": "#0"} - } - }, - { - "name": "right_ear", - "from": [0.53258, 30.1866, -10.42587], - "to": [2.57258, 33.2466, -9.40587], - "rotation": {"angle": -35, "axis": "x", "origin": [-0.02842, 25.3416, -13.73067]}, - "faces": { - "north": {"uv": [5, 4.25, 5.5, 5], "texture": "#0"}, - "east": {"uv": [4.75, 4.25, 5, 5], "texture": "#0"}, - "south": {"uv": [5.75, 4.25, 6.25, 5], "texture": "#0"}, - "west": {"uv": [5.5, 4.25, 5.75, 5], "texture": "#0"}, - "up": {"uv": [5.5, 4.25, 5, 4], "texture": "#0"}, - "down": {"uv": [6, 4, 5.5, 4.25], "texture": "#0"} - } - }, - { - "name": "mane", - "from": [-1.0168, 14.00768, -9.53206], - "to": [1.0232, 30.32768, -7.49206], - "rotation": {"angle": -35, "axis": "x", "origin": [0.0032, 25.48268, -13.86706]}, - "faces": { - "north": {"uv": [14.5, 9.5, 15, 13.5], "texture": "#0"}, - "east": {"uv": [14, 9.5, 14.5, 13.5], "texture": "#0"}, - "south": {"uv": [15.5, 9.5, 16, 13.5], "texture": "#0"}, - "west": {"uv": [15, 9.5, 15.5, 13.5], "texture": "#0"}, - "up": {"uv": [15, 9.5, 14.5, 9], "texture": "#0"}, - "down": {"uv": [15.5, 9, 15, 9.5], "texture": "#0"} - } - }, - { - "name": "neck", - "from": [-1.99, 13.09879, -16.63898], - "to": [2.09, 25.33879, -9.49898], - "rotation": {"angle": -35, "axis": "x", "origin": [-0.001, 25.59379, -13.83398]}, - "faces": { - "north": {"uv": [1.75, 10.5, 2.75, 13.5], "texture": "#0"}, - "east": {"uv": [0, 10.5, 1.75, 13.5], "texture": "#0"}, - "south": {"uv": [4.5, 10.5, 5.5, 13.5], "texture": "#0"}, - "west": {"uv": [2.75, 10.5, 4.5, 13.5], "texture": "#0"}, - "up": {"uv": [2.75, 10.5, 1.75, 8.75], "texture": "#0"}, - "down": {"uv": [3.75, 8.75, 2.75, 10.5], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-5.1478, 10.8426, -11.2678], - "to": [5.1542, 21.1446, 11.2742], - "rotation": {"angle": 0, "axis": "y", "origin": [0.0032, -0.3264, 0.0032]}, - "faces": { - "north": {"uv": [5.5, 13.5, 8, 16], "texture": "#0"}, - "east": {"uv": [0, 13.5, 5.5, 16], "texture": "#0"}, - "south": {"uv": [13.5, 13.5, 16, 16], "texture": "#0"}, - "west": {"uv": [8, 13.5, 13.5, 16], "texture": "#0"}, - "up": {"uv": [8, 13.5, 5.5, 8], "texture": "#0"}, - "down": {"uv": [10.5, 8, 8, 13.5], "texture": "#0"} - } - }, - { - "name": "tail", - "from": [-1.5268, 5.8548, 10.7081], - "to": [1.5332, 20.1348, 14.7881], - "rotation": {"angle": -27.5, "axis": "x", "origin": [0.0032, 12.9948, 12.7481]}, - "faces": { - "north": {"uv": [11.5, 10, 12.25, 13.5], "texture": "#0"}, - "east": {"uv": [10.5, 10, 11.5, 13.5], "texture": "#0"}, - "south": {"uv": [13.25, 10, 14, 13.5], "texture": "#0"}, - "west": {"uv": [12.25, 10, 13.25, 13.5], "texture": "#0"}, - "up": {"uv": [12.25, 10, 11.5, 9], "texture": "#0"}, - "down": {"uv": [13, 9, 12.25, 10], "texture": "#0"} - } - }, - { - "name": "front_left_leg", - "from": [-5.0356, -0.1122, -10.93324], - "to": [-0.9556, 11.1078, -6.85324], - "rotation": {"angle": 0, "axis": "y", "origin": [0.0644, -0.1122, 0.18476]}, - "faces": { - "north": {"uv": [14, 6.25, 13, 9], "texture": "#0"}, - "east": {"uv": [15, 6.25, 14, 9], "texture": "#0"}, - "south": {"uv": [16, 6.25, 15, 9], "texture": "#0"}, - "west": {"uv": [13, 6.25, 12, 9], "texture": "#0"}, - "up": {"uv": [13, 6.25, 14, 5.25], "texture": "#0"}, - "down": {"uv": [14, 5.25, 15, 6.25], "texture": "#0"} - } - }, - { - "name": "front_right_leg", - "from": [0.96, -0.11, -10.94], - "to": [5.04, 11.11, -6.86], - "rotation": {"angle": 0, "axis": "y", "origin": [-0.06, -0.11, 0.178]}, - "faces": { - "north": {"uv": [13, 6.25, 14, 9], "texture": "#0"}, - "east": {"uv": [12, 6.25, 13, 9], "texture": "#0"}, - "south": {"uv": [15, 6.25, 16, 9], "texture": "#0"}, - "west": {"uv": [14, 6.25, 15, 9], "texture": "#0"}, - "up": {"uv": [14, 6.25, 13, 5.25], "texture": "#0"}, - "down": {"uv": [15, 5.25, 14, 6.25], "texture": "#0"} - } - }, - { - "name": "back_left_leg", - "from": [-5.0356, -0.1122, 6.9596], - "to": [-0.9556, 11.1078, 11.0396], - "rotation": {"angle": 0, "axis": "y", "origin": [0.0644, -0.1122, -0.1804]}, - "faces": { - "north": {"uv": [14, 6.25, 13, 9], "texture": "#0"}, - "east": {"uv": [15, 6.25, 14, 9], "texture": "#0"}, - "south": {"uv": [16, 6.25, 15, 9], "texture": "#0"}, - "west": {"uv": [13, 6.25, 12, 9], "texture": "#0"}, - "up": {"uv": [13, 6.25, 14, 5.25], "texture": "#0"}, - "down": {"uv": [14, 5.25, 15, 6.25], "texture": "#0"} - } - }, - { - "name": "back_right_leg", - "from": [0.96, -0.11, 6.96], - "to": [5.04, 11.11, 11.04], - "rotation": {"angle": 0, "axis": "y", "origin": [-0.06, -0.11, -0.18]}, - "faces": { - "north": {"uv": [13, 6.25, 14, 9], "texture": "#0"}, - "east": {"uv": [12, 6.25, 13, 9], "texture": "#0"}, - "south": {"uv": [15, 6.25, 16, 9], "texture": "#0"}, - "west": {"uv": [14, 6.25, 15, 9], "texture": "#0"}, - "up": {"uv": [14, 6.25, 13, 5.25], "texture": "#0"}, - "down": {"uv": [15, 5.25, 14, 6.25], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "head", - "origin": [0, 22, -9], - "color": 0, - "children": [0, 1, 2, 3, 4, 5] - }, - { - "name": "body", - "origin": [0, 13, 6], - "color": 0, - "children": [6] - }, - { - "name": "tail", - "origin": [0, 21, 11], - "color": 0, - "children": [7] - }, - { - "name": "leg", - "origin": [-4, 10, -9], - "color": 0, - "children": [8, 9, 10, 11] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/horse/horse_baby.json b/src/main/resources/assets/minecraft/models/entity/horse/horse_baby.json deleted file mode 100644 index f40a512..0000000 --- a/src/main/resources/assets/minecraft/models/entity/horse/horse_baby.json +++ /dev/null @@ -1,198 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Made by Miraculixx", - "texture_size": [64, 64], - "textures": { - }, - "elements": [ - { - "name": "head", - "from": [-1.5, 12.625, -8.25], - "to": [1.5, 15.125, -4.75], - "rotation": {"angle": -35, "axis": "x", "origin": [0, 12.75, -6.875]}, - "faces": { - "north": {"uv": [1.75, 5, 3.25, 6.25], "texture": "#0"}, - "east": {"uv": [0, 5, 1.75, 6.25], "texture": "#0"}, - "south": {"uv": [5, 5, 6.5, 6.25], "texture": "#0"}, - "west": {"uv": [3.25, 5, 5, 6.25], "texture": "#0"}, - "up": {"uv": [3.25, 5, 1.75, 3.25], "texture": "#0"}, - "down": {"uv": [4.75, 3.25, 3.25, 5], "texture": "#0"} - } - }, - { - "name": "mouth", - "from": [-1, 12.625, -10.75], - "to": [1, 15.125, -8.25], - "rotation": {"angle": -35, "axis": "x", "origin": [0, 12.75, -6.875]}, - "faces": { - "north": {"uv": [1.25, 7.5, 2.25, 8.75], "texture": "#0"}, - "east": {"uv": [0, 7.5, 1.25, 8.75], "texture": "#0"}, - "south": {"uv": [3.5, 7.5, 4.5, 8.75], "texture": "#0"}, - "west": {"uv": [2.25, 7.5, 3.5, 8.75], "texture": "#0"}, - "up": {"uv": [2.25, 7.5, 1.25, 6.25], "texture": "#0"}, - "down": {"uv": [3.25, 6.25, 2.25, 7.5], "texture": "#0"} - } - }, - { - "name": "left_ear", - "from": [-1.275, 15.125, -5.255], - "to": [-0.275, 16.625, -4.755], - "rotation": {"angle": -35, "axis": "x", "origin": [0, 12.75, -6.875]}, - "faces": { - "north": {"uv": [5, 4.25, 5.5, 5], "texture": "#0"}, - "east": {"uv": [4.75, 4.25, 5, 5], "texture": "#0"}, - "south": {"uv": [5.75, 4.25, 6.25, 5], "texture": "#0"}, - "west": {"uv": [5.5, 4.25, 5.75, 5], "texture": "#0"}, - "up": {"uv": [5.5, 4.25, 5, 4], "texture": "#0"}, - "down": {"uv": [6, 4, 5.5, 4.25], "texture": "#0"} - } - }, - { - "name": "right_ear", - "from": [0.275, 15.125, -5.255], - "to": [1.275, 16.625, -4.755], - "rotation": {"angle": -35, "axis": "x", "origin": [0, 12.75, -6.875]}, - "faces": { - "north": {"uv": [5, 4.25, 5.5, 5], "texture": "#0"}, - "east": {"uv": [4.75, 4.25, 5, 5], "texture": "#0"}, - "south": {"uv": [5.75, 4.25, 6.25, 5], "texture": "#0"}, - "west": {"uv": [5.5, 4.25, 5.75, 5], "texture": "#0"}, - "up": {"uv": [5.5, 4.25, 5, 4], "texture": "#0"}, - "down": {"uv": [6, 4, 5.5, 4.25], "texture": "#0"} - } - }, - { - "name": "mane", - "from": [-0.5, 7.125, -4.75], - "to": [0.5, 15.125, -3.75], - "rotation": {"angle": -35, "axis": "x", "origin": [0, 12.75, -6.875]}, - "faces": { - "north": {"uv": [14.5, 9.5, 15, 13.5], "texture": "#0"}, - "east": {"uv": [14, 9.5, 14.5, 13.5], "texture": "#0"}, - "south": {"uv": [15.5, 9.5, 16, 13.5], "texture": "#0"}, - "west": {"uv": [15, 9.5, 15.5, 13.5], "texture": "#0"}, - "up": {"uv": [15, 9.5, 14.5, 9], "texture": "#0"}, - "down": {"uv": [15.5, 9, 15, 9.5], "texture": "#0"} - } - }, - { - "name": "neck", - "from": [-0.975, 6.625, -8.25], - "to": [1.025, 12.625, -4.75], - "rotation": {"angle": -35, "axis": "x", "origin": [0, 12.75, -6.875]}, - "faces": { - "north": {"uv": [1.75, 10.5, 2.75, 13.5], "texture": "#0"}, - "east": {"uv": [0, 10.5, 1.75, 13.5], "texture": "#0"}, - "south": {"uv": [4.5, 10.5, 5.5, 13.5], "texture": "#0"}, - "west": {"uv": [2.75, 10.5, 4.5, 13.5], "texture": "#0"}, - "up": {"uv": [2.75, 10.5, 1.75, 8.75], "texture": "#0"}, - "down": {"uv": [3.75, 8.75, 2.75, 10.5], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-2.525, 5.475, -5.525], - "to": [2.525, 10.525, 5.525], - "faces": { - "north": {"uv": [5.5, 13.5, 8, 16], "texture": "#0"}, - "east": {"uv": [0, 13.5, 5.5, 16], "texture": "#0"}, - "south": {"uv": [13.5, 13.5, 16, 16], "texture": "#0"}, - "west": {"uv": [8, 13.5, 13.5, 16], "texture": "#0"}, - "up": {"uv": [8, 13.5, 5.5, 8], "texture": "#0"}, - "down": {"uv": [10.5, 8, 8, 13.5], "texture": "#0"} - } - }, - { - "name": "tail", - "from": [-0.75, 3, 5.375], - "to": [0.75, 10, 7.375], - "rotation": {"angle": -27.5, "axis": "x", "origin": [0, 6.5, 6.375]}, - "faces": { - "north": {"uv": [11.5, 10, 12.25, 13.5], "texture": "#0"}, - "east": {"uv": [10.5, 10, 11.5, 13.5], "texture": "#0"}, - "south": {"uv": [13.25, 10, 14, 13.5], "texture": "#0"}, - "west": {"uv": [12.25, 10, 13.25, 13.5], "texture": "#0"}, - "up": {"uv": [12.25, 10, 11.5, 9], "texture": "#0"}, - "down": {"uv": [13, 9, 12.25, 10], "texture": "#0"} - } - }, - { - "name": "front_left_leg", - "from": [-2.5, 0, -5.45], - "to": [-0.5, 5.5, -3.45], - "faces": { - "north": {"uv": [14, 6.25, 13, 9], "texture": "#0"}, - "east": {"uv": [15, 6.25, 14, 9], "texture": "#0"}, - "south": {"uv": [16, 6.25, 15, 9], "texture": "#0"}, - "west": {"uv": [13, 6.25, 12, 9], "texture": "#0"}, - "up": {"uv": [13, 6.25, 14, 5.25], "texture": "#0"}, - "down": {"uv": [14, 5.25, 15, 6.25], "texture": "#0"} - } - }, - { - "name": "front_right_leg", - "from": [0.5, 0, -5.45], - "to": [2.5, 5.5, -3.45], - "faces": { - "north": {"uv": [13, 6.25, 14, 9], "texture": "#0"}, - "east": {"uv": [12, 6.25, 13, 9], "texture": "#0"}, - "south": {"uv": [15, 6.25, 16, 9], "texture": "#0"}, - "west": {"uv": [14, 6.25, 15, 9], "texture": "#0"}, - "up": {"uv": [14, 6.25, 13, 5.25], "texture": "#0"}, - "down": {"uv": [15, 5.25, 14, 6.25], "texture": "#0"} - } - }, - { - "name": "back_left_leg", - "from": [-2.5, 0, 3.5], - "to": [-0.5, 5.5, 5.5], - "faces": { - "north": {"uv": [14, 6.25, 13, 9], "texture": "#0"}, - "east": {"uv": [15, 6.25, 14, 9], "texture": "#0"}, - "south": {"uv": [16, 6.25, 15, 9], "texture": "#0"}, - "west": {"uv": [13, 6.25, 12, 9], "texture": "#0"}, - "up": {"uv": [13, 6.25, 14, 5.25], "texture": "#0"}, - "down": {"uv": [14, 5.25, 15, 6.25], "texture": "#0"} - } - }, - { - "name": "back_right_leg", - "from": [0.5, 0, 3.5], - "to": [2.5, 5.5, 5.5], - "faces": { - "north": {"uv": [13, 6.25, 14, 9], "texture": "#0"}, - "east": {"uv": [12, 6.25, 13, 9], "texture": "#0"}, - "south": {"uv": [15, 6.25, 16, 9], "texture": "#0"}, - "west": {"uv": [14, 6.25, 15, 9], "texture": "#0"}, - "up": {"uv": [14, 6.25, 13, 5.25], "texture": "#0"}, - "down": {"uv": [15, 5.25, 14, 6.25], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "head", - "origin": [0, 22, -9], - "color": 0, - "children": [0, 1, 2, 3, 4, 5] - }, - { - "name": "body", - "origin": [0, 13, 6], - "color": 0, - "children": [6] - }, - { - "name": "tail", - "origin": [0, 21, 11], - "color": 0, - "children": [7] - }, - { - "name": "leg", - "origin": [-4, 10, -9], - "color": 0, - "children": [8, 9, 10, 11] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/horse/horse_baby_chest.json b/src/main/resources/assets/minecraft/models/entity/horse/horse_baby_chest.json deleted file mode 100644 index 4822d4f..0000000 --- a/src/main/resources/assets/minecraft/models/entity/horse/horse_baby_chest.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Made by Miraculixx", - "texture_size": [64, 64], - "textures": { - "0": "entity/horse/donkey" - }, - "elements": [ - { - "name": "left_chest", - "from": [-5.5, 6.5, 1.5], - "to": [-1.5, 10.5, 3], - "rotation": {"x": 0, "y": 90, "z": 0, "origin": [-3, 8.5, 2.5]}, - "faces": { - "north": {"uv": [7.25, 6, 9.25, 8], "texture": "#0"}, - "east": {"uv": [6.5, 6, 7.25, 8], "texture": "#0"}, - "south": {"uv": [10, 6, 12, 8], "texture": "#0"}, - "west": {"uv": [9.25, 6, 10, 8], "texture": "#0"}, - "up": {"uv": [9.25, 6, 7.25, 5.25], "texture": "#0"}, - "down": {"uv": [11.25, 5.25, 9.25, 6], "texture": "#0"} - } - }, - { - "name": "right_chest", - "from": [0.5, 6.5, 2], - "to": [4.5, 10.5, 3.5], - "rotation": {"x": 0, "y": 90, "z": 0, "origin": [3, 8.5, 2.5]}, - "faces": { - "north": {"uv": [7.25, 6, 9.25, 8], "texture": "#0"}, - "east": {"uv": [6.5, 6, 7.25, 8], "texture": "#0"}, - "south": {"uv": [10, 6, 12, 8], "texture": "#0"}, - "west": {"uv": [9.25, 6, 10, 8], "texture": "#0"}, - "up": {"uv": [9.25, 6, 7.25, 5.25], "texture": "#0"}, - "down": {"uv": [11.25, 5.25, 9.25, 6], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "chest", - "origin": [-6, 21, 6], - "rotation": [0, 90, 0], - "color": 0, - "children": [0, 1] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/horse/horse_baby_markings.json b/src/main/resources/assets/minecraft/models/entity/horse/horse_baby_markings.json deleted file mode 100644 index 4e802f3..0000000 --- a/src/main/resources/assets/minecraft/models/entity/horse/horse_baby_markings.json +++ /dev/null @@ -1,203 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Made by Miraculixx", - "texture_size": [64, 64], - "textures": { - }, - "elements": [ - { - "name": "head", - "from": [-1.5284, 12.59421, -8.26625], - "to": [1.5316, 15.14421, -4.69625], - "rotation": {"angle": -35, "axis": "x", "origin": [0.0016, 12.72171, -6.86375]}, - "faces": { - "north": {"uv": [1.75, 5, 3.25, 6.25], "texture": "#0"}, - "east": {"uv": [0, 5, 1.75, 6.25], "texture": "#0"}, - "south": {"uv": [5, 5, 6.5, 6.25], "texture": "#0"}, - "west": {"uv": [3.25, 5, 5, 6.25], "texture": "#0"}, - "up": {"uv": [3.25, 5, 1.75, 3.25], "texture": "#0"}, - "down": {"uv": [4.75, 3.25, 3.25, 5], "texture": "#0"} - } - }, - { - "name": "mouth", - "from": [-1.02, 12.63418, -10.77159], - "to": [1.02, 15.18418, -8.22159], - "rotation": {"angle": -35, "axis": "x", "origin": [0, 12.76168, -6.81909]}, - "faces": { - "north": {"uv": [1.25, 7.5, 2.25, 8.75], "texture": "#0"}, - "east": {"uv": [0, 7.5, 1.25, 8.75], "texture": "#0"}, - "south": {"uv": [3.5, 7.5, 4.5, 8.75], "texture": "#0"}, - "west": {"uv": [2.25, 7.5, 3.5, 8.75], "texture": "#0"}, - "up": {"uv": [2.25, 7.5, 1.25, 6.25], "texture": "#0"}, - "down": {"uv": [3.25, 6.25, 2.25, 7.5], "texture": "#0"} - } - }, - { - "name": "left_ear", - "from": [-1.285, 15.09985, -5.21739], - "to": [-0.265, 16.62985, -4.70739], - "rotation": {"angle": -35, "axis": "x", "origin": [0.0155, 12.67735, -6.86979]}, - "faces": { - "north": {"uv": [5, 4.25, 5.5, 5], "texture": "#0"}, - "east": {"uv": [4.75, 4.25, 5, 5], "texture": "#0"}, - "south": {"uv": [5.75, 4.25, 6.25, 5], "texture": "#0"}, - "west": {"uv": [5.5, 4.25, 5.75, 5], "texture": "#0"}, - "up": {"uv": [5.5, 4.25, 5, 4], "texture": "#0"}, - "down": {"uv": [6, 4, 5.5, 4.25], "texture": "#0"} - } - }, - { - "name": "right_ear", - "from": [0.26629, 15.0933, -5.21293], - "to": [1.28629, 16.6233, -4.70293], - "rotation": {"angle": -35, "axis": "x", "origin": [-0.01421, 12.6708, -6.86533]}, - "faces": { - "north": {"uv": [5, 4.25, 5.5, 5], "texture": "#0"}, - "east": {"uv": [4.75, 4.25, 5, 5], "texture": "#0"}, - "south": {"uv": [5.75, 4.25, 6.25, 5], "texture": "#0"}, - "west": {"uv": [5.5, 4.25, 5.75, 5], "texture": "#0"}, - "up": {"uv": [5.5, 4.25, 5, 4], "texture": "#0"}, - "down": {"uv": [6, 4, 5.5, 4.25], "texture": "#0"} - } - }, - { - "name": "mane", - "from": [-0.5084, 7.00384, -4.76603], - "to": [0.5116, 15.16384, -3.74603], - "rotation": {"angle": -35, "axis": "x", "origin": [0.0016, 12.74134, -6.93353]}, - "faces": { - "north": {"uv": [14.5, 9.5, 15, 13.5], "texture": "#0"}, - "east": {"uv": [14, 9.5, 14.5, 13.5], "texture": "#0"}, - "south": {"uv": [15.5, 9.5, 16, 13.5], "texture": "#0"}, - "west": {"uv": [15, 9.5, 15.5, 13.5], "texture": "#0"}, - "up": {"uv": [15, 9.5, 14.5, 9], "texture": "#0"}, - "down": {"uv": [15.5, 9, 15, 9.5], "texture": "#0"} - } - }, - { - "name": "neck", - "from": [-0.995, 6.5494, -8.31949], - "to": [1.045, 12.6694, -4.74949], - "rotation": {"angle": -35, "axis": "x", "origin": [-0.0005, 12.7969, -6.91699]}, - "faces": { - "north": {"uv": [1.75, 10.5, 2.75, 13.5], "texture": "#0"}, - "east": {"uv": [0, 10.5, 1.75, 13.5], "texture": "#0"}, - "south": {"uv": [4.5, 10.5, 5.5, 13.5], "texture": "#0"}, - "west": {"uv": [2.75, 10.5, 4.5, 13.5], "texture": "#0"}, - "up": {"uv": [2.75, 10.5, 1.75, 8.75], "texture": "#0"}, - "down": {"uv": [3.75, 8.75, 2.75, 10.5], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-2.5739, 5.4213, -5.6339], - "to": [2.5771, 10.5723, 5.6371], - "rotation": {"angle": 0, "axis": "y", "origin": [0.0016, -0.1632, 0.0016]}, - "faces": { - "north": {"uv": [5.5, 13.5, 8, 16], "texture": "#0"}, - "east": {"uv": [0, 13.5, 5.5, 16], "texture": "#0"}, - "south": {"uv": [13.5, 13.5, 16, 16], "texture": "#0"}, - "west": {"uv": [8, 13.5, 13.5, 16], "texture": "#0"}, - "up": {"uv": [8, 13.5, 5.5, 8], "texture": "#0"}, - "down": {"uv": [10.5, 8, 8, 13.5], "texture": "#0"} - } - }, - { - "name": "tail", - "from": [-0.7634, 2.9274, 5.35405], - "to": [0.7666, 10.0674, 7.39405], - "rotation": {"angle": -27.5, "axis": "x", "origin": [0.0016, 6.4974, 6.37405]}, - "faces": { - "north": {"uv": [11.5, 10, 12.25, 13.5], "texture": "#0"}, - "east": {"uv": [10.5, 10, 11.5, 13.5], "texture": "#0"}, - "south": {"uv": [13.25, 10, 14, 13.5], "texture": "#0"}, - "west": {"uv": [12.25, 10, 13.25, 13.5], "texture": "#0"}, - "up": {"uv": [12.25, 10, 11.5, 9], "texture": "#0"}, - "down": {"uv": [13, 9, 12.25, 10], "texture": "#0"} - } - }, - { - "name": "front_left_leg", - "from": [-2.5178, -0.0561, -5.46662], - "to": [-0.4778, 5.5539, -3.42662], - "rotation": {"angle": 0, "axis": "y", "origin": [0.0322, -0.0561, 0.09238]}, - "faces": { - "north": {"uv": [14, 6.25, 13, 9], "texture": "#0"}, - "east": {"uv": [15, 6.25, 14, 9], "texture": "#0"}, - "south": {"uv": [16, 6.25, 15, 9], "texture": "#0"}, - "west": {"uv": [13, 6.25, 12, 9], "texture": "#0"}, - "up": {"uv": [13, 6.25, 14, 5.25], "texture": "#0"}, - "down": {"uv": [14, 5.25, 15, 6.25], "texture": "#0"} - } - }, - { - "name": "front_right_leg", - "from": [0.48, -0.055, -5.47], - "to": [2.52, 5.555, -3.43], - "rotation": {"angle": 0, "axis": "y", "origin": [-0.03, -0.055, 0.089]}, - "faces": { - "north": {"uv": [13, 6.25, 14, 9], "texture": "#0"}, - "east": {"uv": [12, 6.25, 13, 9], "texture": "#0"}, - "south": {"uv": [15, 6.25, 16, 9], "texture": "#0"}, - "west": {"uv": [14, 6.25, 15, 9], "texture": "#0"}, - "up": {"uv": [14, 6.25, 13, 5.25], "texture": "#0"}, - "down": {"uv": [15, 5.25, 14, 6.25], "texture": "#0"} - } - }, - { - "name": "back_left_leg", - "from": [-2.5178, -0.0561, 3.4798], - "to": [-0.4778, 5.5539, 5.5198], - "rotation": {"angle": 0, "axis": "y", "origin": [0.0322, -0.0561, -0.0902]}, - "faces": { - "north": {"uv": [14, 6.25, 13, 9], "texture": "#0"}, - "east": {"uv": [15, 6.25, 14, 9], "texture": "#0"}, - "south": {"uv": [16, 6.25, 15, 9], "texture": "#0"}, - "west": {"uv": [13, 6.25, 12, 9], "texture": "#0"}, - "up": {"uv": [13, 6.25, 14, 5.25], "texture": "#0"}, - "down": {"uv": [14, 5.25, 15, 6.25], "texture": "#0"} - } - }, - { - "name": "back_right_leg", - "from": [0.48, -0.055, 3.48], - "to": [2.52, 5.555, 5.52], - "rotation": {"angle": 0, "axis": "y", "origin": [-0.03, -0.055, -0.09]}, - "faces": { - "north": {"uv": [13, 6.25, 14, 9], "texture": "#0"}, - "east": {"uv": [12, 6.25, 13, 9], "texture": "#0"}, - "south": {"uv": [15, 6.25, 16, 9], "texture": "#0"}, - "west": {"uv": [14, 6.25, 15, 9], "texture": "#0"}, - "up": {"uv": [14, 6.25, 13, 5.25], "texture": "#0"}, - "down": {"uv": [15, 5.25, 14, 6.25], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "head", - "origin": [0, 22, -9], - "color": 0, - "children": [0, 1, 2, 3, 4, 5] - }, - { - "name": "body", - "origin": [0, 13, 6], - "color": 0, - "children": [6] - }, - { - "name": "tail", - "origin": [0, 21, 11], - "color": 0, - "children": [7] - }, - { - "name": "leg", - "origin": [-4, 10, -9], - "color": 0, - "children": [8, 9, 10, 11] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/horse/marking/horse_adult_blackdots.json b/src/main/resources/assets/minecraft/models/entity/horse/marking/horse_adult_blackdots.json deleted file mode 100644 index f72f930..0000000 --- a/src/main/resources/assets/minecraft/models/entity/horse/marking/horse_adult_blackdots.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/horse/horse_adult_markings", - "textures": { - "0": "entity/horse/horse_markings_blackdots" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/horse/marking/horse_adult_white.json b/src/main/resources/assets/minecraft/models/entity/horse/marking/horse_adult_white.json deleted file mode 100644 index 7dbd30f..0000000 --- a/src/main/resources/assets/minecraft/models/entity/horse/marking/horse_adult_white.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/horse/horse_adult_markings", - "textures": { - "0": "entity/horse/horse_markings_white" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/horse/marking/horse_adult_whitedots.json b/src/main/resources/assets/minecraft/models/entity/horse/marking/horse_adult_whitedots.json deleted file mode 100644 index ad2face..0000000 --- a/src/main/resources/assets/minecraft/models/entity/horse/marking/horse_adult_whitedots.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/horse/horse_adult_markings", - "textures": { - "0": "entity/horse/horse_markings_whitedots" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/horse/marking/horse_adult_whitefield.json b/src/main/resources/assets/minecraft/models/entity/horse/marking/horse_adult_whitefield.json deleted file mode 100644 index 2098a41..0000000 --- a/src/main/resources/assets/minecraft/models/entity/horse/marking/horse_adult_whitefield.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/horse/horse_adult_markings", - "textures": { - "0": "entity/horse/horse_markings_whitefield" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/horse/marking/horse_baby_blackdots.json b/src/main/resources/assets/minecraft/models/entity/horse/marking/horse_baby_blackdots.json deleted file mode 100644 index 18bdc8e..0000000 --- a/src/main/resources/assets/minecraft/models/entity/horse/marking/horse_baby_blackdots.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/horse/horse_baby_markings", - "textures": { - "0": "entity/horse/horse_markings_blackdots" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/horse/marking/horse_baby_white.json b/src/main/resources/assets/minecraft/models/entity/horse/marking/horse_baby_white.json deleted file mode 100644 index 5563bcc..0000000 --- a/src/main/resources/assets/minecraft/models/entity/horse/marking/horse_baby_white.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/horse/horse_baby_markings", - "textures": { - "0": "entity/horse/horse_markings_white" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/horse/marking/horse_baby_whitedots.json b/src/main/resources/assets/minecraft/models/entity/horse/marking/horse_baby_whitedots.json deleted file mode 100644 index 898b8bc..0000000 --- a/src/main/resources/assets/minecraft/models/entity/horse/marking/horse_baby_whitedots.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/horse/horse_baby_markings", - "textures": { - "0": "entity/horse/horse_markings_whitedots" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/horse/marking/horse_baby_whitefield.json b/src/main/resources/assets/minecraft/models/entity/horse/marking/horse_baby_whitefield.json deleted file mode 100644 index 6999ddf..0000000 --- a/src/main/resources/assets/minecraft/models/entity/horse/marking/horse_baby_whitefield.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/horse/horse_baby_markings", - "textures": { - "0": "entity/horse/horse_markings_whitefield" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/iron_golem/iron_golem.json b/src/main/resources/assets/minecraft/models/entity/iron_golem/iron_golem.json deleted file mode 100644 index ec0e1dc..0000000 --- a/src/main/resources/assets/minecraft/models/entity/iron_golem/iron_golem.json +++ /dev/null @@ -1,159 +0,0 @@ -{ - "credit": "Model by Miraculixx", - "texture_size": [128, 128], - "textures": { - "0": "entity/iron_golem/iron_golem" - }, - "elements": [ - { - "name": "body", - "from": [-9, 21, -5], - "to": [9, 33, 6], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 1]}, - "faces": { - "north": {"uv": [1.375, 6.375, 3.625, 7.875], "texture": "#0"}, - "east": {"uv": [0, 6.375, 1.375, 7.875], "texture": "#0"}, - "south": {"uv": [5, 6.375, 7.25, 7.875], "texture": "#0"}, - "west": {"uv": [3.625, 6.375, 5, 7.875], "texture": "#0"}, - "up": {"uv": [3.625, 6.375, 1.375, 5], "texture": "#0"}, - "down": {"uv": [5.875, 5, 3.625, 6.375], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-5, 15.5, -2.5], - "to": [5, 21.5, 4.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 1]}, - "faces": { - "north": {"uv": [0.75, 9.5, 1.875, 10.125], "texture": "#0"}, - "east": {"uv": [0, 9.5, 0.75, 10.125], "texture": "#0"}, - "south": {"uv": [2.625, 9.5, 3.75, 10.125], "texture": "#0"}, - "west": {"uv": [1.875, 9.5, 2.625, 10.125], "texture": "#0"}, - "up": {"uv": [1.875, 9.5, 0.75, 8.75], "texture": "#0"}, - "down": {"uv": [3, 8.75, 1.875, 9.5], "texture": "#0"} - } - }, - { - "name": "head", - "from": [-4, 33, -6.5], - "to": [4, 43, 1.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 1]}, - "faces": { - "north": {"uv": [1, 1, 2, 2.25], "texture": "#0"}, - "east": {"uv": [0, 1, 1, 2.25], "texture": "#0"}, - "south": {"uv": [3, 1, 4, 2.25], "texture": "#0"}, - "west": {"uv": [2, 1, 3, 2.25], "texture": "#0"}, - "up": {"uv": [2, 1, 1, 0], "texture": "#0"}, - "down": {"uv": [3, 0, 2, 1], "texture": "#0"} - } - }, - { - "name": "head", - "from": [-1, 32, -8.5], - "to": [1, 36, -6.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 1]}, - "faces": { - "north": {"uv": [3.25, 0.25, 3.5, 0.75], "texture": "#0"}, - "east": {"uv": [3, 0.25, 3.25, 0.75], "texture": "#0"}, - "south": {"uv": [3.75, 0.25, 4, 0.75], "texture": "#0"}, - "west": {"uv": [3.5, 0.25, 3.75, 0.75], "texture": "#0"}, - "up": {"uv": [3.5, 0.25, 3.25, 0], "texture": "#0"}, - "down": {"uv": [3.75, 0, 3.5, 0.25], "texture": "#0"} - } - }, - { - "name": "right_arm", - "from": [9, 3.5, -2], - "to": [13, 33.5, 4], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 1]}, - "faces": { - "north": {"uv": [8.25, 3.375, 8.75, 7.125], "texture": "#0"}, - "east": {"uv": [7.5, 3.375, 8.25, 7.125], "texture": "#0"}, - "south": {"uv": [9.5, 3.375, 10, 7.125], "texture": "#0"}, - "west": {"uv": [8.75, 3.375, 9.5, 7.125], "texture": "#0"}, - "up": {"uv": [8.75, 3.375, 8.25, 2.625], "texture": "#0"}, - "down": {"uv": [9.25, 2.625, 8.75, 3.375], "texture": "#0"} - } - }, - { - "name": "left_arm", - "from": [-13, 3.5, -2], - "to": [-9, 33.5, 4], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 1]}, - "faces": { - "north": {"uv": [8.25, 8, 8.75, 11.75], "texture": "#0"}, - "east": {"uv": [7.5, 8, 8.25, 11.75], "texture": "#0"}, - "south": {"uv": [9.5, 8, 10, 11.75], "texture": "#0"}, - "west": {"uv": [8.75, 8, 9.5, 11.75], "texture": "#0"}, - "up": {"uv": [8.75, 8, 8.25, 7.25], "texture": "#0"}, - "down": {"uv": [9.25, 7.25, 8.75, 8], "texture": "#0"} - } - }, - { - "name": "right_leg", - "from": [1.5, 0, -2], - "to": [7.5, 16, 3], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 1]}, - "faces": { - "north": {"uv": [5.25, 0.625, 6, 2.625], "texture": "#0"}, - "east": {"uv": [4.625, 0.625, 5.25, 2.625], "texture": "#0"}, - "south": {"uv": [6.625, 0.625, 7.375, 2.625], "texture": "#0"}, - "west": {"uv": [6, 0.625, 6.625, 2.625], "texture": "#0"}, - "up": {"uv": [6, 0.625, 5.25, 0], "texture": "#0"}, - "down": {"uv": [6.75, 0, 6, 0.625], "texture": "#0"} - } - }, - { - "name": "left_leg", - "from": [-7.5, 0, -2], - "to": [-1.5, 16, 3], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 1]}, - "faces": { - "north": {"uv": [8.125, 0.625, 8.875, 2.625], "texture": "#0"}, - "east": {"uv": [7.5, 0.625, 8.125, 2.625], "texture": "#0"}, - "south": {"uv": [9.5, 0.625, 10.25, 2.625], "texture": "#0"}, - "west": {"uv": [8.875, 0.625, 9.5, 2.625], "texture": "#0"}, - "up": {"uv": [8.875, 0.625, 8.125, 0], "texture": "#0"}, - "down": {"uv": [9.625, 0, 8.875, 0.625], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "body", - "origin": [8, 31, 8], - "color": 0, - "children": [0, 1] - }, - { - "name": "head", - "origin": [8, 31, 6], - "color": 0, - "children": [2, 3] - }, - { - "name": "right_arm", - "origin": [8, 31, 8], - "color": 0, - "children": [4] - }, - { - "name": "left_arm", - "origin": [8, 31, 8], - "color": 0, - "children": [5] - }, - { - "name": "right_leg", - "origin": [12, 13, 8], - "color": 0, - "children": [6] - }, - { - "name": "left_leg", - "origin": [3, 13, 8], - "color": 0, - "children": [7] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_black.json b/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_black.json deleted file mode 100644 index 7b6b8e5..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_black.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/llama/llama_carpet", - "textures": { - "0": "entity/equipment/llama_body/black" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_blue.json b/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_blue.json deleted file mode 100644 index d7edaf0..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_blue.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/llama/llama_carpet", - "textures": { - "0": "entity/equipment/llama_body/blue" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_brown.json b/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_brown.json deleted file mode 100644 index 6d1bfa6..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_brown.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/llama/llama_carpet", - "textures": { - "0": "entity/equipment/llama_body/brown" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_cyan.json b/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_cyan.json deleted file mode 100644 index da02b75..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_cyan.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/llama/llama_carpet", - "textures": { - "0": "entity/equipment/llama_body/cyan" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_gray.json b/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_gray.json deleted file mode 100644 index 6f6d77f..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_gray.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/llama/llama_carpet", - "textures": { - "0": "entity/equipment/llama_body/gray" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_green.json b/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_green.json deleted file mode 100644 index 5cec31c..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_green.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/llama/llama_carpet", - "textures": { - "0": "entity/equipment/llama_body/green" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_light_blue.json b/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_light_blue.json deleted file mode 100644 index a1c7d02..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_light_blue.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/llama/llama_carpet", - "textures": { - "0": "entity/equipment/llama_body/light_blue" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_light_gray.json b/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_light_gray.json deleted file mode 100644 index d250ead..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_light_gray.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/llama/llama_carpet", - "textures": { - "0": "entity/equipment/llama_body/light_gray" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_lime.json b/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_lime.json deleted file mode 100644 index cf0d6c6..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_lime.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/llama/llama_carpet", - "textures": { - "0": "entity/equipment/llama_body/lime" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_magenta.json b/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_magenta.json deleted file mode 100644 index 7bd695b..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_magenta.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/llama/llama_carpet", - "textures": { - "0": "entity/equipment/llama_body/magenta" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_orange.json b/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_orange.json deleted file mode 100644 index c3f70be..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_orange.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/llama/llama_carpet", - "textures": { - "0": "entity/equipment/llama_body/orange" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_pink.json b/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_pink.json deleted file mode 100644 index dfaf449..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_pink.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/llama/llama_carpet", - "textures": { - "0": "entity/equipment/llama_body/pink" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_purple.json b/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_purple.json deleted file mode 100644 index 901d4c4..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_purple.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/llama/llama_carpet", - "textures": { - "0": "entity/equipment/llama_body/purple" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_red.json b/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_red.json deleted file mode 100644 index cf0cf71..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_red.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/llama/llama_carpet", - "textures": { - "0": "entity/equipment/llama_body/red" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_trader_llama.json b/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_trader_llama.json deleted file mode 100644 index 91e9d4f..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_trader_llama.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/llama/llama_carpet", - "textures": { - "0": "entity/equipment/llama_body/trader_llama" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_white.json b/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_white.json deleted file mode 100644 index 764fc30..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_white.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/llama/llama_carpet", - "textures": { - "0": "entity/equipment/llama_body/white" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_yellow.json b/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_yellow.json deleted file mode 100644 index 9d7dd88..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_adult_yellow.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/llama/llama_carpet", - "textures": { - "0": "entity/equipment/llama_body/yellow" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_black.json b/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_black.json deleted file mode 100644 index 26789a4..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_black.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/llama/llama_carpet_baby", - "textures": { - "0": "entity/equipment/llama_body/black" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_blue.json b/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_blue.json deleted file mode 100644 index 92e1cef..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_blue.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/llama/llama_carpet_baby", - "textures": { - "0": "entity/equipment/llama_body/blue" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_brown.json b/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_brown.json deleted file mode 100644 index 52b0a9f..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_brown.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/llama/llama_carpet_baby", - "textures": { - "0": "entity/equipment/llama_body/brown" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_cyan.json b/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_cyan.json deleted file mode 100644 index f9d0804..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_cyan.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/llama/llama_carpet_baby", - "textures": { - "0": "entity/equipment/llama_body/cyan" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_gray.json b/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_gray.json deleted file mode 100644 index c5e663f..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_gray.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/llama/llama_carpet_baby", - "textures": { - "0": "entity/equipment/llama_body/gray" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_green.json b/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_green.json deleted file mode 100644 index 3f0d18d..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_green.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/llama/llama_carpet_baby", - "textures": { - "0": "entity/equipment/llama_body/green" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_light_blue.json b/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_light_blue.json deleted file mode 100644 index 91650ae..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_light_blue.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/llama/llama_carpet_baby", - "textures": { - "0": "entity/equipment/llama_body/light_blue" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_light_gray.json b/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_light_gray.json deleted file mode 100644 index 097070b..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_light_gray.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/llama/llama_carpet_baby", - "textures": { - "0": "entity/equipment/llama_body/light_gray" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_lime.json b/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_lime.json deleted file mode 100644 index 86c3c74..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_lime.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/llama/llama_carpet_baby", - "textures": { - "0": "entity/equipment/llama_body/lime" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_magenta.json b/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_magenta.json deleted file mode 100644 index 0b8bad9..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_magenta.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/llama/llama_carpet_baby", - "textures": { - "0": "entity/equipment/llama_body/magenta" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_orange.json b/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_orange.json deleted file mode 100644 index 1501857..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_orange.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/llama/llama_carpet_baby", - "textures": { - "0": "entity/equipment/llama_body/orange" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_pink.json b/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_pink.json deleted file mode 100644 index 762e024..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_pink.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/llama/llama_carpet_baby", - "textures": { - "0": "entity/equipment/llama_body/pink" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_purple.json b/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_purple.json deleted file mode 100644 index 4328e5e..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_purple.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/llama/llama_carpet_baby", - "textures": { - "0": "entity/equipment/llama_body/purple" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_red.json b/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_red.json deleted file mode 100644 index a24e458..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_red.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/llama/llama_carpet_baby", - "textures": { - "0": "entity/equipment/llama_body/red" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_trader_llama.json b/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_trader_llama.json deleted file mode 100644 index b8c144e..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_trader_llama.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/llama/llama_carpet_baby", - "textures": { - "0": "entity/equipment/llama_body/trader_llama" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_white.json b/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_white.json deleted file mode 100644 index 8c037ba..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_white.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/llama/llama_carpet_baby", - "textures": { - "0": "entity/equipment/llama_body/white" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_yellow.json b/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_yellow.json deleted file mode 100644 index 3f448ea..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/carpet/llama_baby_yellow.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/llama/llama_carpet_baby", - "textures": { - "0": "entity/equipment/llama_body/yellow" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/color/llama_adult_brown.json b/src/main/resources/assets/minecraft/models/entity/llama/color/llama_adult_brown.json deleted file mode 100644 index aae2828..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/color/llama_adult_brown.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/llama/llama", - "textures": { - "0": "entity/llama/brown" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/color/llama_adult_creamy.json b/src/main/resources/assets/minecraft/models/entity/llama/color/llama_adult_creamy.json deleted file mode 100644 index 4d5dcbf..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/color/llama_adult_creamy.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/llama/llama", - "textures": { - "0": "entity/llama/creamy" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/color/llama_adult_gray.json b/src/main/resources/assets/minecraft/models/entity/llama/color/llama_adult_gray.json deleted file mode 100644 index c230a77..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/color/llama_adult_gray.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/llama/llama", - "textures": { - "0": "entity/llama/gray" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/color/llama_adult_white.json b/src/main/resources/assets/minecraft/models/entity/llama/color/llama_adult_white.json deleted file mode 100644 index e4aa225..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/color/llama_adult_white.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/llama/llama", - "textures": { - "0": "entity/llama/white" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/color/llama_baby_brown.json b/src/main/resources/assets/minecraft/models/entity/llama/color/llama_baby_brown.json deleted file mode 100644 index 948692c..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/color/llama_baby_brown.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/llama/llama_baby", - "textures": { - "0": "entity/llama/brown" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/color/llama_baby_creamy.json b/src/main/resources/assets/minecraft/models/entity/llama/color/llama_baby_creamy.json deleted file mode 100644 index 3fd5f7d..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/color/llama_baby_creamy.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/llama/llama_baby", - "textures": { - "0": "entity/llama/creamy" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/color/llama_baby_gray.json b/src/main/resources/assets/minecraft/models/entity/llama/color/llama_baby_gray.json deleted file mode 100644 index a993061..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/color/llama_baby_gray.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/llama/llama_baby", - "textures": { - "0": "entity/llama/gray" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/color/llama_baby_white.json b/src/main/resources/assets/minecraft/models/entity/llama/color/llama_baby_white.json deleted file mode 100644 index 651fc98..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/color/llama_baby_white.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/llama/llama_baby", - "textures": { - "0": "entity/llama/white" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/llama.json b/src/main/resources/assets/minecraft/models/entity/llama/llama.json deleted file mode 100644 index aab2f84..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/llama.json +++ /dev/null @@ -1,168 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Model by Miraculixx", - "texture_size": [128, 64], - "textures": { - }, - "elements": [ - { - "name": "head", - "from": [-2, 26, -16], - "to": [2, 30, -7], - "rotation": {"angle": 0, "axis": "y", "origin": [0, -1, 0]}, - "faces": { - "north": {"uv": [1.125, 2.25, 1.625, 3.25], "texture": "#0"}, - "east": {"uv": [0, 2.25, 1.125, 3.25], "texture": "#0"}, - "south": {"uv": [2.75, 2.25, 3.25, 3.25], "texture": "#0"}, - "west": {"uv": [1.625, 2.25, 2.75, 3.25], "texture": "#0"}, - "up": {"uv": [1.625, 2.25, 1.125, 0], "texture": "#0"}, - "down": {"uv": [2.125, 0, 1.625, 2.25], "texture": "#0"} - } - }, - { - "name": "head", - "from": [-4, 14, -12], - "to": [4, 32, -6], - "faces": { - "north": {"uv": [0.75, 5, 1.75, 9.5], "texture": "#0"}, - "east": {"uv": [0, 5, 0.75, 9.5], "texture": "#0"}, - "south": {"uv": [2.5, 5, 3.5, 9.5], "texture": "#0"}, - "west": {"uv": [1.75, 5, 2.5, 9.5], "texture": "#0"}, - "up": {"uv": [1.75, 5, 0.75, 3.5], "texture": "#0"}, - "down": {"uv": [2.75, 3.5, 1.75, 5], "texture": "#0"} - } - }, - { - "name": "head", - "from": [-4, 32, -10], - "to": [-1, 35, -8], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 3, 0]}, - "faces": { - "north": {"uv": [2.375, 0.5, 2.75, 1.25], "texture": "#0"}, - "east": {"uv": [2.125, 0.5, 2.375, 1.25], "texture": "#0"}, - "south": {"uv": [3, 0.5, 3.375, 1.25], "texture": "#0"}, - "west": {"uv": [2.75, 0.5, 3, 1.25], "texture": "#0"}, - "up": {"uv": [2.75, 0.5, 2.375, 0], "texture": "#0"}, - "down": {"uv": [3.125, 0, 2.75, 0.5], "texture": "#0"} - } - }, - { - "name": "head", - "from": [1, 32, -10], - "to": [4, 35, -8], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 3, 0]}, - "faces": { - "north": {"uv": [2.375, 0.5, 2.75, 1.25], "texture": "#0"}, - "east": {"uv": [2.125, 0.5, 2.375, 1.25], "texture": "#0"}, - "south": {"uv": [3, 0.5, 3.375, 1.25], "texture": "#0"}, - "west": {"uv": [2.75, 0.5, 3, 1.25], "texture": "#0"}, - "up": {"uv": [2.75, 0.5, 2.375, 0], "texture": "#0"}, - "down": {"uv": [3.125, 0, 2.75, 0.5], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-6, 11, -8], - "to": [6, 21, 10], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -3]}, - "faces": { - "north": {"uv": [4.875, 0, 6.375, 2.5], "texture": "#0"}, - "east": {"uv": [3.625, 2.5, 4.875, 7], "rotation": 90, "texture": "#0"}, - "south": {"uv": [6.375, 0, 7.875, 2.5], "texture": "#0"}, - "west": {"uv": [7.625, 7, 6.375, 2.5], "rotation": 90, "texture": "#0"}, - "up": {"uv": [9.125, 7, 7.625, 2.5], "texture": "#0"}, - "down": {"uv": [6.375, 2.5, 4.875, 7], "texture": "#0"} - } - }, - { - "name": "leg1", - "from": [1.5, 0, 4], - "to": [5.5, 14, 8], - "faces": { - "north": {"uv": [4.125, 8.25, 4.625, 11.75], "texture": "#0"}, - "east": {"uv": [3.625, 8.25, 4.125, 11.75], "texture": "#0"}, - "south": {"uv": [5.125, 8.25, 5.625, 11.75], "texture": "#0"}, - "west": {"uv": [4.625, 8.25, 5.125, 11.75], "texture": "#0"}, - "up": {"uv": [4.625, 8.25, 4.125, 7.25], "texture": "#0"}, - "down": {"uv": [5.125, 7.25, 4.625, 8.25], "texture": "#0"} - } - }, - { - "name": "leg2", - "from": [-5.5, 0, 4], - "to": [-1.5, 14, 8], - "faces": { - "north": {"uv": [4.125, 8.25, 4.625, 11.75], "texture": "#0"}, - "east": {"uv": [3.625, 8.25, 4.125, 11.75], "texture": "#0"}, - "south": {"uv": [5.125, 8.25, 5.625, 11.75], "texture": "#0"}, - "west": {"uv": [4.625, 8.25, 5.125, 11.75], "texture": "#0"}, - "up": {"uv": [4.625, 8.25, 4.125, 7.25], "texture": "#0"}, - "down": {"uv": [5.125, 7.25, 4.625, 8.25], "texture": "#0"} - } - }, - { - "name": "leg3", - "from": [1.5, 0, -7], - "to": [5.5, 14, -3], - "faces": { - "north": {"uv": [4.125, 8.25, 4.625, 11.75], "texture": "#0"}, - "east": {"uv": [3.625, 8.25, 4.125, 11.75], "texture": "#0"}, - "south": {"uv": [5.125, 8.25, 5.625, 11.75], "texture": "#0"}, - "west": {"uv": [4.625, 8.25, 5.125, 11.75], "texture": "#0"}, - "up": {"uv": [4.625, 8.25, 4.125, 7.25], "texture": "#0"}, - "down": {"uv": [5.125, 7.25, 4.625, 8.25], "texture": "#0"} - } - }, - { - "name": "leg4", - "from": [-5.5, 0, -7], - "to": [-1.5, 14, -3], - "faces": { - "north": {"uv": [4.125, 8.25, 4.625, 11.75], "texture": "#0"}, - "east": {"uv": [3.625, 8.25, 4.125, 11.75], "texture": "#0"}, - "south": {"uv": [5.125, 8.25, 5.625, 11.75], "texture": "#0"}, - "west": {"uv": [4.625, 8.25, 5.125, 11.75], "texture": "#0"}, - "up": {"uv": [4.625, 8.25, 4.125, 7.25], "texture": "#0"}, - "down": {"uv": [5.125, 7.25, 4.625, 8.25], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "head", - "origin": [8, 17, 2], - "color": 0, - "children": [0, 1, 2, 3] - }, - { - "name": "body", - "origin": [8, 19, 10], - "color": 0, - "children": [4] - }, - { - "name": "leg1", - "origin": [11.5, 14, 14], - "color": 0, - "children": [5] - }, - { - "name": "leg2", - "origin": [4.5, 14, 14], - "color": 0, - "children": [6] - }, - { - "name": "leg3", - "origin": [11.5, 14, 3], - "color": 0, - "children": [7] - }, - { - "name": "leg4", - "origin": [4.5, 14, 3], - "color": 0, - "children": [8] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/llama_baby.json b/src/main/resources/assets/minecraft/models/entity/llama/llama_baby.json deleted file mode 100644 index 6abfc5e..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/llama_baby.json +++ /dev/null @@ -1,173 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Model by Miraculixx", - "texture_size": [128, 64], - "textures": { - }, - "elements": [ - { - "name": "head", - "from": [-1, 13, -8], - "to": [1, 15, -3.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, -0.5, 0]}, - "faces": { - "north": {"uv": [1.125, 2.25, 1.625, 3.25], "texture": "#0"}, - "east": {"uv": [0, 2.25, 1.125, 3.25], "texture": "#0"}, - "south": {"uv": [2.75, 2.25, 3.25, 3.25], "texture": "#0"}, - "west": {"uv": [1.625, 2.25, 2.75, 3.25], "texture": "#0"}, - "up": {"uv": [1.625, 2.25, 1.125, 0], "texture": "#0"}, - "down": {"uv": [2.125, 0, 1.625, 2.25], "texture": "#0"} - } - }, - { - "name": "head", - "from": [-2, 7, -6], - "to": [2, 16, -3], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "north": {"uv": [0.75, 5, 1.75, 9.5], "texture": "#0"}, - "east": {"uv": [0, 5, 0.75, 9.5], "texture": "#0"}, - "south": {"uv": [2.5, 5, 3.5, 9.5], "texture": "#0"}, - "west": {"uv": [1.75, 5, 2.5, 9.5], "texture": "#0"}, - "up": {"uv": [1.75, 5, 0.75, 3.5], "texture": "#0"}, - "down": {"uv": [2.75, 3.5, 1.75, 5], "texture": "#0"} - } - }, - { - "name": "head", - "from": [-2, 16, -5], - "to": [-0.5, 17.5, -4], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 1.5, 0]}, - "faces": { - "north": {"uv": [2.375, 0.5, 2.75, 1.25], "texture": "#0"}, - "east": {"uv": [2.125, 0.5, 2.375, 1.25], "texture": "#0"}, - "south": {"uv": [3, 0.5, 3.375, 1.25], "texture": "#0"}, - "west": {"uv": [2.75, 0.5, 3, 1.25], "texture": "#0"}, - "up": {"uv": [2.75, 0.5, 2.375, 0], "texture": "#0"}, - "down": {"uv": [3.125, 0, 2.75, 0.5], "texture": "#0"} - } - }, - { - "name": "head", - "from": [0.5, 16, -5], - "to": [2, 17.5, -4], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 1.5, 0]}, - "faces": { - "north": {"uv": [2.375, 0.5, 2.75, 1.25], "texture": "#0"}, - "east": {"uv": [2.125, 0.5, 2.375, 1.25], "texture": "#0"}, - "south": {"uv": [3, 0.5, 3.375, 1.25], "texture": "#0"}, - "west": {"uv": [2.75, 0.5, 3, 1.25], "texture": "#0"}, - "up": {"uv": [2.75, 0.5, 2.375, 0], "texture": "#0"}, - "down": {"uv": [3.125, 0, 2.75, 0.5], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-3, 5.5, -4], - "to": [3, 10.5, 5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -1.5]}, - "faces": { - "north": {"uv": [4.875, 0, 6.375, 2.5], "texture": "#0"}, - "east": {"uv": [3.625, 2.5, 4.875, 7], "rotation": 90, "texture": "#0"}, - "south": {"uv": [6.375, 0, 7.875, 2.5], "texture": "#0"}, - "west": {"uv": [7.625, 7, 6.375, 2.5], "rotation": 90, "texture": "#0"}, - "up": {"uv": [9.125, 7, 7.625, 2.5], "texture": "#0"}, - "down": {"uv": [6.375, 2.5, 4.875, 7], "texture": "#0"} - } - }, - { - "name": "leg1", - "from": [0.75, 0, 2], - "to": [2.75, 7, 4], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "north": {"uv": [4.125, 8.25, 4.625, 11.75], "texture": "#0"}, - "east": {"uv": [3.625, 8.25, 4.125, 11.75], "texture": "#0"}, - "south": {"uv": [5.125, 8.25, 5.625, 11.75], "texture": "#0"}, - "west": {"uv": [4.625, 8.25, 5.125, 11.75], "texture": "#0"}, - "up": {"uv": [4.625, 8.25, 4.125, 7.25], "texture": "#0"}, - "down": {"uv": [5.125, 7.25, 4.625, 8.25], "texture": "#0"} - } - }, - { - "name": "leg2", - "from": [-2.75, 0, 2], - "to": [-0.75, 7, 4], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "north": {"uv": [4.125, 8.25, 4.625, 11.75], "texture": "#0"}, - "east": {"uv": [3.625, 8.25, 4.125, 11.75], "texture": "#0"}, - "south": {"uv": [5.125, 8.25, 5.625, 11.75], "texture": "#0"}, - "west": {"uv": [4.625, 8.25, 5.125, 11.75], "texture": "#0"}, - "up": {"uv": [4.625, 8.25, 4.125, 7.25], "texture": "#0"}, - "down": {"uv": [5.125, 7.25, 4.625, 8.25], "texture": "#0"} - } - }, - { - "name": "leg3", - "from": [0.75, 0, -3.5], - "to": [2.75, 7, -1.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "north": {"uv": [4.125, 8.25, 4.625, 11.75], "texture": "#0"}, - "east": {"uv": [3.625, 8.25, 4.125, 11.75], "texture": "#0"}, - "south": {"uv": [5.125, 8.25, 5.625, 11.75], "texture": "#0"}, - "west": {"uv": [4.625, 8.25, 5.125, 11.75], "texture": "#0"}, - "up": {"uv": [4.625, 8.25, 4.125, 7.25], "texture": "#0"}, - "down": {"uv": [5.125, 7.25, 4.625, 8.25], "texture": "#0"} - } - }, - { - "name": "leg4", - "from": [-2.75, 0, -3.5], - "to": [-0.75, 7, -1.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "north": {"uv": [4.125, 8.25, 4.625, 11.75], "texture": "#0"}, - "east": {"uv": [3.625, 8.25, 4.125, 11.75], "texture": "#0"}, - "south": {"uv": [5.125, 8.25, 5.625, 11.75], "texture": "#0"}, - "west": {"uv": [4.625, 8.25, 5.125, 11.75], "texture": "#0"}, - "up": {"uv": [4.625, 8.25, 4.125, 7.25], "texture": "#0"}, - "down": {"uv": [5.125, 7.25, 4.625, 8.25], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "head", - "origin": [8, 17, 2], - "color": 0, - "children": [0, 1, 2, 3] - }, - { - "name": "body", - "origin": [8, 19, 10], - "color": 0, - "children": [4] - }, - { - "name": "leg1", - "origin": [11.5, 14, 14], - "color": 0, - "children": [5] - }, - { - "name": "leg2", - "origin": [4.5, 14, 14], - "color": 0, - "children": [6] - }, - { - "name": "leg3", - "origin": [11.5, 14, 3], - "color": 0, - "children": [7] - }, - { - "name": "leg4", - "origin": [4.5, 14, 3], - "color": 0, - "children": [8] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/llama_carpet.json b/src/main/resources/assets/minecraft/models/entity/llama/llama_carpet.json deleted file mode 100644 index deca8e5..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/llama_carpet.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "format_version": "1.21.6", - "credit": "Model by Miraculixx", - "texture_size": [128, 64], - "textures": { - }, - "elements": [ - { - "name": "head", - "from": [-4.5, 13.5, -12.5], - "to": [4.5, 32.5, -5.5], - "rotation": {"angle": 0, "axis": "y", "origin": [-0.5, -0.5, -0.5]}, - "faces": { - "north": {"uv": [0.75, 5, 1.75, 9.5], "texture": "#0"}, - "east": {"uv": [0, 5, 0.75, 9.5], "texture": "#0"}, - "south": {"uv": [2.5, 5, 3.5, 9.5], "texture": "#0"}, - "west": {"uv": [1.75, 5, 2.5, 9.5], "texture": "#0"}, - "up": {"uv": [1.75, 5, 0.75, 3.5], "texture": "#0"}, - "down": {"uv": [2.75, 3.5, 1.75, 5], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-6.5, 10.5, -8.5], - "to": [6.5, 21.5, 10.5], - "rotation": {"angle": 0, "axis": "y", "origin": [-0.5, -0.5, -3.5]}, - "faces": { - "north": {"uv": [4.875, 0, 6.375, 2.5], "texture": "#0"}, - "east": {"uv": [3.625, 2.5, 4.875, 7], "rotation": 90, "texture": "#0"}, - "south": {"uv": [6.375, 0, 7.875, 2.5], "texture": "#0"}, - "west": {"uv": [7.625, 7, 6.375, 2.5], "rotation": 90, "texture": "#0"}, - "up": {"uv": [9.125, 7.25, 7.625, 2.75], "texture": "#0"}, - "down": {"uv": [6.375, 2.5, 4.875, 7], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "head", - "origin": [8, 17, 2], - "color": 0, - "children": [0] - }, - { - "name": "body", - "origin": [8, 19, 10], - "color": 0, - "children": [1] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/llama_carpet_baby.json b/src/main/resources/assets/minecraft/models/entity/llama/llama_carpet_baby.json deleted file mode 100644 index 8b574bd..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/llama_carpet_baby.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "format_version": "1.21.6", - "credit": "Model by Miraculixx", - "texture_size": [128, 64], - "textures": { - }, - "elements": [ - { - "name": "head", - "from": [-2.25, 6.75, -6.25], - "to": [2.25, 16.25, -2.75], - "rotation": {"angle": 0, "axis": "y", "origin": [-0.25, -0.25, -0.25]}, - "faces": { - "north": {"uv": [0.75, 5, 1.75, 9.5], "texture": "#0"}, - "east": {"uv": [0, 5, 0.75, 9.5], "texture": "#0"}, - "south": {"uv": [2.5, 5, 3.5, 9.5], "texture": "#0"}, - "west": {"uv": [1.75, 5, 2.5, 9.5], "texture": "#0"}, - "up": {"uv": [1.75, 5, 0.75, 3.5], "texture": "#0"}, - "down": {"uv": [2.75, 3.5, 1.75, 5], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-3.25, 5.25, -4.25], - "to": [3.25, 10.75, 5.25], - "rotation": {"angle": 0, "axis": "y", "origin": [-0.25, -0.25, -1.75]}, - "faces": { - "north": {"uv": [4.875, 0, 6.375, 2.5], "texture": "#0"}, - "east": {"uv": [3.625, 2.5, 4.875, 7], "rotation": 90, "texture": "#0"}, - "south": {"uv": [6.375, 0, 7.875, 2.5], "texture": "#0"}, - "west": {"uv": [7.625, 7, 6.375, 2.5], "rotation": 90, "texture": "#0"}, - "up": {"uv": [9.125, 7.25, 7.625, 2.75], "texture": "#0"}, - "down": {"uv": [6.375, 2.5, 4.875, 7], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "head", - "origin": [8, 17, 2], - "color": 0, - "children": [0] - }, - { - "name": "body", - "origin": [8, 19, 10], - "color": 0, - "children": [1] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/llama/llama_chest.json b/src/main/resources/assets/minecraft/models/entity/llama/llama_chest.json deleted file mode 100644 index 0babd2f..0000000 --- a/src/main/resources/assets/minecraft/models/entity/llama/llama_chest.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "format_version": "1.21.6", - "credit": "Model by Miraculixx", - "texture_size": [128, 64], - "textures": { - "0": "entity/llama/brown" - }, - "elements": [ - { - "name": "chest_left", - "from": [-8.5, 12, -2], - "to": [-5.5, 20, 6], - "rotation": {"angle": 0, "axis": "y", "origin": [2, -1, -5]}, - "faces": { - "north": {"uv": [7, 11, 7.375, 13], "texture": "#0"}, - "east": {"uv": [5.625, 11, 6.625, 13], "texture": "#0"}, - "south": {"uv": [5.625, 11, 6, 13], "texture": "#0"}, - "west": {"uv": [7.375, 11, 8.375, 13], "texture": "#0"}, - "up": {"uv": [7, 11, 6, 10.25], "rotation": 90, "texture": "#0"}, - "down": {"uv": [7, 11, 8, 10.25], "rotation": 90, "texture": "#0"} - } - }, - { - "name": "chest_right", - "from": [5.5, 12, -2], - "to": [8.5, 20, 6], - "rotation": {"angle": 0, "axis": "y", "origin": [2, -1, -5]}, - "faces": { - "north": {"uv": [5.625, 7.75, 6, 9.75], "texture": "#0"}, - "east": {"uv": [6, 7.75, 7, 9.75], "texture": "#0"}, - "south": {"uv": [8, 7.75, 8.375, 9.75], "texture": "#0"}, - "west": {"uv": [7, 7.75, 8, 9.75], "texture": "#0"}, - "up": {"uv": [7, 7.75, 6, 7], "rotation": 90, "texture": "#0"}, - "down": {"uv": [7, 7.75, 8, 7], "rotation": 90, "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "chest", - "origin": [8, 8, 8], - "color": 0, - "children": [0, 1] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/pig/adult.json b/src/main/resources/assets/minecraft/models/entity/pig/adult.json deleted file mode 100644 index eaf46dd..0000000 --- a/src/main/resources/assets/minecraft/models/entity/pig/adult.json +++ /dev/null @@ -1,155 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Made by Miraculixx", - "texture_size": [64, 64], - "textures": { - }, - "elements": [ - { - "name": "body", - "from": [-5, 6, -8], - "to": [5, 14, 8], - "rotation": {"angle": 0, "axis": "y", "origin": [0, -1, -3]}, - "faces": { - "north": {"uv": [9, 2, 11.5, 4], "texture": "#0"}, - "east": {"uv": [7, 4, 9, 8], "rotation": 90, "texture": "#0"}, - "south": {"uv": [11.5, 2, 14, 4], "texture": "#0"}, - "west": {"uv": [11.5, 4, 13.5, 8], "rotation": 90, "texture": "#0"}, - "up": {"uv": [16, 8, 13.5, 4], "texture": "#0"}, - "down": {"uv": [11.5, 4, 9, 8], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-5.5, 5.5, -8.5], - "to": [5.5, 14.5, 8.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0.5, -1.5, -3.5]}, - "faces": { - "north": {"uv": [9, 8, 11.5, 10], "texture": "#0"}, - "east": {"uv": [7, 10, 9, 14], "rotation": 90, "texture": "#0"}, - "south": {"uv": [14, 8, 11.5, 10], "texture": "#0"}, - "west": {"uv": [13.5, 10, 11.5, 14], "rotation": 90, "texture": "#0"}, - "up": {"uv": [13.5, 10, 16, 14], "texture": "#0"}, - "down": {"uv": [11.5, 10, 9, 14], "texture": "#0"} - } - }, - { - "name": "head", - "from": [-4, 8, -15], - "to": [4, 16, -7], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -1]}, - "faces": { - "north": {"uv": [2, 2, 4, 4], "texture": "#0"}, - "east": {"uv": [0, 2, 2, 4], "texture": "#0"}, - "south": {"uv": [6, 2, 8, 4], "texture": "#0"}, - "west": {"uv": [4, 2, 6, 4], "texture": "#0"}, - "up": {"uv": [4, 2, 2, 0], "texture": "#0"}, - "down": {"uv": [6, 0, 4, 2], "texture": "#0"} - } - }, - { - "name": "head", - "from": [-2, 9, -16], - "to": [2, 12, -15], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -1]}, - "faces": { - "north": {"uv": [4.25, 4.25, 5.25, 5], "texture": "#0"}, - "east": {"uv": [4, 4.25, 4.25, 5], "texture": "#0"}, - "south": {"uv": [5.5, 4.25, 6.5, 5], "texture": "#0"}, - "west": {"uv": [5.25, 4.25, 5.5, 5], "texture": "#0"}, - "up": {"uv": [5.25, 4.25, 4.25, 4], "texture": "#0"}, - "down": {"uv": [6.25, 4, 5.25, 4.25], "texture": "#0"} - } - }, - { - "name": "leg1", - "from": [1, 0, 5], - "to": [5, 6, 9], - "faces": { - "north": {"uv": [1, 5, 2, 6.5], "texture": "#0"}, - "east": {"uv": [0, 5, 1, 6.5], "texture": "#0"}, - "south": {"uv": [3, 5, 4, 6.5], "texture": "#0"}, - "west": {"uv": [2, 5, 3, 6.5], "texture": "#0"}, - "up": {"uv": [2, 5, 1, 4], "texture": "#0"}, - "down": {"uv": [3, 4, 2, 5], "texture": "#0"} - } - }, - { - "name": "leg2", - "from": [-5, 0, 5], - "to": [-1, 6, 9], - "faces": { - "north": {"uv": [1, 5, 2, 6.5], "texture": "#0"}, - "east": {"uv": [0, 5, 1, 6.5], "texture": "#0"}, - "south": {"uv": [3, 5, 4, 6.5], "texture": "#0"}, - "west": {"uv": [2, 5, 3, 6.5], "texture": "#0"}, - "up": {"uv": [2, 5, 1, 4], "texture": "#0"}, - "down": {"uv": [3, 4, 2, 5], "texture": "#0"} - } - }, - { - "name": "leg3", - "from": [1, 0, -7], - "to": [5, 6, -3], - "faces": { - "north": {"uv": [1, 5, 2, 6.5], "texture": "#0"}, - "east": {"uv": [0, 5, 1, 6.5], "texture": "#0"}, - "south": {"uv": [3, 5, 4, 6.5], "texture": "#0"}, - "west": {"uv": [2, 5, 3, 6.5], "texture": "#0"}, - "up": {"uv": [2, 5, 1, 4], "texture": "#0"}, - "down": {"uv": [3, 4, 2, 5], "texture": "#0"} - } - }, - { - "name": "leg4", - "from": [-5, 0, -7], - "to": [-1, 6, -3], - "faces": { - "north": {"uv": [1, 5, 2, 6.5], "texture": "#0"}, - "east": {"uv": [0, 5, 1, 6.5], "texture": "#0"}, - "south": {"uv": [3, 5, 4, 6.5], "texture": "#0"}, - "west": {"uv": [2, 5, 3, 6.5], "texture": "#0"}, - "up": {"uv": [2, 5, 1, 4], "texture": "#0"}, - "down": {"uv": [3, 4, 2, 5], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "body", - "origin": [8, 13, 10], - "color": 0, - "children": [0, 1] - }, - { - "name": "head", - "origin": [8, 12, 2], - "color": 0, - "children": [2, 3] - }, - { - "name": "leg1", - "origin": [11, 6, 15], - "color": 0, - "children": [4] - }, - { - "name": "leg2", - "origin": [5, 6, 15], - "color": 0, - "children": [5] - }, - { - "name": "leg3", - "origin": [11, 6, 3], - "color": 0, - "children": [6] - }, - { - "name": "leg4", - "origin": [5, 6, 3], - "color": 0, - "children": [7] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/pig/adult_cold.json b/src/main/resources/assets/minecraft/models/entity/pig/adult_cold.json deleted file mode 100644 index 45fd42c..0000000 --- a/src/main/resources/assets/minecraft/models/entity/pig/adult_cold.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:entity/pig/adult", - "textures": { - "0": "entity/pig/cold_pig" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/pig/adult_temperate.json b/src/main/resources/assets/minecraft/models/entity/pig/adult_temperate.json deleted file mode 100644 index a3bf78d..0000000 --- a/src/main/resources/assets/minecraft/models/entity/pig/adult_temperate.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:entity/pig/adult", - "textures": { - "0": "entity/pig/temperate_pig" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/pig/adult_warm.json b/src/main/resources/assets/minecraft/models/entity/pig/adult_warm.json deleted file mode 100644 index 1f02f55..0000000 --- a/src/main/resources/assets/minecraft/models/entity/pig/adult_warm.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:entity/pig/adult", - "textures": { - "0": "entity/pig/warm_pig" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/pig/baby.json b/src/main/resources/assets/minecraft/models/entity/pig/baby.json deleted file mode 100644 index 19fc9c6..0000000 --- a/src/main/resources/assets/minecraft/models/entity/pig/baby.json +++ /dev/null @@ -1,155 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Made by Miraculixx", - "texture_size": [64, 64], - "textures": { - }, - "elements": [ - { - "name": "body", - "from": [-2.5, 3, -4], - "to": [2.5, 7, 4], - "rotation": {"angle": 0, "axis": "y", "origin": [0, -0.5, -1.5]}, - "faces": { - "north": {"uv": [9, 2, 11.5, 4], "texture": "#0"}, - "east": {"uv": [7, 4, 9, 8], "rotation": 90, "texture": "#0"}, - "south": {"uv": [11.5, 2, 14, 4], "texture": "#0"}, - "west": {"uv": [11.5, 4, 13.5, 8], "rotation": 90, "texture": "#0"}, - "up": {"uv": [16, 8, 13.5, 4], "texture": "#0"}, - "down": {"uv": [11.5, 4, 9, 8], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-2.75, 2.75, -4.25], - "to": [2.75, 7.25, 4.25], - "rotation": {"angle": 0, "axis": "y", "origin": [0.25, -0.75, -1.75]}, - "faces": { - "north": {"uv": [9, 8, 11.5, 10], "texture": "#0"}, - "east": {"uv": [7, 10, 9, 14], "rotation": 90, "texture": "#0"}, - "south": {"uv": [14, 8, 11.5, 10], "texture": "#0"}, - "west": {"uv": [13.5, 10, 11.5, 14], "rotation": 90, "texture": "#0"}, - "up": {"uv": [13.5, 10, 16, 14], "texture": "#0"}, - "down": {"uv": [11.5, 10, 9, 14], "texture": "#0"} - } - }, - { - "name": "head", - "from": [-4, 4, -12], - "to": [4, 12, -4], - "rotation": {"angle": 0, "axis": "y", "origin": [0, -4, 2]}, - "faces": { - "north": {"uv": [2, 2, 4, 4], "texture": "#0"}, - "east": {"uv": [0, 2, 2, 4], "texture": "#0"}, - "south": {"uv": [6, 2, 8, 4], "texture": "#0"}, - "west": {"uv": [4, 2, 6, 4], "texture": "#0"}, - "up": {"uv": [4, 2, 2, 0], "texture": "#0"}, - "down": {"uv": [6, 0, 4, 2], "texture": "#0"} - } - }, - { - "name": "head", - "from": [-2, 5, -13], - "to": [2, 8, -12], - "rotation": {"angle": 0, "axis": "y", "origin": [0, -4, 2]}, - "faces": { - "north": {"uv": [4.25, 4.25, 5.25, 5], "texture": "#0"}, - "east": {"uv": [4, 4.25, 4.25, 5], "texture": "#0"}, - "south": {"uv": [5.5, 4.25, 6.5, 5], "texture": "#0"}, - "west": {"uv": [5.25, 4.25, 5.5, 5], "texture": "#0"}, - "up": {"uv": [5.25, 4.25, 4.25, 4], "texture": "#0"}, - "down": {"uv": [6.25, 4, 5.25, 4.25], "texture": "#0"} - } - }, - { - "name": "leg1", - "from": [0.5, 0, 2.5], - "to": [2.5, 3, 4.5], - "faces": { - "north": {"uv": [1, 5, 2, 6.5], "texture": "#0"}, - "east": {"uv": [0, 5, 1, 6.5], "texture": "#0"}, - "south": {"uv": [3, 5, 4, 6.5], "texture": "#0"}, - "west": {"uv": [2, 5, 3, 6.5], "texture": "#0"}, - "up": {"uv": [2, 5, 1, 4], "texture": "#0"}, - "down": {"uv": [3, 4, 2, 5], "texture": "#0"} - } - }, - { - "name": "leg2", - "from": [-2.5, 0, 2.5], - "to": [-0.5, 3, 4.5], - "faces": { - "north": {"uv": [1, 5, 2, 6.5], "texture": "#0"}, - "east": {"uv": [0, 5, 1, 6.5], "texture": "#0"}, - "south": {"uv": [3, 5, 4, 6.5], "texture": "#0"}, - "west": {"uv": [2, 5, 3, 6.5], "texture": "#0"}, - "up": {"uv": [2, 5, 1, 4], "texture": "#0"}, - "down": {"uv": [3, 4, 2, 5], "texture": "#0"} - } - }, - { - "name": "leg3", - "from": [0.5, 0, -3.5], - "to": [2.5, 3, -1.5], - "faces": { - "north": {"uv": [1, 5, 2, 6.5], "texture": "#0"}, - "east": {"uv": [0, 5, 1, 6.5], "texture": "#0"}, - "south": {"uv": [3, 5, 4, 6.5], "texture": "#0"}, - "west": {"uv": [2, 5, 3, 6.5], "texture": "#0"}, - "up": {"uv": [2, 5, 1, 4], "texture": "#0"}, - "down": {"uv": [3, 4, 2, 5], "texture": "#0"} - } - }, - { - "name": "leg4", - "from": [-2.5, 0, -3.5], - "to": [-0.5, 3, -1.5], - "faces": { - "north": {"uv": [1, 5, 2, 6.5], "texture": "#0"}, - "east": {"uv": [0, 5, 1, 6.5], "texture": "#0"}, - "south": {"uv": [3, 5, 4, 6.5], "texture": "#0"}, - "west": {"uv": [2, 5, 3, 6.5], "texture": "#0"}, - "up": {"uv": [2, 5, 1, 4], "texture": "#0"}, - "down": {"uv": [3, 4, 2, 5], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "body", - "origin": [8, 13, 10], - "color": 0, - "children": [0, 1] - }, - { - "name": "head", - "origin": [8, 12, 2], - "color": 0, - "children": [2, 3] - }, - { - "name": "leg1", - "origin": [11, 6, 15], - "color": 0, - "children": [4] - }, - { - "name": "leg2", - "origin": [5, 6, 15], - "color": 0, - "children": [5] - }, - { - "name": "leg3", - "origin": [11, 6, 3], - "color": 0, - "children": [6] - }, - { - "name": "leg4", - "origin": [5, 6, 3], - "color": 0, - "children": [7] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/pig/baby_cold.json b/src/main/resources/assets/minecraft/models/entity/pig/baby_cold.json deleted file mode 100644 index 682618c..0000000 --- a/src/main/resources/assets/minecraft/models/entity/pig/baby_cold.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:entity/pig/baby", - "textures": { - "0": "entity/pig/cold_pig" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/pig/baby_temperate.json b/src/main/resources/assets/minecraft/models/entity/pig/baby_temperate.json deleted file mode 100644 index f135f06..0000000 --- a/src/main/resources/assets/minecraft/models/entity/pig/baby_temperate.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:entity/pig/baby", - "textures": { - "0": "entity/pig/temperate_pig" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/pig/baby_warm.json b/src/main/resources/assets/minecraft/models/entity/pig/baby_warm.json deleted file mode 100644 index feb778e..0000000 --- a/src/main/resources/assets/minecraft/models/entity/pig/baby_warm.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:entity/pig/baby", - "textures": { - "0": "entity/pig/warm_pig" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/pufferfish/pufferfish.json b/src/main/resources/assets/minecraft/models/entity/pufferfish/pufferfish.json deleted file mode 100644 index c2da38a..0000000 --- a/src/main/resources/assets/minecraft/models/entity/pufferfish/pufferfish.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "credit": "Model by Miraculixx", - "texture_size": [32, 32], - "textures": { - "0": "entity/fish/pufferfish" - }, - "elements": [ - { - "name": "body", - "from": [-1.5, 0, -2.5], - "to": [1.5, 2, 0.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -1]}, - "faces": { - "north": {"uv": [1.5, 15, 3, 16], "texture": "#0"}, - "east": {"uv": [0, 15, 1.5, 16], "texture": "#0"}, - "south": {"uv": [4.5, 15, 6, 16], "texture": "#0"}, - "west": {"uv": [3, 15, 4.5, 16], "texture": "#0"}, - "up": {"uv": [3, 15, 1.5, 13.5], "texture": "#0"}, - "down": {"uv": [4.5, 13.5, 3, 15], "texture": "#0"} - } - }, - { - "name": "tail", - "from": [-1.5, 1, 0.5], - "to": [1.5, 1, 3.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -1]}, - "faces": { - "north": {"uv": [0, 1.5, 1.5, 1.5], "texture": "#0"}, - "east": {"uv": [-1.5, 1.5, 0, 1.5], "texture": "#0"}, - "south": {"uv": [3, 1.5, 4.5, 1.5], "texture": "#0"}, - "west": {"uv": [1.5, 1.5, 3, 1.5], "texture": "#0"}, - "up": {"uv": [1.5, 1.5, 0, 0], "texture": "#0"}, - "down": {"uv": [0, 0, 1.5, 1.5], "texture": "#0"} - } - }, - { - "name": "fin_right", - "from": [1.5, 1, -2.49], - "to": [2.5, 1, -0.49], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -1]}, - "faces": { - "north": {"uv": [13.5, 1, 14, 1], "texture": "#0"}, - "east": {"uv": [12.5, 1, 13.5, 1], "texture": "#0"}, - "south": {"uv": [15, 1, 15.5, 1], "texture": "#0"}, - "west": {"uv": [14, 1, 15, 1], "texture": "#0"}, - "up": {"uv": [14, 1, 13.5, 0], "texture": "#0"}, - "down": {"uv": [13, 0, 13.5, 1], "texture": "#0"} - } - }, - { - "name": "fin_left", - "from": [-2.5, 1, -2.49], - "to": [-1.5, 1, -0.49], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -1]}, - "faces": { - "north": {"uv": [13.5, 1, 14, 1], "texture": "#0"}, - "east": {"uv": [12.5, 1, 13.5, 1], "texture": "#0"}, - "south": {"uv": [15, 1, 15.5, 1], "texture": "#0"}, - "west": {"uv": [14, 1, 15, 1], "texture": "#0"}, - "up": {"uv": [14, 1, 13.5, 0], "texture": "#0"}, - "down": {"uv": [13.5, 0, 13, 1], "texture": "#0"} - } - }, - { - "name": "eye_right", - "from": [-1.5, 2, -2.5], - "to": [-0.5, 3, -1.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -1]}, - "faces": { - "north": {"uv": [14.5, 3.5, 15, 4], "texture": "#0"}, - "east": {"uv": [14, 3.5, 14.5, 4], "texture": "#0"}, - "south": {"uv": [15.5, 3.5, 16, 4], "texture": "#0"}, - "west": {"uv": [15, 3.5, 15.5, 4], "texture": "#0"}, - "up": {"uv": [15, 3.5, 14.5, 3], "texture": "#0"}, - "down": {"uv": [15.5, 3, 15, 3.5], "texture": "#0"} - } - }, - { - "name": "eye_left", - "from": [0.5, 2, -2.5], - "to": [1.5, 3, -1.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -1]}, - "faces": { - "north": {"uv": [12.5, 3.5, 13, 4], "texture": "#0"}, - "east": {"uv": [12, 3.5, 12.5, 4], "texture": "#0"}, - "south": {"uv": [13.5, 3.5, 14, 4], "texture": "#0"}, - "west": {"uv": [13, 3.5, 13.5, 4], "texture": "#0"}, - "up": {"uv": [13, 3.5, 12.5, 3], "texture": "#0"}, - "down": {"uv": [13.5, 3, 13, 3.5], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "body", - "origin": [8, 0, 8], - "color": 0, - "children": [0] - }, - { - "name": "tail", - "origin": [8, 1, 9.5], - "color": 0, - "children": [1] - }, - { - "name": "fin_right", - "origin": [9.5, 1, 6.5], - "color": 0, - "children": [2] - }, - { - "name": "fin_left", - "origin": [6.5, 1, 6.5], - "color": 0, - "children": [3] - }, - { - "name": "eye_right", - "origin": [8, 3, 8], - "color": 0, - "children": [4] - }, - { - "name": "eye_left", - "origin": [8, 3, 8], - "color": 0, - "children": [5] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/salmon/salmon.json b/src/main/resources/assets/minecraft/models/entity/salmon/salmon.json deleted file mode 100644 index d595146..0000000 --- a/src/main/resources/assets/minecraft/models/entity/salmon/salmon.json +++ /dev/null @@ -1,171 +0,0 @@ -{ - "credit": "Model by Miraculixx", - "texture_size": [32, 32], - "textures": { - "0": "entity/fish/salmon" - }, - "elements": [ - { - "name": "head", - "from": [-1, 0.5, -10], - "to": [1, 4.5, -7], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 1]}, - "faces": { - "north": {"uv": [12.5, 1.5, 13.5, 3.5], "texture": "#0"}, - "east": {"uv": [11, 1.5, 12.5, 3.5], "texture": "#0"}, - "south": {"uv": [15, 1.5, 16, 3.5], "texture": "#0"}, - "west": {"uv": [13.5, 1.5, 15, 3.5], "texture": "#0"}, - "up": {"uv": [13.5, 1.5, 12.5, 0], "texture": "#0"}, - "down": {"uv": [14.5, 0, 13.5, 1.5], "texture": "#0"} - } - }, - { - "name": "body_front", - "from": [-1.5, 0, -7], - "to": [1.5, 5, 1], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 1]}, - "faces": { - "north": {"uv": [4, 4, 5.5, 6.5], "texture": "#0"}, - "east": {"uv": [0, 4, 4, 6.5], "texture": "#0"}, - "south": {"uv": [9.5, 4, 11, 6.5], "texture": "#0"}, - "west": {"uv": [5.5, 4, 9.5, 6.5], "texture": "#0"}, - "up": {"uv": [5.5, 4, 4, 0], "texture": "#0"}, - "down": {"uv": [7, 0, 5.5, 4], "texture": "#0"} - } - }, - { - "name": "body_back", - "from": [-1.5, 0, 1], - "to": [1.5, 5, 9], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 1]}, - "faces": { - "north": {"uv": [4, 10.5, 5.5, 13], "texture": "#0"}, - "east": {"uv": [0, 10.5, 4, 13], "texture": "#0"}, - "south": {"uv": [9.5, 10.5, 11, 13], "texture": "#0"}, - "west": {"uv": [5.5, 10.5, 9.5, 13], "texture": "#0"}, - "up": {"uv": [5.5, 10.5, 4, 6.5], "texture": "#0"}, - "down": {"uv": [7, 6.5, 5.5, 10.5], "texture": "#0"} - } - }, - { - "name": "fin_left", - "from": [-3.5, 1, -7], - "to": [-1.5, 1, -5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 1]}, - "faces": { - "north": {"uv": [1, 1, 2, 1], "texture": "#0"}, - "east": {"uv": [0, 1, 1, 1], "texture": "#0"}, - "south": {"uv": [3, 1, 4, 1], "texture": "#0"}, - "west": {"uv": [2, 1, 3, 1], "texture": "#0"}, - "up": {"uv": [3, 1, 2, 0], "texture": "#0"}, - "down": {"uv": [3, 0, 2, 1], "texture": "#0"} - } - }, - { - "name": "fin_right", - "from": [1.5, 1, -7], - "to": [3.5, 1, -5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 1]}, - "faces": { - "north": {"uv": [-1, 1, 0, 1], "texture": "#0"}, - "east": {"uv": [-2, 1, -1, 1], "texture": "#0"}, - "south": {"uv": [1, 1, 2, 1], "texture": "#0"}, - "west": {"uv": [0, 1, 1, 1], "texture": "#0"}, - "up": {"uv": [1, 1, 0, 0], "texture": "#0"}, - "down": {"uv": [1, 0, 0, 1], "texture": "#0"} - } - }, - { - "name": "fin_back_1", - "from": [0, 5, -2], - "to": [0, 7, 1], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 1]}, - "faces": { - "north": {"uv": [2.5, 2, 2.5, 3], "texture": "#0"}, - "east": {"uv": [4, 2, 2.5, 3], "texture": "#0"}, - "south": {"uv": [4, 2, 4, 3], "texture": "#0"}, - "west": {"uv": [2.5, 2, 4, 3], "texture": "#0"}, - "up": {"uv": [2.5, 2, 2.5, 0.5], "texture": "#0"}, - "down": {"uv": [2.5, 0.5, 2.5, 2], "texture": "#0"} - } - }, - { - "name": "fin_back_2", - "from": [0, 5, 0], - "to": [0, 7, 4], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 1]}, - "faces": { - "north": {"uv": [2, 3, 2, 4], "texture": "#0"}, - "east": {"uv": [4, 3, 2, 4], "texture": "#0"}, - "south": {"uv": [4, 3, 4, 4], "texture": "#0"}, - "west": {"uv": [2, 3, 4, 4], "texture": "#0"}, - "up": {"uv": [2, 3, 2, 1], "texture": "#0"}, - "down": {"uv": [2, 1, 2, 3], "texture": "#0"} - } - }, - { - "name": "tail", - "from": [0, 0, 9], - "to": [0, 5, 15], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 1]}, - "faces": { - "north": {"uv": [13, 8, 13, 10.5], "texture": "#0"}, - "east": {"uv": [16, 8, 13, 10.5], "texture": "#0"}, - "south": {"uv": [16, 8, 16, 10.5], "texture": "#0"}, - "west": {"uv": [13, 8, 16, 10.5], "texture": "#0"}, - "up": {"uv": [13, 8, 13, 5], "texture": "#0"}, - "down": {"uv": [13, 5, 13, 8], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "head", - "origin": [8, 2.5, 0], - "color": 0, - "children": [0] - }, - { - "name": "body_front", - "origin": [8, 2.5, 0], - "color": 0, - "children": [1] - }, - { - "name": "body_back", - "origin": [8, 2.5, 8], - "color": 0, - "children": [2] - }, - { - "name": "fin_left", - "origin": [6.5, 1, 0], - "color": 0, - "children": [3] - }, - { - "name": "fin_right", - "origin": [9.5, 1, 0], - "color": 0, - "children": [4] - }, - { - "name": "fin_back_1", - "origin": [8, 7, 5], - "color": 0, - "children": [5] - }, - { - "name": "fin_back_2", - "origin": [8, 7, 7], - "color": 0, - "children": [6] - }, - { - "name": "tail", - "origin": [8, 2.5, 16], - "color": 0, - "children": [7] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/sheep/adult.json b/src/main/resources/assets/minecraft/models/entity/sheep/adult.json deleted file mode 100644 index 24011fc..0000000 --- a/src/main/resources/assets/minecraft/models/entity/sheep/adult.json +++ /dev/null @@ -1,127 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Made by Miraculixx", - "texture_size": [64, 32], - "textures": { - "0": "entity/sheep/sheep" - }, - "elements": [ - { - "name": "body", - "from": [-4, 7, -3], - "to": [4, 23, 3], - "rotation": {"x": 90, "y": 0, "z": 0, "origin": [0, 15, 0]}, - "faces": { - "north": {"uv": [8.5, 7, 10.5, 15], "texture": "#0"}, - "east": {"uv": [7, 7, 8.5, 15], "texture": "#0"}, - "south": {"uv": [12, 7, 14, 15], "texture": "#0"}, - "west": {"uv": [10.5, 7, 12, 15], "texture": "#0"}, - "up": {"uv": [10.5, 7, 8.5, 4], "texture": "#0"}, - "down": {"uv": [12.5, 4, 10.5, 7], "texture": "#0"} - } - }, - { - "name": "head", - "from": [-3, 16, -14], - "to": [3, 22, -6], - "faces": { - "north": {"uv": [2, 4, 3.5, 7], "texture": "#0"}, - "east": {"uv": [0, 4, 2, 7], "texture": "#0"}, - "south": {"uv": [5.5, 4, 7, 7], "texture": "#0"}, - "west": {"uv": [3.5, 4, 5.5, 7], "texture": "#0"}, - "up": {"uv": [3.5, 4, 2, 0], "texture": "#0"}, - "down": {"uv": [5, 0, 3.5, 4], "texture": "#0"} - } - }, - { - "name": "leg1", - "from": [1, 0, 5], - "to": [5, 12, 9], - "faces": { - "north": {"uv": [1, 10, 2, 16], "texture": "#0"}, - "east": {"uv": [0, 10, 1, 16], "texture": "#0"}, - "south": {"uv": [3, 10, 4, 16], "texture": "#0"}, - "west": {"uv": [2, 10, 3, 16], "texture": "#0"}, - "up": {"uv": [2, 10, 1, 8], "texture": "#0"}, - "down": {"uv": [3, 8, 2, 10], "texture": "#0"} - } - }, - { - "name": "leg2", - "from": [-5, 0, 5], - "to": [-1, 12, 9], - "faces": { - "north": {"uv": [1, 10, 2, 16], "texture": "#0"}, - "east": {"uv": [0, 10, 1, 16], "texture": "#0"}, - "south": {"uv": [3, 10, 4, 16], "texture": "#0"}, - "west": {"uv": [2, 10, 3, 16], "texture": "#0"}, - "up": {"uv": [2, 10, 1, 8], "texture": "#0"}, - "down": {"uv": [3, 8, 2, 10], "texture": "#0"} - } - }, - { - "name": "leg3", - "from": [1, 0, -7], - "to": [5, 12, -3], - "faces": { - "north": {"uv": [1, 10, 2, 16], "texture": "#0"}, - "east": {"uv": [0, 10, 1, 16], "texture": "#0"}, - "south": {"uv": [3, 10, 4, 16], "texture": "#0"}, - "west": {"uv": [2, 10, 3, 16], "texture": "#0"}, - "up": {"uv": [2, 10, 1, 8], "texture": "#0"}, - "down": {"uv": [3, 8, 2, 10], "texture": "#0"} - } - }, - { - "name": "leg4", - "from": [-5, 0, -7], - "to": [-1, 12, -3], - "faces": { - "north": {"uv": [1, 10, 2, 16], "texture": "#0"}, - "east": {"uv": [0, 10, 1, 16], "texture": "#0"}, - "south": {"uv": [3, 10, 4, 16], "texture": "#0"}, - "west": {"uv": [2, 10, 3, 16], "texture": "#0"}, - "up": {"uv": [2, 10, 1, 8], "texture": "#0"}, - "down": {"uv": [3, 8, 2, 10], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "body", - "origin": [0, 19, 2], - "color": 0, - "children": [0] - }, - { - "name": "head", - "origin": [0, 18, -8], - "color": 0, - "children": [1] - }, - { - "name": "leg1", - "origin": [3, 12, 7], - "color": 0, - "children": [2] - }, - { - "name": "leg2", - "origin": [-3, 12, 7], - "color": 0, - "children": [3] - }, - { - "name": "leg3", - "origin": [3, 12, -5], - "color": 0, - "children": [4] - }, - { - "name": "leg4", - "origin": [-3, 12, -5], - "color": 0, - "children": [5] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/sheep/adult_wool.json b/src/main/resources/assets/minecraft/models/entity/sheep/adult_wool.json deleted file mode 100644 index 6c4217c..0000000 --- a/src/main/resources/assets/minecraft/models/entity/sheep/adult_wool.json +++ /dev/null @@ -1,127 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Made by Miraculixx", - "texture_size": [64, 32], - "textures": { - "0": "entity/sheep/sheep_wool" - }, - "elements": [ - { - "name": "body", - "from": [-5.75, 9.25, -12.75], - "to": [5.75, 28.75, -3.25], - "rotation": {"x": -90, "y": 0, "z": 0, "origin": [0, 21, -2]}, - "faces": { - "north": {"uv": [8.5, 7, 10.5, 15], "texture": "#0"}, - "east": {"uv": [7, 7, 8.5, 15], "texture": "#0"}, - "south": {"uv": [12, 7, 14, 15], "texture": "#0"}, - "west": {"uv": [10.5, 7, 12, 15], "texture": "#0"}, - "up": {"uv": [10.5, 7, 8.5, 4], "texture": "#0"}, - "down": {"uv": [12.5, 4, 10.5, 7], "texture": "#0"} - } - }, - { - "name": "head", - "from": [-3.6, 15.4, -12.6], - "to": [3.6, 22.6, -5.4], - "faces": { - "north": {"uv": [1.5, 3, 3, 6], "texture": "#0"}, - "east": {"uv": [0, 3, 1.5, 6], "texture": "#0"}, - "south": {"uv": [4.5, 3, 6, 6], "texture": "#0"}, - "west": {"uv": [3, 3, 4.5, 6], "texture": "#0"}, - "up": {"uv": [3, 3, 1.5, 0], "texture": "#0"}, - "down": {"uv": [4.5, 0, 3, 3], "texture": "#0"} - } - }, - { - "name": "leg1", - "from": [0.5, 5.5, 4.5], - "to": [5.5, 12.5, 9.5], - "faces": { - "north": {"uv": [1, 10, 2, 13], "texture": "#0"}, - "east": {"uv": [0, 10, 1, 13], "texture": "#0"}, - "south": {"uv": [3, 10, 4, 13], "texture": "#0"}, - "west": {"uv": [2, 10, 3, 13], "texture": "#0"}, - "up": {"uv": [2, 10, 1, 8], "texture": "#0"}, - "down": {"uv": [3, 8, 2, 10], "texture": "#0"} - } - }, - { - "name": "leg2", - "from": [-5.5, 5.5, 4.5], - "to": [-0.5, 12.5, 9.5], - "faces": { - "north": {"uv": [1, 10, 2, 13], "texture": "#0"}, - "east": {"uv": [0, 10, 1, 13], "texture": "#0"}, - "south": {"uv": [3, 10, 4, 13], "texture": "#0"}, - "west": {"uv": [2, 10, 3, 13], "texture": "#0"}, - "up": {"uv": [2, 10, 1, 8], "texture": "#0"}, - "down": {"uv": [3, 8, 2, 10], "texture": "#0"} - } - }, - { - "name": "leg3", - "from": [0.5, 5.5, -7.5], - "to": [5.5, 12.5, -2.5], - "faces": { - "north": {"uv": [1, 10, 2, 13], "texture": "#0"}, - "east": {"uv": [0, 10, 1, 13], "texture": "#0"}, - "south": {"uv": [3, 10, 4, 13], "texture": "#0"}, - "west": {"uv": [2, 10, 3, 13], "texture": "#0"}, - "up": {"uv": [2, 10, 1, 8], "texture": "#0"}, - "down": {"uv": [3, 8, 2, 10], "texture": "#0"} - } - }, - { - "name": "leg4", - "from": [-5.5, 5.5, -7.5], - "to": [-0.5, 12.5, -2.5], - "faces": { - "north": {"uv": [1, 10, 2, 13], "texture": "#0"}, - "east": {"uv": [0, 10, 1, 13], "texture": "#0"}, - "south": {"uv": [3, 10, 4, 13], "texture": "#0"}, - "west": {"uv": [2, 10, 3, 13], "texture": "#0"}, - "up": {"uv": [2, 10, 1, 8], "texture": "#0"}, - "down": {"uv": [3, 8, 2, 10], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "body", - "origin": [0, 19, 2], - "color": 0, - "children": [0] - }, - { - "name": "head", - "origin": [0, 18, -8], - "color": 0, - "children": [1] - }, - { - "name": "leg1", - "origin": [3, 12, 7], - "color": 0, - "children": [2] - }, - { - "name": "leg2", - "origin": [-3, 12, 7], - "color": 0, - "children": [3] - }, - { - "name": "leg3", - "origin": [3, 12, -5], - "color": 0, - "children": [4] - }, - { - "name": "leg4", - "origin": [-3, 12, -5], - "color": 0, - "children": [5] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/sheep/baby.json b/src/main/resources/assets/minecraft/models/entity/sheep/baby.json deleted file mode 100644 index 12bc8ba..0000000 --- a/src/main/resources/assets/minecraft/models/entity/sheep/baby.json +++ /dev/null @@ -1,132 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Made by Miraculixx", - "texture_size": [64, 32], - "textures": { - "0": "entity/sheep/sheep" - }, - "elements": [ - { - "name": "head", - "from": [-3, 8, -10.5], - "to": [3, 14, -2.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, -8, 3.5]}, - "faces": { - "north": {"uv": [2, 4, 3.5, 7], "texture": "#0"}, - "east": {"uv": [0, 4, 2, 7], "texture": "#0"}, - "south": {"uv": [5.5, 4, 7, 7], "texture": "#0"}, - "west": {"uv": [3.5, 4, 5.5, 7], "texture": "#0"}, - "up": {"uv": [3.5, 4, 2, 0], "texture": "#0"}, - "down": {"uv": [5, 0, 3.5, 4], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-2, 3.5, -2], - "to": [2, 11.5, 1], - "rotation": {"x": 90, "y": 0, "z": 0, "origin": [0, 7.5, -0.5]}, - "faces": { - "north": {"uv": [8.5, 7, 10.5, 15], "texture": "#0"}, - "east": {"uv": [7, 7, 8.5, 15], "texture": "#0"}, - "south": {"uv": [12, 7, 14, 15], "texture": "#0"}, - "west": {"uv": [10.5, 7, 12, 15], "texture": "#0"}, - "up": {"uv": [10.5, 7, 8.5, 4], "texture": "#0"}, - "down": {"uv": [12.5, 4, 10.5, 7], "texture": "#0"} - } - }, - { - "name": "leg1", - "from": [0.5, 0, 2], - "to": [2.5, 6, 4], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -0.5]}, - "faces": { - "north": {"uv": [1, 10, 2, 16], "texture": "#0"}, - "east": {"uv": [0, 10, 1, 16], "texture": "#0"}, - "south": {"uv": [3, 10, 4, 16], "texture": "#0"}, - "west": {"uv": [2, 10, 3, 16], "texture": "#0"}, - "up": {"uv": [2, 10, 1, 8], "texture": "#0"}, - "down": {"uv": [3, 8, 2, 10], "texture": "#0"} - } - }, - { - "name": "leg2", - "from": [-2.5, 0, 2], - "to": [-0.5, 6, 4], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -0.5]}, - "faces": { - "north": {"uv": [1, 10, 2, 16], "texture": "#0"}, - "east": {"uv": [0, 10, 1, 16], "texture": "#0"}, - "south": {"uv": [3, 10, 4, 16], "texture": "#0"}, - "west": {"uv": [2, 10, 3, 16], "texture": "#0"}, - "up": {"uv": [2, 10, 1, 8], "texture": "#0"}, - "down": {"uv": [3, 8, 2, 10], "texture": "#0"} - } - }, - { - "name": "leg3", - "from": [0.5, 0, -4], - "to": [2.5, 6, -2], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -0.5]}, - "faces": { - "north": {"uv": [1, 10, 2, 16], "texture": "#0"}, - "east": {"uv": [0, 10, 1, 16], "texture": "#0"}, - "south": {"uv": [3, 10, 4, 16], "texture": "#0"}, - "west": {"uv": [2, 10, 3, 16], "texture": "#0"}, - "up": {"uv": [2, 10, 1, 8], "texture": "#0"}, - "down": {"uv": [3, 8, 2, 10], "texture": "#0"} - } - }, - { - "name": "leg4", - "from": [-2.5, 0, -4], - "to": [-0.5, 6, -2], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -0.5]}, - "faces": { - "north": {"uv": [1, 10, 2, 16], "texture": "#0"}, - "east": {"uv": [0, 10, 1, 16], "texture": "#0"}, - "south": {"uv": [3, 10, 4, 16], "texture": "#0"}, - "west": {"uv": [2, 10, 3, 16], "texture": "#0"}, - "up": {"uv": [2, 10, 1, 8], "texture": "#0"}, - "down": {"uv": [3, 8, 2, 10], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "head", - "origin": [0, 18, -8], - "color": 0, - "children": [0] - }, - { - "name": "body", - "origin": [0, 19, 2], - "color": 0, - "children": [1] - }, - { - "name": "leg1", - "origin": [3, 12, 7], - "color": 0, - "children": [2] - }, - { - "name": "leg2", - "origin": [-3, 12, 7], - "color": 0, - "children": [3] - }, - { - "name": "leg3", - "origin": [3, 12, -5], - "color": 0, - "children": [4] - }, - { - "name": "leg4", - "origin": [-3, 12, -5], - "color": 0, - "children": [5] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/sheep/baby_wool.json b/src/main/resources/assets/minecraft/models/entity/sheep/baby_wool.json deleted file mode 100644 index ea6c844..0000000 --- a/src/main/resources/assets/minecraft/models/entity/sheep/baby_wool.json +++ /dev/null @@ -1,132 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Made by Miraculixx", - "texture_size": [64, 32], - "textures": { - "0": "entity/sheep/sheep_wool" - }, - "elements": [ - { - "name": "head", - "from": [-3.6, 7.4, -9.6], - "to": [3.6, 14.6, -2.4], - "rotation": {"angle": 0, "axis": "y", "origin": [0, -8, 3]}, - "faces": { - "north": {"uv": [1.5, 3, 3, 6], "texture": "#0"}, - "east": {"uv": [0, 3, 1.5, 6], "texture": "#0"}, - "south": {"uv": [4.5, 3, 6, 6], "texture": "#0"}, - "west": {"uv": [3, 3, 4.5, 6], "texture": "#0"}, - "up": {"uv": [3, 3, 1.5, 0], "texture": "#0"}, - "down": {"uv": [4.5, 0, 3, 3], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-2.875, 5.125, -6.875], - "to": [2.875, 14.875, -2.125], - "rotation": {"x": -90, "y": 0, "z": 0, "origin": [0, 11, -1.5]}, - "faces": { - "north": {"uv": [8.5, 7, 10.5, 15], "texture": "#0"}, - "east": {"uv": [7, 7, 8.5, 15], "texture": "#0"}, - "south": {"uv": [12, 7, 14, 15], "texture": "#0"}, - "west": {"uv": [10.5, 7, 12, 15], "texture": "#0"}, - "up": {"uv": [10.5, 7, 8.5, 4], "texture": "#0"}, - "down": {"uv": [12.5, 4, 10.5, 7], "texture": "#0"} - } - }, - { - "name": "leg1", - "from": [0.25, 3.25, 1.75], - "to": [2.75, 6.75, 4.25], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0.5, -0.5]}, - "faces": { - "north": {"uv": [1, 10, 2, 13], "texture": "#0"}, - "east": {"uv": [0, 10, 1, 13], "texture": "#0"}, - "south": {"uv": [3, 10, 4, 13], "texture": "#0"}, - "west": {"uv": [2, 10, 3, 13], "texture": "#0"}, - "up": {"uv": [2, 10, 1, 8], "texture": "#0"}, - "down": {"uv": [3, 8, 2, 10], "texture": "#0"} - } - }, - { - "name": "leg2", - "from": [-2.75, 3.25, 1.75], - "to": [-0.25, 6.75, 4.25], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0.5, -0.5]}, - "faces": { - "north": {"uv": [1, 10, 2, 13], "texture": "#0"}, - "east": {"uv": [0, 10, 1, 13], "texture": "#0"}, - "south": {"uv": [3, 10, 4, 13], "texture": "#0"}, - "west": {"uv": [2, 10, 3, 13], "texture": "#0"}, - "up": {"uv": [2, 10, 1, 8], "texture": "#0"}, - "down": {"uv": [3, 8, 2, 10], "texture": "#0"} - } - }, - { - "name": "leg3", - "from": [0.25, 3.25, -4.25], - "to": [2.75, 6.75, -1.75], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0.5, -0.5]}, - "faces": { - "north": {"uv": [1, 10, 2, 13], "texture": "#0"}, - "east": {"uv": [0, 10, 1, 13], "texture": "#0"}, - "south": {"uv": [3, 10, 4, 13], "texture": "#0"}, - "west": {"uv": [2, 10, 3, 13], "texture": "#0"}, - "up": {"uv": [2, 10, 1, 8], "texture": "#0"}, - "down": {"uv": [3, 8, 2, 10], "texture": "#0"} - } - }, - { - "name": "leg4", - "from": [-2.75, 3.25, -4.25], - "to": [-0.25, 6.75, -1.75], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0.5, -0.5]}, - "faces": { - "north": {"uv": [1, 10, 2, 13], "texture": "#0"}, - "east": {"uv": [0, 10, 1, 13], "texture": "#0"}, - "south": {"uv": [3, 10, 4, 13], "texture": "#0"}, - "west": {"uv": [2, 10, 3, 13], "texture": "#0"}, - "up": {"uv": [2, 10, 1, 8], "texture": "#0"}, - "down": {"uv": [3, 8, 2, 10], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "head", - "origin": [0, 18, -8], - "color": 0, - "children": [0] - }, - { - "name": "body", - "origin": [0, 19, 2], - "color": 0, - "children": [1] - }, - { - "name": "leg1", - "origin": [3, 12, 7], - "color": 0, - "children": [2] - }, - { - "name": "leg2", - "origin": [-3, 12, 7], - "color": 0, - "children": [3] - }, - { - "name": "leg3", - "origin": [3, 12, -5], - "color": 0, - "children": [4] - }, - { - "name": "leg4", - "origin": [-3, 12, -5], - "color": 0, - "children": [5] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/skeleton/bogged.json b/src/main/resources/assets/minecraft/models/entity/skeleton/bogged.json deleted file mode 100644 index ad7c7f2..0000000 --- a/src/main/resources/assets/minecraft/models/entity/skeleton/bogged.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "entity/skeleton/stray", - "textures": { - "0": "entity/skeleton/bogged", - "1": "entity/skeleton/bogged_overlay" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/skeleton/parched.json b/src/main/resources/assets/minecraft/models/entity/skeleton/parched.json deleted file mode 100644 index ee0618f..0000000 --- a/src/main/resources/assets/minecraft/models/entity/skeleton/parched.json +++ /dev/null @@ -1,210 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Made by Miraculixx", - "texture_size": [64, 64], - "textures": { - "0": "entity/skeleton/parched" - }, - "elements": [ - { - "name": "head", - "from": [-4, 24, -4], - "to": [4, 32, 4], - "faces": { - "north": {"uv": [2, 2, 4, 4], "texture": "#0"}, - "east": {"uv": [0, 2, 2, 4], "texture": "#0"}, - "south": {"uv": [6, 2, 8, 4], "texture": "#0"}, - "west": {"uv": [4, 2, 6, 4], "texture": "#0"}, - "up": {"uv": [4, 2, 2, 0], "texture": "#0"}, - "down": {"uv": [6, 0, 4, 2], "texture": "#0"} - } - }, - { - "name": "head", - "from": [-4.25, 23.75, -4.25], - "to": [4.25, 32.25, 4.25], - "faces": { - "north": {"uv": [2, 10, 4, 12], "texture": "#0"}, - "east": {"uv": [0, 10, 2, 12], "texture": "#0"}, - "south": {"uv": [6, 10, 8, 12], "texture": "#0"}, - "west": {"uv": [4, 10, 6, 12], "texture": "#0"}, - "up": {"uv": [4, 10, 2, 8], "texture": "#0"}, - "down": {"uv": [6, 8, 4, 10], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-4, 12, -2], - "to": [4, 24, 2], - "faces": { - "north": {"uv": [5, 5, 7, 8], "texture": "#0"}, - "east": {"uv": [4, 5, 5, 8], "texture": "#0"}, - "south": {"uv": [8, 5, 10, 8], "texture": "#0"}, - "west": {"uv": [7, 5, 8, 8], "texture": "#0"}, - "up": {"uv": [7, 5, 5, 4], "texture": "#0"}, - "down": {"uv": [9, 4, 7, 5], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-4.25, 11.75, -2.25], - "to": [4.25, 24.25, 2.25], - "faces": { - "north": {"uv": [5, 13, 7, 16], "texture": "#0"}, - "east": {"uv": [4, 13, 5, 16], "texture": "#0"}, - "south": {"uv": [8, 13, 10, 16], "texture": "#0"}, - "west": {"uv": [7, 13, 8, 16], "texture": "#0"}, - "up": {"uv": [7, 13, 5, 12], "texture": "#0"}, - "down": {"uv": [9, 12, 7, 13], "texture": "#0"} - } - }, - { - "name": "left_arm", - "from": [-6.75, 11.5, -1.5], - "to": [-3.75, 24.5, 1.5], - "rotation": {"angle": -5, "axis": "z", "origin": [-4.75, 18.5, -0.5]}, - "faces": { - "north": {"uv": [11.5, 8.75, 10.75, 12], "texture": "#0"}, - "east": {"uv": [12.25, 8.75, 11.5, 12], "texture": "#0"}, - "south": {"uv": [13, 8.75, 12.25, 12], "texture": "#0"}, - "west": {"uv": [10.75, 8.75, 10, 12], "texture": "#0"}, - "up": {"uv": [11.25, 8, 12, 8.75], "texture": "#0"}, - "down": {"uv": [12, 8, 12.75, 8.75], "texture": "#0"} - } - }, - { - "name": "left_arm", - "from": [-6.25, 12, -1], - "to": [-4.25, 24, 1], - "rotation": {"angle": -5, "axis": "z", "origin": [-5.25, 18, 0]}, - "faces": { - "north": {"uv": [11, 4.5, 10.5, 7.5], "texture": "#0"}, - "east": {"uv": [11.5, 4.5, 11, 7.5], "texture": "#0"}, - "south": {"uv": [12, 4.5, 11.5, 7.5], "texture": "#0"}, - "west": {"uv": [10.5, 4.5, 10, 7.5], "texture": "#0"}, - "up": {"uv": [10.5, 4.5, 11, 4], "texture": "#0"}, - "down": {"uv": [11, 4, 11.5, 4.5], "texture": "#0"} - } - }, - { - "name": "right_arm", - "from": [4.25, 12, -1], - "to": [6.25, 24, 1], - "rotation": {"angle": 5, "axis": "z", "origin": [5.25, 18, 0]}, - "faces": { - "north": {"uv": [14.5, 4.5, 15, 7.5], "texture": "#0"}, - "east": {"uv": [14, 4.5, 14.5, 7.5], "texture": "#0"}, - "south": {"uv": [15.5, 4.5, 16, 7.5], "texture": "#0"}, - "west": {"uv": [15, 4.5, 15.5, 7.5], "texture": "#0"}, - "up": {"uv": [15, 4.5, 14.5, 4], "texture": "#0"}, - "down": {"uv": [15.5, 4, 15, 4.5], "texture": "#0"} - } - }, - { - "name": "right_arm", - "from": [3.75, 11.5, -1.5], - "to": [6.75, 24.5, 1.5], - "rotation": {"angle": 5, "axis": "z", "origin": [4.75, 17.5, 0.5]}, - "faces": { - "north": {"uv": [10.75, 12.75, 11.5, 16], "texture": "#0"}, - "east": {"uv": [10, 12.75, 10.75, 16], "texture": "#0"}, - "south": {"uv": [12.25, 12.75, 13, 16], "texture": "#0"}, - "west": {"uv": [11.5, 12.75, 12.25, 16], "texture": "#0"}, - "up": {"uv": [11.5, 12.75, 10.75, 12], "texture": "#0"}, - "down": {"uv": [12.25, 12, 11.5, 12.75], "texture": "#0"} - } - }, - { - "name": "left_leg", - "from": [-3, 0, -1], - "to": [-1, 12, 1], - "faces": { - "north": {"uv": [1, 4.5, 0.5, 7.5], "texture": "#0"}, - "east": {"uv": [1.5, 4.5, 1, 7.5], "texture": "#0"}, - "south": {"uv": [2, 4.5, 1.5, 7.5], "texture": "#0"}, - "west": {"uv": [0.5, 4.5, 0, 7.5], "texture": "#0"}, - "up": {"uv": [0.5, 4.5, 1, 4], "texture": "#0"}, - "down": {"uv": [1, 4, 1.5, 4.5], "texture": "#0"} - } - }, - { - "name": "left_leg", - "from": [-3.5, -0.5, -1.5], - "to": [-0.5, 12.5, 1.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0.5, 0.5, -0.5]}, - "faces": { - "north": {"uv": [1.5, 12.75, 0.75, 16], "texture": "#0"}, - "east": {"uv": [2.25, 12.75, 1.5, 16], "texture": "#0"}, - "south": {"uv": [3, 12.75, 2.25, 16], "texture": "#0"}, - "west": {"uv": [0.75, 12.75, 0, 16], "texture": "#0"}, - "up": {"uv": [0.75, 12.75, 1.5, 12], "texture": "#0"}, - "down": {"uv": [1.5, 12, 2.25, 12.75], "texture": "#0"} - } - }, - { - "name": "right_leg", - "from": [1, 0, -1], - "to": [3, 12, 1], - "faces": { - "north": {"uv": [0.5, 4.5, 1, 7.5], "texture": "#0"}, - "east": {"uv": [0, 4.5, 0.5, 7.5], "texture": "#0"}, - "south": {"uv": [1.5, 4.5, 2, 7.5], "texture": "#0"}, - "west": {"uv": [1, 4.5, 1.5, 7.5], "texture": "#0"}, - "up": {"uv": [1, 4.5, 0.5, 4], "texture": "#0"}, - "down": {"uv": [1.5, 4, 1, 4.5], "texture": "#0"} - } - }, - { - "name": "right_leg", - "from": [0.5, -0.5, -1.5], - "to": [3.5, 12.5, 1.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0.5, 0.5, -0.5]}, - "faces": { - "north": {"uv": [0.75, 12.75, 1.5, 16], "texture": "#0"}, - "east": {"uv": [0, 12.75, 0.75, 16], "texture": "#0"}, - "south": {"uv": [2.25, 12.75, 3, 16], "texture": "#0"}, - "west": {"uv": [1.5, 12.75, 2.25, 16], "texture": "#0"}, - "up": {"uv": [1.5, 12.75, 0.75, 12], "texture": "#0"}, - "down": {"uv": [2.25, 12, 1.5, 12.75], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "head", - "origin": [0, 24, 0], - "color": 0, - "children": [0, 1] - }, - { - "name": "body", - "origin": [0, 24, 0], - "color": 0, - "children": [2, 3] - }, - { - "name": "left_arm", - "origin": [-5, 22, 0], - "color": 0, - "children": [4, 5] - }, - { - "name": "right_arm", - "origin": [5, 22, 0], - "color": 0, - "children": [6, 7] - }, - { - "name": "left_leg", - "origin": [-2, 12, 0.1], - "color": 0, - "children": [8, 9] - }, - { - "name": "right_leg", - "origin": [2, 12, 0.1], - "color": 0, - "children": [10, 11] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/skeleton/skeleton.json b/src/main/resources/assets/minecraft/models/entity/skeleton/skeleton.json deleted file mode 100644 index c4f8749..0000000 --- a/src/main/resources/assets/minecraft/models/entity/skeleton/skeleton.json +++ /dev/null @@ -1,128 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Made by Miraculixx", - "texture_size": [64, 32], - "textures": { - "0": "entity/skeleton/skeleton" - }, - "elements": [ - { - "name": "head", - "from": [-4, 24, -4], - "to": [4, 32, 4], - "faces": { - "north": {"uv": [2, 4, 4, 8], "texture": "#0"}, - "east": {"uv": [0, 4, 2, 8], "texture": "#0"}, - "south": {"uv": [6, 4, 8, 8], "texture": "#0"}, - "west": {"uv": [4, 4, 6, 8], "texture": "#0"}, - "up": {"uv": [4, 4, 2, 0], "texture": "#0"}, - "down": {"uv": [6, 0, 4, 4], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-4, 12, -2], - "to": [4, 24, 2], - "faces": { - "north": {"uv": [5, 10, 7, 16], "texture": "#0"}, - "east": {"uv": [4, 10, 5, 16], "texture": "#0"}, - "south": {"uv": [8, 10, 10, 16], "texture": "#0"}, - "west": {"uv": [7, 10, 8, 16], "texture": "#0"}, - "up": {"uv": [7, 10, 5, 8], "texture": "#0"}, - "down": {"uv": [9, 8, 7, 10], "texture": "#0"} - } - }, - { - "name": "left_arm", - "from": [-6.25, 12, -1], - "to": [-4.25, 24, 1], - "rotation": {"angle": -5, "axis": "z", "origin": [-5.25, 18, 0]}, - "faces": { - "north": {"uv": [11, 9, 10.5, 15], "texture": "#0"}, - "east": {"uv": [11.5, 9, 11, 15], "texture": "#0"}, - "south": {"uv": [12, 9, 11.5, 15], "texture": "#0"}, - "west": {"uv": [10.5, 9, 10, 15], "texture": "#0"}, - "up": {"uv": [10.5, 9, 11, 8], "texture": "#0"}, - "down": {"uv": [11, 8, 11.5, 9], "texture": "#0"} - } - }, - { - "name": "right_arm", - "from": [4.25, 12, -1], - "to": [6.25, 24, 1], - "rotation": {"angle": 5, "axis": "z", "origin": [5.25, 18, 0]}, - "faces": { - "north": {"uv": [10.5, 9, 11, 15], "texture": "#0"}, - "east": {"uv": [10, 9, 10.5, 15], "texture": "#0"}, - "south": {"uv": [11.5, 9, 12, 15], "texture": "#0"}, - "west": {"uv": [11, 9, 11.5, 15], "texture": "#0"}, - "up": {"uv": [11, 9, 10.5, 8], "texture": "#0"}, - "down": {"uv": [11.5, 8, 11, 9], "texture": "#0"} - } - }, - { - "name": "left_leg", - "from": [-3, 0, -1], - "to": [-1, 12, 1], - "faces": { - "north": {"uv": [1, 9, 0.5, 15], "texture": "#0"}, - "east": {"uv": [1.5, 9, 1, 15], "texture": "#0"}, - "south": {"uv": [2, 9, 1.5, 15], "texture": "#0"}, - "west": {"uv": [0.5, 9, 0, 15], "texture": "#0"}, - "up": {"uv": [0.5, 9, 1, 8], "texture": "#0"}, - "down": {"uv": [1, 8, 1.5, 9], "texture": "#0"} - } - }, - { - "name": "right_leg", - "from": [1, 0, -1], - "to": [3, 12, 1], - "faces": { - "north": {"uv": [0.5, 9, 1, 15], "texture": "#0"}, - "east": {"uv": [0, 9, 0.5, 15], "texture": "#0"}, - "south": {"uv": [1.5, 9, 2, 15], "texture": "#0"}, - "west": {"uv": [1, 9, 1.5, 15], "texture": "#0"}, - "up": {"uv": [1, 9, 0.5, 8], "texture": "#0"}, - "down": {"uv": [1.5, 8, 1, 9], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "head", - "origin": [0, 24, 0], - "color": 0, - "children": [0] - }, - { - "name": "body", - "origin": [0, 24, 0], - "color": 0, - "children": [1] - }, - { - "name": "left_arm", - "origin": [-5, 22, 0], - "color": 0, - "children": [2] - }, - { - "name": "right_arm", - "origin": [5, 22, 0], - "color": 0, - "children": [3] - }, - { - "name": "left_leg", - "origin": [-2, 12, 0.1], - "color": 0, - "children": [4] - }, - { - "name": "right_leg", - "origin": [2, 12, 0.1], - "color": 0, - "children": [5] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/skeleton/stray.json b/src/main/resources/assets/minecraft/models/entity/skeleton/stray.json deleted file mode 100644 index 1d4b33a..0000000 --- a/src/main/resources/assets/minecraft/models/entity/skeleton/stray.json +++ /dev/null @@ -1,308 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Made by Miraculixx", - "texture_size": [64, 32], - "textures": { - "0": "entity/skeleton/stray", - "1": "entity/skeleton/stray_overlay" - }, - "elements": [ - { - "name": "head", - "from": [-4, 24, -4], - "to": [4, 32, 4], - "faces": { - "north": {"uv": [2, 4, 4, 8], "texture": "#0"}, - "east": {"uv": [0, 4, 2, 8], "texture": "#0"}, - "south": {"uv": [6, 4, 8, 8], "texture": "#0"}, - "west": {"uv": [4, 4, 6, 8], "texture": "#0"}, - "up": {"uv": [4, 4, 2, 0], "texture": "#0"}, - "down": {"uv": [6, 0, 4, 4], "texture": "#0"} - } - }, - { - "name": "head", - "from": [-4.25, 23.75, -4.25], - "to": [4.25, 32.25, 4.25], - "faces": { - "north": {"uv": [2, 4, 4, 8], "texture": "#1"}, - "east": {"uv": [0, 4, 2, 8], "texture": "#1"}, - "south": {"uv": [6, 4, 8, 8], "texture": "#1"}, - "west": {"uv": [4, 4, 6, 8], "texture": "#1"}, - "up": {"uv": [4, 4, 2, 0], "texture": "#1"}, - "down": {"uv": [6, 0, 4, 4], "texture": "#1"} - } - }, - { - "name": "mushrooms_top", - "from": [-6, 31, 3], - "to": [0, 35, 3], - "faces": { - "north": {"uv": [12.5, 8, 14, 10], "texture": "#0"}, - "east": {"uv": [12.5, 8, 12.5, 10], "texture": "#0"}, - "south": {"uv": [14, 8, 15.5, 10], "texture": "#0"}, - "west": {"uv": [14, 8, 14, 10], "texture": "#0"}, - "up": {"uv": [14, 8, 12.5, 8], "texture": "#0"}, - "down": {"uv": [15.5, 8, 14, 8], "texture": "#0"} - } - }, - { - "name": "mushrooms_top", - "from": [-3, 31, 0], - "to": [-3, 35, 6], - "faces": { - "north": {"uv": [14, 8, 14, 10], "texture": "#0"}, - "east": {"uv": [12.5, 8, 14, 10], "texture": "#0"}, - "south": {"uv": [15.5, 8, 15.5, 10], "texture": "#0"}, - "west": {"uv": [14, 8, 15.5, 10], "texture": "#0"}, - "up": {"uv": [14, 8, 14, 5], "texture": "#0"}, - "down": {"uv": [14, 5, 14, 8], "texture": "#0"} - } - }, - { - "name": "mushrooms_top", - "from": [-6, 31, -5.5], - "to": [0, 35, -5.5], - "faces": { - "north": {"uv": [12.5, 11, 14, 13], "texture": "#0"}, - "east": {"uv": [12.5, 11, 12.5, 13], "texture": "#0"}, - "south": {"uv": [14, 11, 15.5, 13], "texture": "#0"}, - "west": {"uv": [14, 11, 14, 13], "texture": "#0"}, - "up": {"uv": [14, 11, 12.5, 11], "texture": "#0"}, - "down": {"uv": [15.5, 11, 14, 11], "texture": "#0"} - } - }, - { - "name": "mushrooms_top", - "from": [-3, 31, -8.5], - "to": [-3, 35, -2.5], - "faces": { - "north": {"uv": [14, 11, 14, 13], "texture": "#0"}, - "east": {"uv": [12.5, 11, 14, 13], "texture": "#0"}, - "south": {"uv": [15.5, 11, 15.5, 13], "texture": "#0"}, - "west": {"uv": [14, 11, 15.5, 13], "texture": "#0"}, - "up": {"uv": [14, 11, 14, 8], "texture": "#0"}, - "down": {"uv": [14, 8, 14, 11], "texture": "#0"} - } - }, - { - "name": "mushrooms_back", - "from": [-1, 24, 5], - "to": [5, 28, 5], - "faces": { - "north": {"uv": [12.5, 14, 14, 16], "texture": "#0"}, - "east": {"uv": [12.5, 14, 12.5, 16], "texture": "#0"}, - "south": {"uv": [14, 14, 15.5, 16], "texture": "#0"}, - "west": {"uv": [14, 14, 14, 16], "texture": "#0"}, - "up": {"uv": [14, 14, 12.5, 14], "texture": "#0"}, - "down": {"uv": [15.5, 14, 14, 14], "texture": "#0"} - } - }, - { - "name": "mushrooms_back", - "from": [2, 24, 2], - "to": [2, 28, 8], - "faces": { - "north": {"uv": [14, 14, 14, 16], "texture": "#0"}, - "east": {"uv": [12.5, 14, 14, 16], "texture": "#0"}, - "south": {"uv": [15.5, 14, 15.5, 16], "texture": "#0"}, - "west": {"uv": [14, 14, 15.5, 16], "texture": "#0"}, - "up": {"uv": [14, 14, 14, 11], "texture": "#0"}, - "down": {"uv": [14, 11, 14, 14], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-4, 12, -2], - "to": [4, 24, 2], - "faces": { - "north": {"uv": [5, 10, 7, 16], "texture": "#0"}, - "east": {"uv": [4, 10, 5, 16], "texture": "#0"}, - "south": {"uv": [8, 10, 10, 16], "texture": "#0"}, - "west": {"uv": [7, 10, 8, 16], "texture": "#0"}, - "up": {"uv": [7, 10, 5, 8], "texture": "#0"}, - "down": {"uv": [9, 8, 7, 10], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-4.25, 11.75, -2.25], - "to": [4.25, 24.25, 2.25], - "faces": { - "north": {"uv": [5, 10, 7, 16], "texture": "#1"}, - "east": {"uv": [4, 10, 5, 16], "texture": "#1"}, - "south": {"uv": [8, 10, 10, 16], "texture": "#1"}, - "west": {"uv": [7, 10, 8, 16], "texture": "#1"}, - "up": {"uv": [7, 10, 5, 8], "texture": "#1"}, - "down": {"uv": [9, 8, 7, 10], "texture": "#1"} - } - }, - { - "name": "left_arm", - "from": [-6.25, 12, -1], - "to": [-4.25, 24, 1], - "rotation": {"angle": -5, "axis": "z", "origin": [-5.25, 18, 0]}, - "faces": { - "north": {"uv": [11, 9, 10.5, 15], "texture": "#0"}, - "east": {"uv": [11.5, 9, 11, 15], "texture": "#0"}, - "south": {"uv": [12, 9, 11.5, 15], "texture": "#0"}, - "west": {"uv": [10.5, 9, 10, 15], "texture": "#0"}, - "up": {"uv": [10.5, 9, 11, 8], "texture": "#0"}, - "down": {"uv": [11, 8, 11.5, 9], "texture": "#0"} - } - }, - { - "name": "left_arm", - "from": [-8.5, 11.75, -2.25], - "to": [-4, 24.25, 2.25], - "rotation": {"angle": -5, "axis": "z", "origin": [-6.25, 18, 0]}, - "faces": { - "north": {"uv": [12, 10, 11, 16], "texture": "#1"}, - "east": {"uv": [13, 10, 12, 16], "texture": "#1"}, - "south": {"uv": [14, 10, 13, 16], "texture": "#1"}, - "west": {"uv": [11, 10, 10, 16], "texture": "#1"}, - "up": {"uv": [11, 10, 12, 8], "texture": "#1"}, - "down": {"uv": [12, 8, 13, 10], "texture": "#1"} - } - }, - { - "name": "right_arm", - "from": [4.25, 12, -1], - "to": [6.25, 24, 1], - "rotation": {"angle": 5, "axis": "z", "origin": [5.25, 18, 0]}, - "faces": { - "north": {"uv": [10.5, 9, 11, 15], "texture": "#0"}, - "east": {"uv": [10, 9, 10.5, 15], "texture": "#0"}, - "south": {"uv": [11.5, 9, 12, 15], "texture": "#0"}, - "west": {"uv": [11, 9, 11.5, 15], "texture": "#0"}, - "up": {"uv": [11, 9, 10.5, 8], "texture": "#0"}, - "down": {"uv": [11.5, 8, 11, 9], "texture": "#0"} - } - }, - { - "name": "right_arm", - "from": [4, 11.75, -2.25], - "to": [8.5, 24.25, 2.25], - "rotation": {"angle": 5, "axis": "z", "origin": [6.25, 18, 0]}, - "faces": { - "north": {"uv": [11, 10, 12, 16], "texture": "#1"}, - "east": {"uv": [10, 10, 11, 16], "texture": "#1"}, - "south": {"uv": [13, 10, 14, 16], "texture": "#1"}, - "west": {"uv": [12, 10, 13, 16], "texture": "#1"}, - "up": {"uv": [12, 10, 11, 8], "texture": "#1"}, - "down": {"uv": [13, 8, 12, 10], "texture": "#1"} - } - }, - { - "name": "left_leg", - "from": [-3, 0, -1], - "to": [-1, 12, 1], - "faces": { - "north": {"uv": [1, 9, 0.5, 15], "texture": "#0"}, - "east": {"uv": [1.5, 9, 1, 15], "texture": "#0"}, - "south": {"uv": [2, 9, 1.5, 15], "texture": "#0"}, - "west": {"uv": [0.5, 9, 0, 15], "texture": "#0"}, - "up": {"uv": [0.5, 9, 1, 8], "texture": "#0"}, - "down": {"uv": [1, 8, 1.5, 9], "texture": "#0"} - } - }, - { - "name": "left_leg", - "from": [-4.15, -0.25, -2.15], - "to": [0.35, 12.25, 2.35], - "faces": { - "north": {"uv": [2, 10, 1, 16], "texture": "#1"}, - "east": {"uv": [3, 10, 2, 16], "texture": "#1"}, - "south": {"uv": [4, 10, 3, 16], "texture": "#1"}, - "west": {"uv": [1, 10, 0, 16], "texture": "#1"}, - "up": {"uv": [1, 10, 2, 8], "texture": "#1"}, - "down": {"uv": [2, 8, 3, 10], "texture": "#1"} - } - }, - { - "name": "right_leg", - "from": [1, 0, -1], - "to": [3, 12, 1], - "faces": { - "north": {"uv": [0.5, 9, 1, 15], "texture": "#0"}, - "east": {"uv": [0, 9, 0.5, 15], "texture": "#0"}, - "south": {"uv": [1.5, 9, 2, 15], "texture": "#0"}, - "west": {"uv": [1, 9, 1.5, 15], "texture": "#0"}, - "up": {"uv": [1, 9, 0.5, 8], "texture": "#0"}, - "down": {"uv": [1.5, 8, 1, 9], "texture": "#0"} - } - }, - { - "name": "right_leg", - "from": [-0.35, -0.25, -2.15], - "to": [4.15, 12.25, 2.35], - "faces": { - "north": {"uv": [1, 10, 2, 16], "texture": "#1"}, - "east": {"uv": [0, 10, 1, 16], "texture": "#1"}, - "south": {"uv": [3, 10, 4, 16], "texture": "#1"}, - "west": {"uv": [2, 10, 3, 16], "texture": "#1"}, - "up": {"uv": [2, 10, 1, 8], "texture": "#1"}, - "down": {"uv": [3, 8, 2, 10], "texture": "#1"} - } - } - ], - "groups": [ - { - "name": "head", - "origin": [0, 24, 0], - "color": 0, - "children": [0, 1] - }, - { - "name": "mushrooms", - "origin": [0, 24, 0], - "color": 0, - "children": [ - { - "name": "mushrooms_top", - "origin": [-3, 32, 3], - "rotation": [0, -45, 0], - "color": 0, - "children": [2, 3, 4, 5] - }, - { - "name": "mushrooms_back", - "origin": [2, 25, 5], - "rotation": [90, 0, 135], - "color": 0, - "children": [6, 7] - } - ] - }, - { - "name": "body", - "origin": [0, 24, 0], - "color": 0, - "children": [8, 9] - }, - { - "name": "left_arm", - "origin": [-5, 22, 0], - "color": 0, - "children": [10, 11] - }, - { - "name": "right_arm", - "origin": [5, 22, 0], - "color": 0, - "children": [12, 13] - }, - { - "name": "left_leg", - "origin": [-2, 12, 0.1], - "color": 0, - "children": [14, 15] - }, - { - "name": "right_leg", - "origin": [2, 12, 0.1], - "color": 0, - "children": [16, 17] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/skeleton/wither_skeleton.json b/src/main/resources/assets/minecraft/models/entity/skeleton/wither_skeleton.json deleted file mode 100644 index e47f4df..0000000 --- a/src/main/resources/assets/minecraft/models/entity/skeleton/wither_skeleton.json +++ /dev/null @@ -1,128 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Made by Miraculixx", - "texture_size": [64, 32], - "textures": { - "0": "entity/skeleton/wither_skeleton" - }, - "elements": [ - { - "name": "head", - "from": [-4.5, 27, -4.5], - "to": [4.5, 36, 4.5], - "faces": { - "north": {"uv": [2, 4, 4, 8], "texture": "#0"}, - "east": {"uv": [0, 4, 2, 8], "texture": "#0"}, - "south": {"uv": [6, 4, 8, 8], "texture": "#0"}, - "west": {"uv": [4, 4, 6, 8], "texture": "#0"}, - "up": {"uv": [4, 4, 2, 0], "texture": "#0"}, - "down": {"uv": [6, 0, 4, 4], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-4.5, 13.5, -2.25], - "to": [4.5, 27, 2.25], - "faces": { - "north": {"uv": [5, 10, 7, 16], "texture": "#0"}, - "east": {"uv": [4, 10, 5, 16], "texture": "#0"}, - "south": {"uv": [8, 10, 10, 16], "texture": "#0"}, - "west": {"uv": [7, 10, 8, 16], "texture": "#0"}, - "up": {"uv": [7, 10, 5, 8], "texture": "#0"}, - "down": {"uv": [9, 8, 7, 10], "texture": "#0"} - } - }, - { - "name": "left_arm", - "from": [-7.03125, 13.5, -1.125], - "to": [-4.78125, 27, 1.125], - "rotation": {"angle": -5, "axis": "z", "origin": [-5.90625, 20.25, 0]}, - "faces": { - "north": {"uv": [11, 9, 10.5, 15], "texture": "#0"}, - "east": {"uv": [11.5, 9, 11, 15], "texture": "#0"}, - "south": {"uv": [12, 9, 11.5, 15], "texture": "#0"}, - "west": {"uv": [10.5, 9, 10, 15], "texture": "#0"}, - "up": {"uv": [10.5, 9, 11, 8], "texture": "#0"}, - "down": {"uv": [11, 8, 11.5, 9], "texture": "#0"} - } - }, - { - "name": "right_arm", - "from": [4.78125, 13.5, -1.125], - "to": [7.03125, 27, 1.125], - "rotation": {"angle": 5, "axis": "z", "origin": [5.90625, 20.25, 0]}, - "faces": { - "north": {"uv": [10.5, 9, 11, 15], "texture": "#0"}, - "east": {"uv": [10, 9, 10.5, 15], "texture": "#0"}, - "south": {"uv": [11.5, 9, 12, 15], "texture": "#0"}, - "west": {"uv": [11, 9, 11.5, 15], "texture": "#0"}, - "up": {"uv": [11, 9, 10.5, 8], "texture": "#0"}, - "down": {"uv": [11.5, 8, 11, 9], "texture": "#0"} - } - }, - { - "name": "left_leg", - "from": [-3.375, 0, -1.125], - "to": [-1.125, 13.5, 1.125], - "faces": { - "north": {"uv": [1, 9, 0.5, 15], "texture": "#0"}, - "east": {"uv": [1.5, 9, 1, 15], "texture": "#0"}, - "south": {"uv": [2, 9, 1.5, 15], "texture": "#0"}, - "west": {"uv": [0.5, 9, 0, 15], "texture": "#0"}, - "up": {"uv": [0.5, 9, 1, 8], "texture": "#0"}, - "down": {"uv": [1, 8, 1.5, 9], "texture": "#0"} - } - }, - { - "name": "right_leg", - "from": [1.125, 0, -1.125], - "to": [3.375, 13.5, 1.125], - "faces": { - "north": {"uv": [0.5, 9, 1, 15], "texture": "#0"}, - "east": {"uv": [0, 9, 0.5, 15], "texture": "#0"}, - "south": {"uv": [1.5, 9, 2, 15], "texture": "#0"}, - "west": {"uv": [1, 9, 1.5, 15], "texture": "#0"}, - "up": {"uv": [1, 9, 0.5, 8], "texture": "#0"}, - "down": {"uv": [1.5, 8, 1, 9], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "head", - "origin": [0, 24, 0], - "color": 0, - "children": [0] - }, - { - "name": "body", - "origin": [0, 24, 0], - "color": 0, - "children": [1] - }, - { - "name": "left_arm", - "origin": [-5, 22, 0], - "color": 0, - "children": [2] - }, - { - "name": "right_arm", - "origin": [5, 22, 0], - "color": 0, - "children": [3] - }, - { - "name": "left_leg", - "origin": [-2, 12, 0.1], - "color": 0, - "children": [4] - }, - { - "name": "right_leg", - "origin": [2, 12, 0.1], - "color": 0, - "children": [5] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/snow_golem.json b/src/main/resources/assets/minecraft/models/entity/snow_golem.json deleted file mode 100644 index fea40a9..0000000 --- a/src/main/resources/assets/minecraft/models/entity/snow_golem.json +++ /dev/null @@ -1,97 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Made by Miraculixx", - "texture_size": [64, 64], - "textures": { - "0": "entity/snow_golem" - }, - "elements": [ - { - "name": "head", - "from": [-3.5, 20.5, -3.5], - "to": [3.5, 27.5, 3.5], - "faces": { - "north": {"uv": [2, 2, 4, 4], "texture": "#0"}, - "east": {"uv": [0, 2, 2, 4], "texture": "#0"}, - "south": {"uv": [6, 2, 8, 4], "texture": "#0"}, - "west": {"uv": [4, 2, 6, 4], "texture": "#0"}, - "up": {"uv": [4, 2, 2, 0], "texture": "#0"}, - "down": {"uv": [6, 0, 4, 2], "texture": "#0"} - } - }, - { - "name": "right_hand", - "from": [4, 17.25, -0.5], - "to": [15, 18.25, 0.5], - "rotation": {"x": 0, "y": 0, "z": -60, "origin": [4, 18, 0]}, - "faces": { - "north": {"uv": [8.5, 0.5, 11.5, 1], "texture": "#0"}, - "east": {"uv": [8, 0.5, 8.5, 1], "texture": "#0"}, - "south": {"uv": [12, 0.5, 15, 1], "texture": "#0"}, - "west": {"uv": [11.5, 0.5, 12, 1], "texture": "#0"}, - "up": {"uv": [11.5, 0.5, 8.5, 0], "texture": "#0"}, - "down": {"uv": [14.5, 0, 11.5, 0.5], "texture": "#0"} - } - }, - { - "name": "left_hand", - "from": [-15, 17.25, -0.5], - "to": [-4, 18.25, 0.5], - "rotation": {"x": 0, "y": 0, "z": 60, "origin": [-4, 18, 0]}, - "faces": { - "north": {"uv": [8.5, 0.5, 11.5, 1], "texture": "#0"}, - "east": {"uv": [8, 0.5, 8.5, 1], "texture": "#0"}, - "south": {"uv": [12, 0.5, 15, 1], "texture": "#0"}, - "west": {"uv": [11.5, 0.5, 12, 1], "texture": "#0"}, - "up": {"uv": [11.5, 0.5, 8.5, 0], "texture": "#0"}, - "down": {"uv": [14.5, 0, 11.5, 0.5], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-4.5, 11.5, -4.5], - "to": [4.5, 20.5, 4.5], - "faces": { - "north": {"uv": [2.5, 6.5, 5, 9], "texture": "#0"}, - "east": {"uv": [0, 6.5, 2.5, 9], "texture": "#0"}, - "south": {"uv": [7.5, 6.5, 10, 9], "texture": "#0"}, - "west": {"uv": [5, 6.5, 7.5, 9], "texture": "#0"}, - "up": {"uv": [5, 6.5, 2.5, 4], "texture": "#0"}, - "down": {"uv": [7.5, 4, 5, 6.5], "texture": "#0"} - } - }, - { - "name": "body_bottom", - "from": [-5.5, 0.5, -5.5], - "to": [5.5, 11.5, 5.5], - "faces": { - "north": {"uv": [3, 12, 6, 15], "texture": "#0"}, - "east": {"uv": [0, 12, 3, 15], "texture": "#0"}, - "south": {"uv": [9, 12, 12, 15], "texture": "#0"}, - "west": {"uv": [6, 12, 9, 15], "texture": "#0"}, - "up": {"uv": [6, 12, 3, 9], "texture": "#0"}, - "down": {"uv": [9, 9, 6, 12], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "head", - "origin": [0, 20, 0], - "color": 0, - "children": [0] - }, - { - "name": "hand", - "origin": [-4.5, 18.75, 0], - "color": 0, - "children": [1, 2] - }, - { - "name": "body", - "origin": [0, 11, 0], - "color": 0, - "children": [3, 4] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/squid/glow_squid_adult.json b/src/main/resources/assets/minecraft/models/entity/squid/glow_squid_adult.json deleted file mode 100644 index a784dcb..0000000 --- a/src/main/resources/assets/minecraft/models/entity/squid/glow_squid_adult.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/squid/squid_adult", - "textures": { - "0": "entity/squid/glow_squid" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/squid/glow_squid_baby.json b/src/main/resources/assets/minecraft/models/entity/squid/glow_squid_baby.json deleted file mode 100644 index e1bd6d1..0000000 --- a/src/main/resources/assets/minecraft/models/entity/squid/glow_squid_baby.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/squid/squid_baby", - "textures": { - "0": "entity/squid/glow_squid" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/squid/squid_adult.json b/src/main/resources/assets/minecraft/models/entity/squid/squid_adult.json deleted file mode 100644 index f2bf5b9..0000000 --- a/src/main/resources/assets/minecraft/models/entity/squid/squid_adult.json +++ /dev/null @@ -1,196 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Made by Miraculixx", - "texture_size": [64, 32], - "textures": { - "0": "entity/squid/squid" - }, - "elements": [ - { - "name": "body", - "from": [-6, 0, -13], - "to": [6, 12, 3], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 6, 20]}, - "faces": { - "north": {"uv": [6, 6, 3, 0], "rotation": 180, "texture": "#0"}, - "east": {"uv": [0, 6, 3, 14], "rotation": 90, "texture": "#0"}, - "south": {"uv": [9, 0, 6, 6], "texture": "#0"}, - "west": {"uv": [6, 6, 9, 14], "rotation": 270, "texture": "#0"}, - "up": {"uv": [9, 6, 12, 14], "texture": "#0"}, - "down": {"uv": [3, 6, 6, 14], "rotation": 180, "texture": "#0"} - } - }, - { - "name": "tentacle1", - "from": [-6, 5, 2], - "to": [-4, 7, 20], - "faces": { - "north": {"uv": [13, 1, 12.5, 0], "rotation": 180, "texture": "#0"}, - "east": {"uv": [12, 1, 12.5, 10], "rotation": 90, "texture": "#0"}, - "south": {"uv": [13.5, 0, 13, 1], "texture": "#0"}, - "west": {"uv": [13, 1, 13.5, 10], "rotation": 270, "texture": "#0"}, - "up": {"uv": [13.5, 1, 14, 10], "texture": "#0"}, - "down": {"uv": [12.5, 1, 13, 10], "rotation": 180, "texture": "#0"} - } - }, - { - "name": "tentacle2", - "from": [-2.2039, 8.04328, 2], - "to": [-0.2039, 10.04328, 20], - "rotation": {"angle": 22.5, "axis": "z", "origin": [-3.5, 3.5, 11]}, - "faces": { - "north": {"uv": [13, 1, 12.5, 0], "rotation": 180, "texture": "#0"}, - "east": {"uv": [12, 1, 12.5, 10], "rotation": 90, "texture": "#0"}, - "south": {"uv": [13.5, 0, 13, 1], "texture": "#0"}, - "west": {"uv": [13, 1, 13.5, 10], "rotation": 270, "texture": "#0"}, - "up": {"uv": [13.5, 1, 14, 10], "texture": "#0"}, - "down": {"uv": [12.5, 1, 13, 10], "rotation": 180, "texture": "#0"} - } - }, - { - "name": "tentacle3", - "from": [-1, 10, 2], - "to": [1, 12, 20], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 6, 20]}, - "faces": { - "north": {"uv": [13, 1, 12.5, 0], "rotation": 180, "texture": "#0"}, - "east": {"uv": [12, 1, 12.5, 10], "rotation": 90, "texture": "#0"}, - "south": {"uv": [13.5, 0, 13, 1], "texture": "#0"}, - "west": {"uv": [13, 1, 13.5, 10], "rotation": 270, "texture": "#0"}, - "up": {"uv": [13.5, 1, 14, 10], "texture": "#0"}, - "down": {"uv": [12.5, 1, 13, 10], "rotation": 180, "texture": "#0"} - } - }, - { - "name": "tentacle4", - "from": [0.2039, 8.04328, 2], - "to": [2.2039, 10.04328, 20], - "rotation": {"angle": -22.5, "axis": "z", "origin": [3.5, 3.5, 11]}, - "faces": { - "north": {"uv": [13, 1, 12.5, 0], "rotation": 180, "texture": "#0"}, - "east": {"uv": [12, 1, 12.5, 10], "rotation": 90, "texture": "#0"}, - "south": {"uv": [13.5, 0, 13, 1], "texture": "#0"}, - "west": {"uv": [13, 1, 13.5, 10], "rotation": 270, "texture": "#0"}, - "up": {"uv": [13.5, 1, 14, 10], "texture": "#0"}, - "down": {"uv": [12.5, 1, 13, 10], "rotation": 180, "texture": "#0"} - } - }, - { - "name": "tentacle5", - "from": [4, 5, 2], - "to": [6, 7, 20], - "faces": { - "north": {"uv": [13, 1, 12.5, 0], "rotation": 180, "texture": "#0"}, - "east": {"uv": [12, 1, 12.5, 10], "rotation": 90, "texture": "#0"}, - "south": {"uv": [13.5, 0, 13, 1], "texture": "#0"}, - "west": {"uv": [13, 1, 13.5, 10], "rotation": 270, "texture": "#0"}, - "up": {"uv": [13.5, 1, 14, 10], "texture": "#0"}, - "down": {"uv": [12.5, 1, 13, 10], "rotation": 180, "texture": "#0"} - } - }, - { - "name": "tentacle6", - "from": [4.7961, 1.04328, 2], - "to": [6.7961, 3.04328, 20], - "rotation": {"angle": 22.5, "axis": "z", "origin": [3.5, -3.5, 11]}, - "faces": { - "north": {"uv": [13, 1, 12.5, 0], "rotation": 180, "texture": "#0"}, - "east": {"uv": [12, 1, 12.5, 10], "rotation": 90, "texture": "#0"}, - "south": {"uv": [13.5, 0, 13, 1], "texture": "#0"}, - "west": {"uv": [13, 1, 13.5, 10], "rotation": 270, "texture": "#0"}, - "up": {"uv": [13.5, 1, 14, 10], "texture": "#0"}, - "down": {"uv": [12.5, 1, 13, 10], "rotation": 180, "texture": "#0"} - } - }, - { - "name": "tentacle7", - "from": [-1, 0, 2], - "to": [1, 2, 20], - "faces": { - "north": {"uv": [13, 1, 12.5, 0], "rotation": 180, "texture": "#0"}, - "east": {"uv": [12, 1, 12.5, 10], "rotation": 90, "texture": "#0"}, - "south": {"uv": [13.5, 0, 13, 1], "texture": "#0"}, - "west": {"uv": [13, 1, 13.5, 10], "rotation": 270, "texture": "#0"}, - "up": {"uv": [13.5, 1, 14, 10], "texture": "#0"}, - "down": {"uv": [12.5, 1, 13, 10], "rotation": 180, "texture": "#0"} - } - }, - { - "name": "tentacle8", - "from": [-6.7961, 1.04328, 2], - "to": [-4.7961, 3.04328, 20], - "rotation": {"angle": -22.5, "axis": "z", "origin": [-3.5, -3.5, 11]}, - "faces": { - "north": {"uv": [13, 1, 12.5, 0], "rotation": 180, "texture": "#0"}, - "east": {"uv": [12, 1, 12.5, 10], "rotation": 90, "texture": "#0"}, - "south": {"uv": [13.5, 0, 13, 1], "texture": "#0"}, - "west": {"uv": [13, 1, 13.5, 10], "rotation": 270, "texture": "#0"}, - "up": {"uv": [13.5, 1, 14, 10], "texture": "#0"}, - "down": {"uv": [12.5, 1, 13, 10], "rotation": 180, "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "body", - "origin": [0, 25, 0], - "color": 0, - "children": [0] - }, - { - "name": "tentacle1", - "origin": [-5, 18, 0], - "rotation": [0, -90, 0], - "color": 0, - "children": [1] - }, - { - "name": "tentacle2", - "origin": [-3.5, 18, 3.5], - "rotation": [0, -45, 0], - "color": 0, - "children": [2] - }, - { - "name": "tentacle3", - "origin": [0, 18, 5], - "color": 0, - "children": [3] - }, - { - "name": "tentacle4", - "origin": [3.5, 18, 3.5], - "rotation": [0, 45, 0], - "color": 0, - "children": [4] - }, - { - "name": "tentacle5", - "origin": [5, 18, 0], - "rotation": [0, 90, 0], - "color": 0, - "children": [5] - }, - { - "name": "tentacle6", - "origin": [3.5, 18, -3.5], - "rotation": [0, 135, 0], - "color": 0, - "children": [6] - }, - { - "name": "tentacle7", - "origin": [0, 18, -5], - "rotation": [0, -180, 0], - "color": 0, - "children": [7] - }, - { - "name": "tentacle8", - "origin": [-3.5, 18, -3.5], - "rotation": [0, -135, 0], - "color": 0, - "children": [8] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/squid/squid_baby.json b/src/main/resources/assets/minecraft/models/entity/squid/squid_baby.json deleted file mode 100644 index 500434e..0000000 --- a/src/main/resources/assets/minecraft/models/entity/squid/squid_baby.json +++ /dev/null @@ -1,199 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Made by Miraculixx", - "texture_size": [64, 32], - "textures": { - "0": "entity/squid/squid" - }, - "elements": [ - { - "name": "body", - "from": [-3, 0, -6.5], - "to": [3, 6, 1.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 3, 10]}, - "faces": { - "north": {"uv": [6, 6, 3, 0], "rotation": 180, "texture": "#0"}, - "east": {"uv": [0, 6, 3, 14], "rotation": 90, "texture": "#0"}, - "south": {"uv": [9, 0, 6, 6], "texture": "#0"}, - "west": {"uv": [6, 6, 9, 14], "rotation": 270, "texture": "#0"}, - "up": {"uv": [9, 6, 12, 14], "texture": "#0"}, - "down": {"uv": [3, 6, 6, 14], "rotation": 180, "texture": "#0"} - } - }, - { - "name": "tentacle1", - "from": [-3, 2.5, 1], - "to": [-2, 3.5, 10], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 12.5, 0]}, - "faces": { - "north": {"uv": [13, 1, 12.5, 0], "rotation": 180, "texture": "#0"}, - "east": {"uv": [12, 1, 12.5, 10], "rotation": 90, "texture": "#0"}, - "south": {"uv": [13.5, 0, 13, 1], "texture": "#0"}, - "west": {"uv": [13, 1, 13.5, 10], "rotation": 270, "texture": "#0"}, - "up": {"uv": [13.5, 1, 14, 10], "texture": "#0"}, - "down": {"uv": [12.5, 1, 13, 10], "rotation": 180, "texture": "#0"} - } - }, - { - "name": "tentacle2", - "from": [-5.88549, 4.97314, 1], - "to": [-4.88549, 5.97314, 10], - "rotation": {"angle": 22.5, "axis": "z", "origin": [-1.75, 14.25, 5.5]}, - "faces": { - "north": {"uv": [13, 1, 12.5, 0], "rotation": 180, "texture": "#0"}, - "east": {"uv": [12, 1, 12.5, 10], "rotation": 90, "texture": "#0"}, - "south": {"uv": [13.5, 0, 13, 1], "texture": "#0"}, - "west": {"uv": [13, 1, 13.5, 10], "rotation": 270, "texture": "#0"}, - "up": {"uv": [13.5, 1, 14, 10], "texture": "#0"}, - "down": {"uv": [12.5, 1, 13, 10], "rotation": 180, "texture": "#0"} - } - }, - { - "name": "tentacle3", - "from": [-0.5, 5, 1], - "to": [0.5, 6, 10], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 3, 10]}, - "faces": { - "north": {"uv": [13, 1, 12.5, 0], "rotation": 180, "texture": "#0"}, - "east": {"uv": [12, 1, 12.5, 10], "rotation": 90, "texture": "#0"}, - "south": {"uv": [13.5, 0, 13, 1], "texture": "#0"}, - "west": {"uv": [13, 1, 13.5, 10], "rotation": 270, "texture": "#0"}, - "up": {"uv": [13.5, 1, 14, 10], "texture": "#0"}, - "down": {"uv": [12.5, 1, 13, 10], "rotation": 180, "texture": "#0"} - } - }, - { - "name": "tentacle4", - "from": [4.88549, 4.97314, 1], - "to": [5.88549, 5.97314, 10], - "rotation": {"angle": -22.5, "axis": "z", "origin": [1.75, 14.25, 5.5]}, - "faces": { - "north": {"uv": [13, 1, 12.5, 0], "rotation": 180, "texture": "#0"}, - "east": {"uv": [12, 1, 12.5, 10], "rotation": 90, "texture": "#0"}, - "south": {"uv": [13.5, 0, 13, 1], "texture": "#0"}, - "west": {"uv": [13, 1, 13.5, 10], "rotation": 270, "texture": "#0"}, - "up": {"uv": [13.5, 1, 14, 10], "texture": "#0"}, - "down": {"uv": [12.5, 1, 13, 10], "rotation": 180, "texture": "#0"} - } - }, - { - "name": "tentacle5", - "from": [2, 2.5, 1], - "to": [3, 3.5, 10], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 12.5, 0]}, - "faces": { - "north": {"uv": [13, 1, 12.5, 0], "rotation": 180, "texture": "#0"}, - "east": {"uv": [12, 1, 12.5, 10], "rotation": 90, "texture": "#0"}, - "south": {"uv": [13.5, 0, 13, 1], "texture": "#0"}, - "west": {"uv": [13, 1, 13.5, 10], "rotation": 270, "texture": "#0"}, - "up": {"uv": [13.5, 1, 14, 10], "texture": "#0"}, - "down": {"uv": [12.5, 1, 13, 10], "rotation": 180, "texture": "#0"} - } - }, - { - "name": "tentacle6", - "from": [-2.38549, 1.47314, 1], - "to": [-1.38549, 2.47314, 10], - "rotation": {"angle": 22.5, "axis": "z", "origin": [1.75, 10.75, 5.5]}, - "faces": { - "north": {"uv": [13, 1, 12.5, 0], "rotation": 180, "texture": "#0"}, - "east": {"uv": [12, 1, 12.5, 10], "rotation": 90, "texture": "#0"}, - "south": {"uv": [13.5, 0, 13, 1], "texture": "#0"}, - "west": {"uv": [13, 1, 13.5, 10], "rotation": 270, "texture": "#0"}, - "up": {"uv": [13.5, 1, 14, 10], "texture": "#0"}, - "down": {"uv": [12.5, 1, 13, 10], "rotation": 180, "texture": "#0"} - } - }, - { - "name": "tentacle7", - "from": [-0.5, 0, 1], - "to": [0.5, 1, 10], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 12.5, 0]}, - "faces": { - "north": {"uv": [13, 1, 12.5, 0], "rotation": 180, "texture": "#0"}, - "east": {"uv": [12, 1, 12.5, 10], "rotation": 90, "texture": "#0"}, - "south": {"uv": [13.5, 0, 13, 1], "texture": "#0"}, - "west": {"uv": [13, 1, 13.5, 10], "rotation": 270, "texture": "#0"}, - "up": {"uv": [13.5, 1, 14, 10], "texture": "#0"}, - "down": {"uv": [12.5, 1, 13, 10], "rotation": 180, "texture": "#0"} - } - }, - { - "name": "tentacle8", - "from": [1.38549, 1.47314, 1], - "to": [2.38549, 2.47314, 10], - "rotation": {"angle": -22.5, "axis": "z", "origin": [-1.75, 10.75, 5.5]}, - "faces": { - "north": {"uv": [13, 1, 12.5, 0], "rotation": 180, "texture": "#0"}, - "east": {"uv": [12, 1, 12.5, 10], "rotation": 90, "texture": "#0"}, - "south": {"uv": [13.5, 0, 13, 1], "texture": "#0"}, - "west": {"uv": [13, 1, 13.5, 10], "rotation": 270, "texture": "#0"}, - "up": {"uv": [13.5, 1, 14, 10], "texture": "#0"}, - "down": {"uv": [12.5, 1, 13, 10], "rotation": 180, "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "body", - "origin": [0, 25, 0], - "color": 0, - "children": [0] - }, - { - "name": "tentacle1", - "origin": [-5, 18, 0], - "rotation": [0, -90, 0], - "color": 0, - "children": [1] - }, - { - "name": "tentacle2", - "origin": [-3.5, 18, 3.5], - "rotation": [0, -45, 0], - "color": 0, - "children": [2] - }, - { - "name": "tentacle3", - "origin": [0, 18, 5], - "color": 0, - "children": [3] - }, - { - "name": "tentacle4", - "origin": [3.5, 18, 3.5], - "rotation": [0, 45, 0], - "color": 0, - "children": [4] - }, - { - "name": "tentacle5", - "origin": [5, 18, 0], - "rotation": [0, 90, 0], - "color": 0, - "children": [5] - }, - { - "name": "tentacle6", - "origin": [3.5, 18, -3.5], - "rotation": [0, 135, 0], - "color": 0, - "children": [6] - }, - { - "name": "tentacle7", - "origin": [0, 18, -5], - "rotation": [0, -180, 0], - "color": 0, - "children": [7] - }, - { - "name": "tentacle8", - "origin": [-3.5, 18, -3.5], - "rotation": [0, -135, 0], - "color": 0, - "children": [8] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/tadpole.json b/src/main/resources/assets/minecraft/models/entity/tadpole.json deleted file mode 100644 index 19108b3..0000000 --- a/src/main/resources/assets/minecraft/models/entity/tadpole.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Made by Miraculixx", - "textures": { - "0": "entity/tadpole/tadpole" - }, - "elements": [ - { - "name": "body", - "from": [-1.5, 0, -1.5], - "to": [1.5, 2, 1.5], - "faces": { - "north": {"uv": [3, 3, 6, 5], "texture": "#0"}, - "east": {"uv": [0, 3, 3, 5], "texture": "#0"}, - "south": {"uv": [9, 3, 12, 5], "texture": "#0"}, - "west": {"uv": [6, 3, 9, 5], "texture": "#0"}, - "up": {"uv": [6, 3, 3, 0], "texture": "#0"}, - "down": {"uv": [9, 0, 6, 3], "texture": "#0"} - } - }, - { - "name": "tail", - "from": [0, 0, 1.5], - "to": [0, 2, 8.5], - "faces": { - "north": {"uv": [7, 7, 7, 9], "texture": "#0"}, - "east": {"uv": [0, 7, 7, 9], "texture": "#0"}, - "south": {"uv": [14, 7, 14, 9], "texture": "#0"}, - "west": {"uv": [7, 7, 0, 9], "texture": "#0"}, - "up": {"uv": [7, 7, 7, 0], "texture": "#0"}, - "down": {"uv": [7, 0, 7, 7], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "body", - "origin": [0, 1, -1.5], - "color": 0, - "children": [0, 1] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/tropical_fish/tropical_fish.json b/src/main/resources/assets/minecraft/models/entity/tropical_fish/tropical_fish.json deleted file mode 100644 index 83939f5..0000000 --- a/src/main/resources/assets/minecraft/models/entity/tropical_fish/tropical_fish.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "credit": "Model by Miraculixx", - "texture_size": [32, 32], - "textures": { - "0": "entity/fish/tropical_a" - }, - "elements": [ - { - "name": "body", - "from": [-1, 0, -3], - "to": [1, 3, 3], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "north": {"uv": [3, 3, 4, 4.5], "texture": "#0", "tintindex": 0}, - "east": {"uv": [0, 3, 3, 4.5], "texture": "#0", "tintindex": 0}, - "south": {"uv": [7, 3, 8, 4.5], "texture": "#0", "tintindex": 0}, - "west": {"uv": [4, 3, 7, 4.5], "texture": "#0", "tintindex": 0}, - "up": {"uv": [4, 3, 3, 0], "texture": "#0", "tintindex": 0}, - "down": {"uv": [5, 0, 4, 3], "texture": "#0", "tintindex": 0} - } - }, - { - "name": "right_fin", - "from": [1, 0, 0], - "to": [3, 2, 0], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "north": {"uv": [1, 8, 2, 9], "texture": "#0", "tintindex": 0}, - "east": {"uv": [1, 8, 1, 9], "texture": "#0", "tintindex": 0}, - "south": {"uv": [2, 8, 1, 9], "texture": "#0", "tintindex": 0}, - "west": {"uv": [2, 8, 2, 9], "texture": "#0", "tintindex": 0}, - "up": {"uv": [2, 8, 1, 8], "texture": "#0", "tintindex": 0}, - "down": {"uv": [3, 8, 2, 8], "texture": "#0", "tintindex": 0} - } - }, - { - "name": "left_fin", - "from": [-3, 0, 0], - "to": [-1, 2, 0], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "north": {"uv": [1, 6, 2, 7], "texture": "#0", "tintindex": 0}, - "east": {"uv": [1, 6, 1, 7], "texture": "#0", "tintindex": 0}, - "south": {"uv": [2, 6, 1, 7], "texture": "#0", "tintindex": 0}, - "west": {"uv": [2, 6, 2, 7], "texture": "#0", "tintindex": 0}, - "up": {"uv": [2, 6, 1, 6], "texture": "#0", "tintindex": 0}, - "down": {"uv": [3, 6, 2, 6], "texture": "#0", "tintindex": 0} - } - }, - { - "name": "fin_top", - "from": [0, 3, -3], - "to": [0, 7, 3], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "north": {"uv": [8, 0, 8, 2], "texture": "#0", "tintindex": 0}, - "east": {"uv": [11, 0, 8, 2], "texture": "#0", "tintindex": 0}, - "south": {"uv": [11, 0, 11, 2], "texture": "#0", "tintindex": 0}, - "west": {"uv": [8, 0, 11, 2], "texture": "#0", "tintindex": 0}, - "up": {"uv": [8, 0, 8, -3], "texture": "#0", "tintindex": 0}, - "down": {"uv": [8, -3, 8, 0], "texture": "#0", "tintindex": 0} - } - }, - { - "name": "tail", - "from": [0, 0, 3], - "to": [0, 3, 7], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "north": {"uv": [14, 0, 14, 1.5], "texture": "#0", "tintindex": 0}, - "east": {"uv": [16, 0, 14, 1.5], "texture": "#0", "tintindex": 0}, - "south": {"uv": [16, 0, 16, 1.5], "texture": "#0", "tintindex": 0}, - "west": {"uv": [14, 0, 16, 1.5], "texture": "#0", "tintindex": 0}, - "up": {"uv": [14, 0, 14, -2], "texture": "#0", "tintindex": 0}, - "down": {"uv": [14, -2, 14, 0], "texture": "#0", "tintindex": 0} - } - } - ], - "groups": [ - { - "name": "body", - "origin": [8, 1.5, 8], - "color": 0, - "children": [ - 0, - { - "name": "right_fin", - "origin": [9, 0, 8], - "color": 0, - "children": [1] - }, - { - "name": "left_fin", - "origin": [7, 0, 8], - "color": 0, - "children": [2] - } - ] - }, - { - "name": "fin_top", - "origin": [8, 3, 5], - "color": 0, - "children": [3] - }, - { - "name": "tail", - "origin": [8, 1.5, 11], - "color": 0, - "children": [4] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/vex.json b/src/main/resources/assets/minecraft/models/entity/vex.json deleted file mode 100644 index a22015c..0000000 --- a/src/main/resources/assets/minecraft/models/entity/vex.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "format_version": "1.21.11", - "credit": "Made by Miraculixx", - "texture_size": [32, 32], - "textures": { - "0": "entity/illager/vex" - }, - "elements": [ - { - "name": "head", - "from": [-2.5, 6, -2.5], - "to": [2.5, 11, 2.5], - "faces": { - "north": {"uv": [2.5, 2.5, 5, 5], "texture": "#0"}, - "east": {"uv": [0, 2.5, 2.5, 5], "texture": "#0"}, - "south": {"uv": [7.5, 2.5, 10, 5], "texture": "#0"}, - "west": {"uv": [5, 2.5, 7.5, 5], "texture": "#0"}, - "up": {"uv": [5, 2.5, 2.5, 0], "texture": "#0"}, - "down": {"uv": [7.5, 0, 5, 2.5], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-1.5, 2, -1], - "to": [1.5, 6, 1], - "faces": { - "north": {"uv": [1, 6, 2.5, 8], "texture": "#0"}, - "east": {"uv": [0, 6, 1, 8], "texture": "#0"}, - "south": {"uv": [3.5, 6, 5, 8], "texture": "#0"}, - "west": {"uv": [2.5, 6, 3.5, 8], "texture": "#0"}, - "up": {"uv": [2.5, 6, 1, 5], "texture": "#0"}, - "down": {"uv": [4, 5, 2.5, 6], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-1.3, 0.2, -0.8], - "to": [1.3, 4.8, 0.8], - "faces": { - "north": {"uv": [1, 9, 2.5, 11.5], "texture": "#0"}, - "east": {"uv": [0, 9, 1, 11.5], "texture": "#0"}, - "south": {"uv": [3.5, 9, 5, 11.5], "texture": "#0"}, - "west": {"uv": [2.5, 9, 3.5, 11.5], "texture": "#0"}, - "up": {"uv": [2.5, 9, 1, 8], "texture": "#0"}, - "down": {"uv": [4, 8, 2.5, 9], "texture": "#0"} - } - }, - { - "name": "right_arm", - "from": [1.25, 1.8, -1], - "to": [3.25, 5.8, 1], - "rotation": {"angle": 15, "axis": "z", "origin": [0.75, 5.8, 0]}, - "faces": { - "north": {"uv": [12.5, 1, 13.5, 3], "texture": "#0"}, - "east": {"uv": [11.5, 1, 12.5, 3], "texture": "#0"}, - "south": {"uv": [14.5, 1, 15.5, 3], "texture": "#0"}, - "west": {"uv": [13.5, 1, 14.5, 3], "texture": "#0"}, - "up": {"uv": [13.5, 1, 12.5, 0], "texture": "#0"}, - "down": {"uv": [14.5, 0, 13.5, 1], "texture": "#0"} - } - }, - { - "name": "left_arm", - "from": [-3.25, 1.8, -1], - "to": [-1.25, 5.8, 1], - "rotation": {"angle": -15, "axis": "z", "origin": [-0.75, 5.8, 0]}, - "faces": { - "north": {"uv": [12.5, 4, 13.5, 6], "texture": "#0"}, - "east": {"uv": [11.5, 4, 12.5, 6], "texture": "#0"}, - "south": {"uv": [14.5, 4, 15.5, 6], "texture": "#0"}, - "west": {"uv": [13.5, 4, 14.5, 6], "texture": "#0"}, - "up": {"uv": [13.5, 4, 12.5, 3], "texture": "#0"}, - "down": {"uv": [14.5, 3, 13.5, 4], "texture": "#0"} - } - }, - { - "name": "left_wing", - "from": [-0.5, 0, 1], - "to": [-0.5, 5, 9], - "rotation": {"x": -42.22016, "y": -45.41688, "z": -8.47839, "origin": [0, 5, 1]}, - "faces": { - "north": {"uv": [12, 11, 12, 13.5], "texture": "#0"}, - "east": {"uv": [8, 11, 12, 13.5], "texture": "#0"}, - "south": {"uv": [16, 11, 16, 13.5], "texture": "#0"}, - "west": {"uv": [12, 11, 8, 13.5], "texture": "#0"}, - "up": {"uv": [12, 11, 12, 7], "texture": "#0"}, - "down": {"uv": [12, 7, 12, 11], "texture": "#0"} - } - }, - { - "name": "right_wing", - "from": [0.5, 0, 1], - "to": [0.5, 5, 9], - "rotation": {"x": -42.22016, "y": 45.41688, "z": 8.47839, "origin": [0, 5, 1]}, - "faces": { - "north": {"uv": [12, 11, 12, 13.5], "texture": "#0"}, - "east": {"uv": [8, 11, 12, 13.5], "texture": "#0"}, - "south": {"uv": [16, 11, 16, 13.5], "texture": "#0"}, - "west": {"uv": [12, 11, 8, 13.5], "texture": "#0"}, - "up": {"uv": [12, 11, 12, 7], "texture": "#0"}, - "down": {"uv": [12, 7, 12, 11], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "head", - "origin": [0, 6, 0], - "color": 0, - "children": [0] - }, - { - "name": "body", - "origin": [0, 6, 0], - "color": 0, - "children": [1, 2] - }, - { - "name": "arm", - "origin": [2, 5.5, 0], - "color": 0, - "children": [3, 4] - }, - { - "name": "wing", - "origin": [-0.5, 5, 1], - "color": 0, - "children": [5, 6] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/zombie/drowned_adult.json b/src/main/resources/assets/minecraft/models/entity/zombie/drowned_adult.json deleted file mode 100644 index 6530caf..0000000 --- a/src/main/resources/assets/minecraft/models/entity/zombie/drowned_adult.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "format_version": "1.21.6", - "credit": "Model by Miraculixx", - "texture_size": [64, 64], - "textures": { - "0": "entity/zombie/drowned", - "1": "entity/zombie/drowned_outer_layer" - }, - "elements": [ - { - "name": "head", - "from": [-4, 24, -4], - "to": [4, 32, 4], - "faces": { - "north": {"uv": [2, 2, 4, 4], "texture": "#0"}, - "east": {"uv": [0, 2, 2, 4], "texture": "#0"}, - "south": {"uv": [6, 2, 8, 4], "texture": "#0"}, - "west": {"uv": [4, 2, 6, 4], "texture": "#0"}, - "up": {"uv": [4, 2, 2, 0], "texture": "#0"}, - "down": {"uv": [6, 0, 4, 2], "texture": "#0"} - } - }, - { - "name": "head", - "from": [-4.5, 23.75, -4.5], - "to": [4.5, 32.75, 4.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, -3.25, 0]}, - "faces": { - "north": {"uv": [2, 2, 4, 4], "texture": "#1"}, - "east": {"uv": [0, 2, 2, 4], "texture": "#1"}, - "south": {"uv": [6, 2, 8, 4], "texture": "#1"}, - "west": {"uv": [4, 2, 6, 4], "texture": "#1"}, - "up": {"uv": [4, 2, 2, 0], "texture": "#1"}, - "down": {"uv": [6, 0, 4, 2], "texture": "#1"} - } - }, - { - "name": "body", - "from": [-4, 12, -2], - "to": [4, 24, 2], - "faces": { - "north": {"uv": [5, 5, 7, 8], "texture": "#0"}, - "east": {"uv": [4, 5, 5, 8], "texture": "#0"}, - "south": {"uv": [8, 5, 10, 8], "texture": "#0"}, - "west": {"uv": [7, 5, 8, 8], "texture": "#0"}, - "up": {"uv": [7, 5, 5, 4], "texture": "#0"}, - "down": {"uv": [9, 4, 7, 5], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-4.5, 11.5, -2.25], - "to": [4.5, 25, 2.25], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 18.25, 0]}, - "faces": { - "north": {"uv": [5, 5, 7, 8], "texture": "#1"}, - "east": {"uv": [4, 5, 5, 8], "texture": "#1"}, - "south": {"uv": [8, 5, 10, 8], "texture": "#1"}, - "west": {"uv": [7, 5, 8, 8], "texture": "#1"}, - "up": {"uv": [7, 5, 5, 4], "texture": "#1"}, - "down": {"uv": [9, 4, 7, 5], "texture": "#1"} - } - }, - { - "name": "left_arm", - "from": [-8, 19.25, -10], - "to": [-4, 23.25, 2], - "rotation": {"angle": -10, "axis": "x", "origin": [0, 21.25, -4]}, - "faces": { - "north": {"uv": [10, 12, 11, 13], "rotation": 180, "texture": "#0"}, - "east": {"uv": [11, 13, 10, 16], "rotation": 270, "texture": "#0"}, - "south": {"uv": [9, 13, 10, 12], "texture": "#0"}, - "west": {"uv": [9, 13, 8, 16], "rotation": 90, "texture": "#0"}, - "up": {"uv": [10, 13, 9, 16], "rotation": 180, "texture": "#0"}, - "down": {"uv": [12, 13, 11, 16], "texture": "#0"} - } - }, - { - "name": "left_arm", - "from": [-8.25, 18.90625, -11], - "to": [-3.75, 23.40625, 2.5], - "rotation": {"angle": -10, "axis": "x", "origin": [0.75, 21.15625, -4.25]}, - "faces": { - "north": {"uv": [10, 12, 11, 13], "rotation": 180, "texture": "#1"}, - "east": {"uv": [11, 13, 10, 16], "rotation": 270, "texture": "#1"}, - "south": {"uv": [9, 13, 10, 12], "texture": "#1"}, - "west": {"uv": [9, 13, 8, 16], "rotation": 90, "texture": "#1"}, - "up": {"uv": [10, 13, 9, 16], "rotation": 180, "texture": "#1"}, - "down": {"uv": [12, 13, 11, 16], "texture": "#1"} - } - }, - { - "name": "right_arm", - "from": [4, 19.25, -10], - "to": [8, 23.25, 2], - "rotation": {"angle": -10, "axis": "x", "origin": [0, 21.25, -4]}, - "faces": { - "north": {"uv": [13, 4, 12, 5], "rotation": 180, "texture": "#0"}, - "east": {"uv": [10, 5, 11, 8], "rotation": 270, "texture": "#0"}, - "south": {"uv": [12, 5, 11, 4], "texture": "#0"}, - "west": {"uv": [12, 5, 13, 8], "rotation": 90, "texture": "#0"}, - "up": {"uv": [11, 5, 12, 8], "rotation": 180, "texture": "#0"}, - "down": {"uv": [13, 5, 14, 8], "texture": "#0"} - } - }, - { - "name": "right_arm", - "from": [3.75, 18.90625, -11], - "to": [8.25, 23.40625, 2.5], - "rotation": {"angle": -10, "axis": "x", "origin": [6, 21.15625, -4.25]}, - "faces": { - "north": {"uv": [13, 4, 12, 5], "rotation": 180, "texture": "#1"}, - "east": {"uv": [10, 5, 11, 8], "rotation": 270, "texture": "#1"}, - "south": {"uv": [12, 5, 11, 4], "texture": "#1"}, - "west": {"uv": [12, 5, 13, 8], "rotation": 90, "texture": "#1"}, - "up": {"uv": [11, 5, 12, 8], "rotation": 180, "texture": "#1"}, - "down": {"uv": [13, 5, 14, 8], "texture": "#1"} - } - }, - { - "name": "left_leg", - "from": [-4, 0, -2], - "to": [0, 12, 2], - "faces": { - "north": {"uv": [6, 13, 5, 16], "texture": "#0"}, - "east": {"uv": [7, 13, 6, 16], "texture": "#0"}, - "south": {"uv": [8, 13, 7, 16], "texture": "#0"}, - "west": {"uv": [5, 13, 4, 16], "texture": "#0"}, - "up": {"uv": [5, 13, 6, 12], "texture": "#0"}, - "down": {"uv": [6, 12, 7, 13], "texture": "#0"} - } - }, - { - "name": "left_leg", - "from": [-4.25, -0.25, -2.25], - "to": [0.25, 13.25, 2.25], - "rotation": {"angle": 0, "axis": "y", "origin": [0.25, -0.25, 0]}, - "faces": { - "north": {"uv": [6, 13, 5, 16], "texture": "#1"}, - "east": {"uv": [7, 13, 6, 16], "texture": "#1"}, - "south": {"uv": [8, 13, 7, 16], "texture": "#1"}, - "west": {"uv": [5, 13, 4, 16], "texture": "#1"}, - "up": {"uv": [5, 13, 6, 12], "texture": "#1"}, - "down": {"uv": [6, 12, 7, 13], "texture": "#1"} - } - }, - { - "name": "right_leg", - "from": [0, 0, -2], - "to": [4, 12, 2], - "faces": { - "north": {"uv": [1, 5, 2, 8], "texture": "#0"}, - "east": {"uv": [0, 5, 1, 8], "texture": "#0"}, - "south": {"uv": [3, 5, 4, 8], "texture": "#0"}, - "west": {"uv": [2, 5, 3, 8], "texture": "#0"}, - "up": {"uv": [2, 5, 1, 4], "texture": "#0"}, - "down": {"uv": [3, 4, 2, 5], "texture": "#0"} - } - }, - { - "name": "right_leg", - "from": [0, -0.25, -2.25], - "to": [4.5, 13.25, 2.25], - "rotation": {"angle": 0, "axis": "y", "origin": [0, -0.25, 0]}, - "faces": { - "north": {"uv": [1, 5, 2, 8], "texture": "#1"}, - "east": {"uv": [0, 5, 1, 8], "texture": "#1"}, - "south": {"uv": [3, 5, 4, 8], "texture": "#1"}, - "west": {"uv": [2, 5, 3, 8], "texture": "#1"}, - "up": {"uv": [2, 5, 1, 4], "texture": "#1"}, - "down": {"uv": [3, 4, 2, 5], "texture": "#1"} - } - } - ], - "groups": [ - { - "name": "head", - "origin": [0, 24, 0], - "color": 0, - "children": [0, 1] - }, - { - "name": "body", - "origin": [0, 24, 0], - "color": 0, - "children": [2, 3] - }, - { - "name": "left_arm", - "origin": [-5, 22, 0], - "color": 0, - "children": [4, 5] - }, - { - "name": "right_arm", - "origin": [5, 22, 0], - "color": 0, - "children": [6, 7] - }, - { - "name": "left_leg", - "origin": [-1.9, 12, 0], - "color": 0, - "children": [8, 9] - }, - { - "name": "right_leg", - "origin": [1.9, 12, 0], - "color": 0, - "children": [10, 11] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/zombie/drowned_baby.json b/src/main/resources/assets/minecraft/models/entity/zombie/drowned_baby.json deleted file mode 100644 index 9cdce1f..0000000 --- a/src/main/resources/assets/minecraft/models/entity/zombie/drowned_baby.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "format_version": "1.21.6", - "credit": "Model by Miraculixx", - "texture_size": [64, 64], - "textures": { - "0": "entity/zombie/drowned", - "1": "entity/zombie/drowned_outer_layer" - }, - "elements": [ - { - "name": "head", - "from": [-2, 12, -2], - "to": [2, 16, 2], - "faces": { - "north": {"uv": [2, 2, 4, 4], "texture": "#0"}, - "east": {"uv": [0, 2, 2, 4], "texture": "#0"}, - "south": {"uv": [6, 2, 8, 4], "texture": "#0"}, - "west": {"uv": [4, 2, 6, 4], "texture": "#0"}, - "up": {"uv": [4, 2, 2, 0], "texture": "#0"}, - "down": {"uv": [6, 0, 4, 2], "texture": "#0"} - } - }, - { - "name": "head", - "from": [-2.25, 11.875, -2.25], - "to": [2.25, 16.375, 2.25], - "rotation": {"angle": 0, "axis": "y", "origin": [0, -1.625, 0]}, - "faces": { - "north": {"uv": [2, 2, 4, 4], "texture": "#1"}, - "east": {"uv": [0, 2, 2, 4], "texture": "#1"}, - "south": {"uv": [6, 2, 8, 4], "texture": "#1"}, - "west": {"uv": [4, 2, 6, 4], "texture": "#1"}, - "up": {"uv": [4, 2, 2, 0], "texture": "#1"}, - "down": {"uv": [6, 0, 4, 2], "texture": "#1"} - } - }, - { - "name": "body", - "from": [-2, 6, -1], - "to": [2, 12, 1], - "faces": { - "north": {"uv": [5, 5, 7, 8], "texture": "#0"}, - "east": {"uv": [4, 5, 5, 8], "texture": "#0"}, - "south": {"uv": [8, 5, 10, 8], "texture": "#0"}, - "west": {"uv": [7, 5, 8, 8], "texture": "#0"}, - "up": {"uv": [7, 5, 5, 4], "texture": "#0"}, - "down": {"uv": [9, 4, 7, 5], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-2.25, 5.75, -1.125], - "to": [2.25, 12.5, 1.125], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 9.125, 0]}, - "faces": { - "north": {"uv": [5, 5, 7, 8], "texture": "#1"}, - "east": {"uv": [4, 5, 5, 8], "texture": "#1"}, - "south": {"uv": [8, 5, 10, 8], "texture": "#1"}, - "west": {"uv": [7, 5, 8, 8], "texture": "#1"}, - "up": {"uv": [7, 5, 5, 4], "texture": "#1"}, - "down": {"uv": [9, 4, 7, 5], "texture": "#1"} - } - }, - { - "name": "left_arm", - "from": [-4, 9.625, -5], - "to": [-2, 11.625, 1], - "rotation": {"angle": -10, "axis": "x", "origin": [0, 10.625, -2]}, - "faces": { - "north": {"uv": [10, 12, 11, 13], "rotation": 180, "texture": "#0"}, - "east": {"uv": [11, 13, 10, 16], "rotation": 270, "texture": "#0"}, - "south": {"uv": [9, 13, 10, 12], "texture": "#0"}, - "west": {"uv": [9, 13, 8, 16], "rotation": 90, "texture": "#0"}, - "up": {"uv": [10, 13, 9, 16], "rotation": 180, "texture": "#0"}, - "down": {"uv": [12, 13, 11, 16], "texture": "#0"} - } - }, - { - "name": "left_arm", - "from": [-4.125, 9.45313, -5.5], - "to": [-1.875, 11.70313, 1.25], - "rotation": {"angle": -10, "axis": "x", "origin": [0.375, 10.57813, -2.125]}, - "faces": { - "north": {"uv": [10, 12, 11, 13], "rotation": 180, "texture": "#1"}, - "east": {"uv": [11, 13, 10, 16], "rotation": 270, "texture": "#1"}, - "south": {"uv": [9, 13, 10, 12], "texture": "#1"}, - "west": {"uv": [9, 13, 8, 16], "rotation": 90, "texture": "#1"}, - "up": {"uv": [10, 13, 9, 16], "rotation": 180, "texture": "#1"}, - "down": {"uv": [12, 13, 11, 16], "texture": "#1"} - } - }, - { - "name": "right_arm", - "from": [2, 9.625, -5], - "to": [4, 11.625, 1], - "rotation": {"angle": -10, "axis": "x", "origin": [0, 10.625, -2]}, - "faces": { - "north": {"uv": [13, 4, 12, 5], "rotation": 180, "texture": "#0"}, - "east": {"uv": [10, 5, 11, 8], "rotation": 270, "texture": "#0"}, - "south": {"uv": [12, 5, 11, 4], "texture": "#0"}, - "west": {"uv": [12, 5, 13, 8], "rotation": 90, "texture": "#0"}, - "up": {"uv": [11, 5, 12, 8], "rotation": 180, "texture": "#0"}, - "down": {"uv": [13, 5, 14, 8], "texture": "#0"} - } - }, - { - "name": "right_arm", - "from": [1.875, 9.45313, -5.5], - "to": [4.125, 11.70313, 1.25], - "rotation": {"angle": -10, "axis": "x", "origin": [3, 10.57813, -2.125]}, - "faces": { - "north": {"uv": [13, 4, 12, 5], "rotation": 180, "texture": "#1"}, - "east": {"uv": [10, 5, 11, 8], "rotation": 270, "texture": "#1"}, - "south": {"uv": [12, 5, 11, 4], "texture": "#1"}, - "west": {"uv": [12, 5, 13, 8], "rotation": 90, "texture": "#1"}, - "up": {"uv": [11, 5, 12, 8], "rotation": 180, "texture": "#1"}, - "down": {"uv": [13, 5, 14, 8], "texture": "#1"} - } - }, - { - "name": "left_leg", - "from": [-2, 0, -1], - "to": [0, 6, 1], - "faces": { - "north": {"uv": [6, 13, 5, 16], "texture": "#0"}, - "east": {"uv": [7, 13, 6, 16], "texture": "#0"}, - "south": {"uv": [8, 13, 7, 16], "texture": "#0"}, - "west": {"uv": [5, 13, 4, 16], "texture": "#0"}, - "up": {"uv": [5, 13, 6, 12], "texture": "#0"}, - "down": {"uv": [6, 12, 7, 13], "texture": "#0"} - } - }, - { - "name": "left_leg", - "from": [-2.125, -0.125, -1.125], - "to": [0.125, 6.625, 1.125], - "rotation": {"angle": 0, "axis": "y", "origin": [0.125, -0.125, 0]}, - "faces": { - "north": {"uv": [6, 13, 5, 16], "texture": "#1"}, - "east": {"uv": [7, 13, 6, 16], "texture": "#1"}, - "south": {"uv": [8, 13, 7, 16], "texture": "#1"}, - "west": {"uv": [5, 13, 4, 16], "texture": "#1"}, - "up": {"uv": [5, 13, 6, 12], "texture": "#1"}, - "down": {"uv": [6, 12, 7, 13], "texture": "#1"} - } - }, - { - "name": "right_leg", - "from": [0, 0, -1], - "to": [2, 6, 1], - "faces": { - "north": {"uv": [1, 5, 2, 8], "texture": "#0"}, - "east": {"uv": [0, 5, 1, 8], "texture": "#0"}, - "south": {"uv": [3, 5, 4, 8], "texture": "#0"}, - "west": {"uv": [2, 5, 3, 8], "texture": "#0"}, - "up": {"uv": [2, 5, 1, 4], "texture": "#0"}, - "down": {"uv": [3, 4, 2, 5], "texture": "#0"} - } - }, - { - "name": "right_leg", - "from": [0, -0.125, -1.125], - "to": [2.25, 6.625, 1.125], - "rotation": {"angle": 0, "axis": "y", "origin": [0, -0.125, 0]}, - "faces": { - "north": {"uv": [1, 5, 2, 8], "texture": "#1"}, - "east": {"uv": [0, 5, 1, 8], "texture": "#1"}, - "south": {"uv": [3, 5, 4, 8], "texture": "#1"}, - "west": {"uv": [2, 5, 3, 8], "texture": "#1"}, - "up": {"uv": [2, 5, 1, 4], "texture": "#1"}, - "down": {"uv": [3, 4, 2, 5], "texture": "#1"} - } - } - ], - "groups": [ - { - "name": "head", - "origin": [0, 24, 0], - "color": 0, - "children": [0, 1] - }, - { - "name": "body", - "origin": [0, 24, 0], - "color": 0, - "children": [2, 3] - }, - { - "name": "left_arm", - "origin": [-5, 22, 0], - "color": 0, - "children": [4, 5] - }, - { - "name": "right_arm", - "origin": [5, 22, 0], - "color": 0, - "children": [6, 7] - }, - { - "name": "left_leg", - "origin": [-1.9, 12, 0], - "color": 0, - "children": [8, 9] - }, - { - "name": "right_leg", - "origin": [1.9, 12, 0], - "color": 0, - "children": [10, 11] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/zombie/husk_adult.json b/src/main/resources/assets/minecraft/models/entity/zombie/husk_adult.json deleted file mode 100644 index ab5f317..0000000 --- a/src/main/resources/assets/minecraft/models/entity/zombie/husk_adult.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/zombie/zombie_adult", - "textures": { - "0": "entity/zombie/husk" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/zombie/husk_baby.json b/src/main/resources/assets/minecraft/models/entity/zombie/husk_baby.json deleted file mode 100644 index f5ee5f8..0000000 --- a/src/main/resources/assets/minecraft/models/entity/zombie/husk_baby.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "entity/zombie/zombie_baby", - "textures": { - "0": "entity/zombie/husk" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/zombie/zombie_adult.json b/src/main/resources/assets/minecraft/models/entity/zombie/zombie_adult.json deleted file mode 100644 index cf99585..0000000 --- a/src/main/resources/assets/minecraft/models/entity/zombie/zombie_adult.json +++ /dev/null @@ -1,128 +0,0 @@ -{ - "format_version": "1.21.6", - "credit": "Model by Miraculixx", - "texture_size": [64, 64], - "textures": { - "0": "entity/zombie/zombie" - }, - "elements": [ - { - "name": "head", - "from": [-4, 24, -4], - "to": [4, 32, 4], - "faces": { - "north": {"uv": [2, 2, 4, 4], "texture": "#0"}, - "east": {"uv": [0, 2, 2, 4], "texture": "#0"}, - "south": {"uv": [6, 2, 8, 4], "texture": "#0"}, - "west": {"uv": [4, 2, 6, 4], "texture": "#0"}, - "up": {"uv": [4, 2, 2, 0], "texture": "#0"}, - "down": {"uv": [6, 0, 4, 2], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-4, 12, -2], - "to": [4, 24, 2], - "faces": { - "north": {"uv": [5, 5, 7, 8], "texture": "#0"}, - "east": {"uv": [4, 5, 5, 8], "texture": "#0"}, - "south": {"uv": [8, 5, 10, 8], "texture": "#0"}, - "west": {"uv": [7, 5, 8, 8], "texture": "#0"}, - "up": {"uv": [7, 5, 5, 4], "texture": "#0"}, - "down": {"uv": [9, 4, 7, 5], "texture": "#0"} - } - }, - { - "name": "left_arm", - "from": [-8, 19.25, -10], - "to": [-4, 23.25, 2], - "rotation": {"angle": -10, "axis": "x", "origin": [0, 21.25, -4]}, - "faces": { - "north": {"uv": [12, 4, 13, 5], "rotation": 180, "texture": "#0"}, - "east": {"uv": [13, 5, 12, 8], "rotation": 270, "texture": "#0"}, - "south": {"uv": [11, 5, 12, 4], "texture": "#0"}, - "west": {"uv": [11, 5, 10, 8], "rotation": 90, "texture": "#0"}, - "up": {"uv": [12, 5, 11, 8], "rotation": 180, "texture": "#0"}, - "down": {"uv": [14, 5, 13, 8], "texture": "#0"} - } - }, - { - "name": "right_arm", - "from": [4, 19.25, -10], - "to": [8, 23.25, 2], - "rotation": {"angle": -10, "axis": "x", "origin": [0, 21.25, -4]}, - "faces": { - "north": {"uv": [13, 4, 12, 5], "rotation": 180, "texture": "#0"}, - "east": {"uv": [10, 5, 11, 8], "rotation": 270, "texture": "#0"}, - "south": {"uv": [12, 5, 11, 4], "texture": "#0"}, - "west": {"uv": [12, 5, 13, 8], "rotation": 90, "texture": "#0"}, - "up": {"uv": [11, 5, 12, 8], "rotation": 180, "texture": "#0"}, - "down": {"uv": [13, 5, 14, 8], "texture": "#0"} - } - }, - { - "name": "left_leg", - "from": [-4, 0, -2], - "to": [0, 12, 2], - "faces": { - "north": {"uv": [2, 5, 1, 8], "texture": "#0"}, - "east": {"uv": [3, 5, 2, 8], "texture": "#0"}, - "south": {"uv": [4, 5, 3, 8], "texture": "#0"}, - "west": {"uv": [1, 5, 0, 8], "texture": "#0"}, - "up": {"uv": [1, 5, 2, 4], "texture": "#0"}, - "down": {"uv": [2, 4, 3, 5], "texture": "#0"} - } - }, - { - "name": "right_leg", - "from": [0, 0, -2], - "to": [4, 12, 2], - "faces": { - "north": {"uv": [1, 5, 2, 8], "texture": "#0"}, - "east": {"uv": [0, 5, 1, 8], "texture": "#0"}, - "south": {"uv": [3, 5, 4, 8], "texture": "#0"}, - "west": {"uv": [2, 5, 3, 8], "texture": "#0"}, - "up": {"uv": [2, 5, 1, 4], "texture": "#0"}, - "down": {"uv": [3, 4, 2, 5], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "head", - "origin": [0, 24, 0], - "color": 0, - "children": [0] - }, - { - "name": "body", - "origin": [0, 24, 0], - "color": 0, - "children": [1] - }, - { - "name": "left_arm", - "origin": [-5, 22, 0], - "color": 0, - "children": [2] - }, - { - "name": "right_arm", - "origin": [5, 22, 0], - "color": 0, - "children": [3] - }, - { - "name": "left_leg", - "origin": [-1.9, 12, 0], - "color": 0, - "children": [4] - }, - { - "name": "right_leg", - "origin": [1.9, 12, 0], - "color": 0, - "children": [5] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/entity/zombie/zombie_baby.json b/src/main/resources/assets/minecraft/models/entity/zombie/zombie_baby.json deleted file mode 100644 index cdbbc63..0000000 --- a/src/main/resources/assets/minecraft/models/entity/zombie/zombie_baby.json +++ /dev/null @@ -1,132 +0,0 @@ -{ - "format_version": "1.21.6", - "credit": "Model by Miraculixx", - "texture_size": [64, 64], - "textures": { - "0": "entity/zombie/zombie" - }, - "elements": [ - { - "name": "head", - "from": [-2.61, 9.6, -2.6], - "to": [2.59, 14.8, 2.6], - "rotation": {"angle": 0, "axis": "y", "origin": [-0.01, 0, 0]}, - "faces": { - "north": {"uv": [2, 2, 4, 4], "texture": "#0"}, - "east": {"uv": [0, 2, 2, 4], "texture": "#0"}, - "south": {"uv": [6, 2, 8, 4], "texture": "#0"}, - "west": {"uv": [4, 2, 6, 4], "texture": "#0"}, - "up": {"uv": [4, 2, 2, 0], "texture": "#0"}, - "down": {"uv": [6, 0, 4, 2], "texture": "#0"} - } - }, - { - "name": "body", - "from": [-1.61, 4.8, -0.8], - "to": [1.59, 9.6, 0.8], - "rotation": {"angle": 0, "axis": "y", "origin": [-0.01, 0, 0]}, - "faces": { - "north": {"uv": [5, 5, 7, 8], "texture": "#0"}, - "east": {"uv": [4, 5, 5, 8], "texture": "#0"}, - "south": {"uv": [8, 5, 10, 8], "texture": "#0"}, - "west": {"uv": [7, 5, 8, 8], "texture": "#0"}, - "up": {"uv": [7, 5, 5, 4], "texture": "#0"}, - "down": {"uv": [9, 4, 7, 5], "texture": "#0"} - } - }, - { - "name": "left_arm", - "from": [-3.21, 7.65, -3.9], - "to": [-1.61, 9.25, 0.9], - "rotation": {"angle": -10, "axis": "x", "origin": [0, 8.45, -1.5]}, - "faces": { - "north": {"uv": [12, 4, 13, 5], "rotation": 180, "texture": "#0"}, - "east": {"uv": [13, 5, 12, 8], "rotation": 270, "texture": "#0"}, - "south": {"uv": [11, 5, 12, 4], "texture": "#0"}, - "west": {"uv": [11, 5, 10, 8], "rotation": 90, "texture": "#0"}, - "up": {"uv": [12, 5, 11, 8], "rotation": 180, "texture": "#0"}, - "down": {"uv": [14, 5, 13, 8], "texture": "#0"} - } - }, - { - "name": "right_arm", - "from": [1.59, 7.65, -3.9], - "to": [3.19, 9.25, 0.9], - "rotation": {"angle": -10, "axis": "x", "origin": [0, 8.45, -1.5]}, - "faces": { - "north": {"uv": [13, 4, 12, 5], "rotation": 180, "texture": "#0"}, - "east": {"uv": [10, 5, 11, 8], "rotation": 270, "texture": "#0"}, - "south": {"uv": [12, 5, 11, 4], "texture": "#0"}, - "west": {"uv": [12, 5, 13, 8], "rotation": 90, "texture": "#0"}, - "up": {"uv": [11, 5, 12, 8], "rotation": 180, "texture": "#0"}, - "down": {"uv": [13, 5, 14, 8], "texture": "#0"} - } - }, - { - "name": "left_leg", - "from": [-1.61, 0, -0.8], - "to": [-0.01, 4.8, 0.8], - "rotation": {"angle": 0, "axis": "y", "origin": [-0.01, 0, 0]}, - "faces": { - "north": {"uv": [2, 5, 1, 8], "texture": "#0"}, - "east": {"uv": [3, 5, 2, 8], "texture": "#0"}, - "south": {"uv": [4, 5, 3, 8], "texture": "#0"}, - "west": {"uv": [1, 5, 0, 8], "texture": "#0"}, - "up": {"uv": [1, 5, 2, 4], "texture": "#0"}, - "down": {"uv": [2, 4, 3, 5], "texture": "#0"} - } - }, - { - "name": "right_leg", - "from": [-0.01, 0, -0.8], - "to": [1.59, 4.8, 0.8], - "rotation": {"angle": 0, "axis": "y", "origin": [-0.01, 0, 0]}, - "faces": { - "north": {"uv": [1, 5, 2, 8], "texture": "#0"}, - "east": {"uv": [0, 5, 1, 8], "texture": "#0"}, - "south": {"uv": [3, 5, 4, 8], "texture": "#0"}, - "west": {"uv": [2, 5, 3, 8], "texture": "#0"}, - "up": {"uv": [2, 5, 1, 4], "texture": "#0"}, - "down": {"uv": [3, 4, 2, 5], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "head", - "origin": [0, 24, 0], - "color": 0, - "children": [0] - }, - { - "name": "body", - "origin": [0, 24, 0], - "color": 0, - "children": [1] - }, - { - "name": "left_arm", - "origin": [-5, 22, 0], - "color": 0, - "children": [2] - }, - { - "name": "right_arm", - "origin": [5, 22, 0], - "color": 0, - "children": [3] - }, - { - "name": "left_leg", - "origin": [-1.9, 12, 0], - "color": 0, - "children": [4] - }, - { - "name": "right_leg", - "origin": [1.9, 12, 0], - "color": 0, - "children": [5] - } - ] -} \ No newline at end of file