diff --git a/core/src/main/java/de/bluecolored/bluemap/core/map/hires/entity/BeeRenderer.java b/core/src/main/java/de/bluecolored/bluemap/core/map/hires/entity/BeeRenderer.java new file mode 100644 index 000000000..c19503add --- /dev/null +++ b/core/src/main/java/de/bluecolored/bluemap/core/map/hires/entity/BeeRenderer.java @@ -0,0 +1,69 @@ +/* + * 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.core.map.hires.entity; + +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.Bee; + +public class BeeRenderer extends ResourceModelRenderer { + + private final ResourcePath + BEE_ADULT = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/bee/adult"), + BEE_BABY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/bee/baby"); + + public BeeRenderer(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 Bee bee)) return; + + // choose correct model + ResourcePath model; + if (bee.getAge() < 0) { + model = BEE_BABY; + } else { + model = BEE_ADULT; + } + + // render chosen model + super.render(entity, block, model.getResource(getModelProvider()), TintColorProvider.NO_TINT, tileModel); + + // apply part transform + if (part.isTransformed()) + tileModel.transform(part.getTransformMatrix()); + } + +} diff --git a/core/src/main/java/de/bluecolored/bluemap/core/map/hires/entity/CatRenderer.java b/core/src/main/java/de/bluecolored/bluemap/core/map/hires/entity/CatRenderer.java new file mode 100644 index 000000000..2935c25d4 --- /dev/null +++ b/core/src/main/java/de/bluecolored/bluemap/core/map/hires/entity/CatRenderer.java @@ -0,0 +1,87 @@ +/* + * 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.core.map.hires.entity; + +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.Bee; +import de.bluecolored.bluemap.core.world.mca.entity.Cat; + +public class CatRenderer extends ResourceModelRenderer { + + private final ResourcePath + CAT_BLACK = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/cat/cat_black"), + CAT_ALL_BLACK = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/cat/cat_all_black"), + CAT_BRITISH_SHORTHAIR = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/cat/cat_british_shorthair"), + CAT_CALICO = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/cat/cat_calico"), + CAT_JELLIE = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/cat/cat_jellie"), + CAT_WHITE = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/cat/cat_white"), + CAT_PERSIAN = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/cat/cat_persian"), + CAT_RAGDOLL = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/cat/cat_ragdoll"), + CAT_RED = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/cat/cat_red"), + CAT_SIAMESE = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/cat/cat_siamese"), + CAT_TABBY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/cat/cat_tabby"); + + public CatRenderer(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 Cat cat)) return; + + // choose correct model + ResourcePath model; + model = switch (cat.getVariant()) { + case BLACK -> CAT_BLACK; + case ALL_BLACK -> CAT_ALL_BLACK; + case BRITISH_SHORTHAIR -> CAT_BRITISH_SHORTHAIR; + case CALICO -> CAT_CALICO; + case JELLIE -> CAT_JELLIE; + case WHITE -> CAT_WHITE; + case PERSIAN -> CAT_PERSIAN; + case RAGDOLL -> CAT_RAGDOLL; + case RED -> CAT_RED; + case SIAMESE -> CAT_SIAMESE; + case TABBY -> CAT_TABBY; + }; + + // render chosen model + super.render(entity, block, model.getResource(getModelProvider()), TintColorProvider.NO_TINT, tileModel); + + // apply part transform + if (part.isTransformed()) + tileModel.transform(part.getTransformMatrix()); + } + +} diff --git a/core/src/main/java/de/bluecolored/bluemap/core/map/hires/entity/ChickenRenderer.java b/core/src/main/java/de/bluecolored/bluemap/core/map/hires/entity/ChickenRenderer.java new file mode 100644 index 000000000..ffbc18e0c --- /dev/null +++ b/core/src/main/java/de/bluecolored/bluemap/core/map/hires/entity/ChickenRenderer.java @@ -0,0 +1,69 @@ +/* + * 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.core.map.hires.entity; + +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.AgeEntity; + +public class ChickenRenderer extends ResourceModelRenderer { + + private final ResourcePath + CHICKEN_ADULT = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/chicken/adult"), + CHICKEN_BABY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/chicken/baby"); + + public ChickenRenderer(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 chicken)) return; + + // choose correct model + ResourcePath model; + if (chicken.getAge() < 0) { + model = CHICKEN_BABY; + } else { + model = CHICKEN_ADULT; + } + + // render chosen model + super.render(entity, block, model.getResource(getModelProvider()), TintColorProvider.NO_TINT, tileModel); + + // apply part transform + if (part.isTransformed()) + tileModel.transform(part.getTransformMatrix()); + } + +} diff --git a/core/src/main/java/de/bluecolored/bluemap/core/map/hires/entity/EntityRendererType.java b/core/src/main/java/de/bluecolored/bluemap/core/map/hires/entity/EntityRendererType.java index 07309ae69..c56b1e627 100644 --- a/core/src/main/java/de/bluecolored/bluemap/core/map/hires/entity/EntityRendererType.java +++ b/core/src/main/java/de/bluecolored/bluemap/core/map/hires/entity/EntityRendererType.java @@ -26,12 +26,10 @@ import de.bluecolored.bluemap.core.map.TextureGallery; import de.bluecolored.bluemap.core.map.hires.RenderSettings; -import de.bluecolored.bluemap.core.map.hires.block.LiquidModelRenderer; import de.bluecolored.bluemap.core.resources.pack.resourcepack.ResourcePack; import de.bluecolored.bluemap.core.util.Key; import de.bluecolored.bluemap.core.util.Keyed; import de.bluecolored.bluemap.core.util.Registry; -import de.bluecolored.bluemap.core.world.BlockState; import lombok.Getter; import lombok.RequiredArgsConstructor; @@ -40,9 +38,28 @@ public interface EntityRendererType extends Keyed, EntityRendererFactory { EntityRendererType DEFAULT = new Impl(Key.bluemap("default"), ResourceModelRenderer::new); EntityRendererType MISSING = new Impl(Key.bluemap("missing"), MissingModelRenderer::new); + EntityRendererType LLAMA = new Impl(Key.minecraft("llama"), LlamaRenderer::new); + EntityRendererType BEE = new Impl(Key.minecraft("bee"), BeeRenderer::new); + EntityRendererType CAT = new Impl(Key.minecraft("cat"), CatRenderer::new); + EntityRendererType OCELOT = new Impl(Key.minecraft("ocelot"), OcelotRenderer::new); + EntityRendererType CHICKEN = new Impl(Key.minecraft("chicken"), ChickenRenderer::new); + EntityRendererType FOX = new Impl(Key.minecraft("fox"), FoxRenderer::new); + EntityRendererType PIG = new Impl(Key.minecraft("pig"), PigRenderer::new); + EntityRendererType TROPICAL_FISH = new Impl(Key.minecraft("tropical_fish"), TropicalFishRenderer::new); + EntityRendererType ZOMBIE = new Impl(Key.minecraft("zombie"), ZombieRenderer::new); + Registry REGISTRY = new Registry<>( DEFAULT, - MISSING + MISSING, + LLAMA, + BEE, + CAT, + OCELOT, + CHICKEN, + FOX, + PIG, + TROPICAL_FISH, + ZOMBIE ); /** diff --git a/core/src/main/java/de/bluecolored/bluemap/core/map/hires/entity/FoxRenderer.java b/core/src/main/java/de/bluecolored/bluemap/core/map/hires/entity/FoxRenderer.java new file mode 100644 index 000000000..751748fda --- /dev/null +++ b/core/src/main/java/de/bluecolored/bluemap/core/map/hires/entity/FoxRenderer.java @@ -0,0 +1,68 @@ +/* + * 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.core.map.hires.entity; + +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.Fox; + +public class FoxRenderer extends ResourceModelRenderer { + + 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"); + + public FoxRenderer(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 Fox fox)) return; + + // choose correct model + ResourcePath model; + model = switch (fox.getType()) { + case RED -> FOX_ADULT_RED; + case SNOW -> FOX_ADULT_SNOW; + }; + + // render chosen model + super.render(entity, block, model.getResource(getModelProvider()), TintColorProvider.NO_TINT, tileModel); + + // apply part transform + if (part.isTransformed()) + tileModel.transform(part.getTransformMatrix()); + } + +} diff --git a/core/src/main/java/de/bluecolored/bluemap/core/map/hires/entity/LlamaRenderer.java b/core/src/main/java/de/bluecolored/bluemap/core/map/hires/entity/LlamaRenderer.java new file mode 100644 index 000000000..cb77ebe69 --- /dev/null +++ b/core/src/main/java/de/bluecolored/bluemap/core/map/hires/entity/LlamaRenderer.java @@ -0,0 +1,116 @@ +/* + * 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.core.map.hires.entity; + +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.Llama; + +public class LlamaRenderer extends ResourceModelRenderer { + + private final ResourcePath + LLAMA_CREAMY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/llama/color/llama_creamy"), + LLAMA_WHITE = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/llama/color/llama_white"), + LLAMA_BROWN = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/llama/color/llama_brown"), + LLAMA_GRAY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/llama/color/llama_gray"), + LLAMA_CHEST = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/llama/llama_chest"), + LLAMA_CARPET_BLACK = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/llama/carpet/llama_black"), + LLAMA_CARPET_BLUE = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/llama/carpet/llama_blue"), + LLAMA_CARPET_BROWN = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/llama/carpet/llama_brown"), + LLAMA_CARPET_CYAN = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/llama/carpet/llama_cyan"), + LLAMA_CARPET_GRAY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/llama/carpet/llama_gray"), + LLAMA_CARPET_GREEN = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/llama/carpet/llama_green"), + LLAMA_CARPET_LIGHT_BLUE = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/llama/carpet/llama_light_blue"), + LLAMA_CARPET_LIGHT_GRAY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/llama/carpet/llama_light_gray"), + LLAMA_CARPET_LIME = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/llama/carpet/llama_lime"), + LLAMA_CARPET_MAGENTA = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/llama/carpet/llama_magenta"), + LLAMA_CARPET_ORANGE = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/llama/carpet/llama_orange"), + LLAMA_CARPET_PINK = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/llama/carpet/llama_pink"), + LLAMA_CARPET_PURPLE = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/llama/carpet/llama_purple"), + LLAMA_CARPET_RED = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/llama/carpet/llama_red"), + LLAMA_CARPET_WHITE = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/llama/carpet/llama_white"), + LLAMA_CARPET_YELLOW = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/llama/carpet/llama_yellow"); + + public LlamaRenderer(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 Llama llama)) return; + + // base model + ResourcePath baseModel = switch (llama.getVariant()) { + case CREAMY -> LLAMA_CREAMY; + case WHITE -> LLAMA_WHITE; + case BROWN -> LLAMA_BROWN; + case GRAY -> LLAMA_GRAY; + }; + super.render(entity, block, baseModel.getResource(getModelProvider()), TintColorProvider.NO_TINT, tileModel); + + // chest model + if (llama.isWithChest()) { + super.render(entity, block, LLAMA_CHEST.getResource(getModelProvider()), TintColorProvider.NO_TINT, tileModel); + } + + // decoration model + ResourcePath decorationModel = switch (llama.getEquipment().getBody().id().getFormatted()) { + case "minecraft:black_carpet" -> LLAMA_CARPET_BLACK; + case "minecraft:blue_carpet" -> LLAMA_CARPET_BLUE; + case "minecraft:brown_carpet" -> LLAMA_CARPET_BROWN; + case "minecraft:cyan_carpet" -> LLAMA_CARPET_CYAN; + case "minecraft:gray_carpet" -> LLAMA_CARPET_GRAY; + case "minecraft:green_carpet" -> LLAMA_CARPET_GREEN; + case "minecraft:light_blue_carpet" -> LLAMA_CARPET_LIGHT_BLUE; + case "minecraft:light_gray_carpet" -> LLAMA_CARPET_LIGHT_GRAY; + case "minecraft:lime_carpet" -> LLAMA_CARPET_LIME; + case "minecraft:magenta_carpet" -> LLAMA_CARPET_MAGENTA; + case "minecraft:orange_carpet" -> LLAMA_CARPET_ORANGE; + case "minecraft:pink_carpet" -> LLAMA_CARPET_PINK; + case "minecraft:purple_carpet" -> LLAMA_CARPET_PURPLE; + case "minecraft:red_carpet" -> LLAMA_CARPET_RED; + case "minecraft:white_carpet" -> LLAMA_CARPET_WHITE; + case "minecraft:yellow_carpet" -> LLAMA_CARPET_YELLOW; + + default -> null; + }; + if (decorationModel != null) { + super.render(entity, block, decorationModel.getResource(getModelProvider()), TintColorProvider.NO_TINT, tileModel); + } + + // apply part transform + if (part.isTransformed()) + tileModel.transform(part.getTransformMatrix()); + } + +} diff --git a/core/src/main/java/de/bluecolored/bluemap/core/map/hires/entity/OcelotRenderer.java b/core/src/main/java/de/bluecolored/bluemap/core/map/hires/entity/OcelotRenderer.java new file mode 100644 index 000000000..8f7c506cd --- /dev/null +++ b/core/src/main/java/de/bluecolored/bluemap/core/map/hires/entity/OcelotRenderer.java @@ -0,0 +1,63 @@ +/* + * 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.core.map.hires.entity; + +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.Ocelot; + +public class OcelotRenderer extends ResourceModelRenderer { + + private final ResourcePath + OCELOT = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/cat/cat_ocelot"); + + public OcelotRenderer(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 Ocelot ocelot)) return; + + // choose correct model + ResourcePath model = OCELOT; + + // render chosen model + super.render(entity, block, model.getResource(getModelProvider()), TintColorProvider.NO_TINT, tileModel); + + // apply part transform + if (part.isTransformed()) + tileModel.transform(part.getTransformMatrix()); + } + +} diff --git a/core/src/main/java/de/bluecolored/bluemap/core/map/hires/entity/PigRenderer.java b/core/src/main/java/de/bluecolored/bluemap/core/map/hires/entity/PigRenderer.java new file mode 100644 index 000000000..c8d8faaa1 --- /dev/null +++ b/core/src/main/java/de/bluecolored/bluemap/core/map/hires/entity/PigRenderer.java @@ -0,0 +1,69 @@ +/* + * 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.core.map.hires.entity; + +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.AgeEntity; + +public class PigRenderer extends ResourceModelRenderer { + + private final ResourcePath + PIG_ADULT = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/pig/adult"), + PIG_BABY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/pig/baby"); + + public PigRenderer(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 pig)) return; + + // choose correct model + ResourcePath model; + if (pig.getAge() < 0) { + model = PIG_BABY; + } else { + model = PIG_ADULT; + } + + // render chosen model + super.render(entity, block, model.getResource(getModelProvider()), TintColorProvider.NO_TINT, tileModel); + + // apply part transform + if (part.isTransformed()) + tileModel.transform(part.getTransformMatrix()); + } + +} diff --git a/core/src/main/java/de/bluecolored/bluemap/core/map/hires/entity/TropicalFishRenderer.java b/core/src/main/java/de/bluecolored/bluemap/core/map/hires/entity/TropicalFishRenderer.java new file mode 100644 index 000000000..55f9952f2 --- /dev/null +++ b/core/src/main/java/de/bluecolored/bluemap/core/map/hires/entity/TropicalFishRenderer.java @@ -0,0 +1,63 @@ +/* + * 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.core.map.hires.entity; + +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.TropicalFish; + +public class TropicalFishRenderer extends ResourceModelRenderer { + + private final ResourcePath + TROPICAL_FISH = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/tropical_fish/tropical_fish"); + + public TropicalFishRenderer(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 TropicalFish tropicalFish)) return; + + // choose correct model + ResourcePath model = TROPICAL_FISH; + + // render chosen model + super.render(entity, block, model.getResource(getModelProvider()), TintColorProvider.NO_TINT, tileModel); + + // apply part transform + if (part.isTransformed()) + tileModel.transform(part.getTransformMatrix()); + } + +} diff --git a/core/src/main/java/de/bluecolored/bluemap/core/map/hires/entity/ZombieRenderer.java b/core/src/main/java/de/bluecolored/bluemap/core/map/hires/entity/ZombieRenderer.java new file mode 100644 index 000000000..206ded8af --- /dev/null +++ b/core/src/main/java/de/bluecolored/bluemap/core/map/hires/entity/ZombieRenderer.java @@ -0,0 +1,69 @@ +/* + * 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.core.map.hires.entity; + +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.Zombie; + +public class ZombieRenderer extends ResourceModelRenderer { + + private final ResourcePath + ZOMBIE_ADULT = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/zombie/adult"), + ZOMBIE_BABY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/zombie/baby"); + + public ZombieRenderer(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 Zombie zombie)) return; + + // choose correct model + ResourcePath model; + if (zombie.isBaby()) { + model = ZOMBIE_BABY; + } else { + model = ZOMBIE_ADULT; + } + + // render chosen model + super.render(entity, block, model.getResource(getModelProvider()), TintColorProvider.NO_TINT, tileModel); + + // apply part transform + if (part.isTransformed()) + tileModel.transform(part.getTransformMatrix()); + } + +} diff --git a/core/src/main/java/de/bluecolored/bluemap/core/world/mca/data/EquipmentData.java b/core/src/main/java/de/bluecolored/bluemap/core/world/mca/data/EquipmentData.java new file mode 100644 index 000000000..330c49914 --- /dev/null +++ b/core/src/main/java/de/bluecolored/bluemap/core/world/mca/data/EquipmentData.java @@ -0,0 +1,8 @@ +package de.bluecolored.bluemap.core.world.mca.data; + +import lombok.Data; + +@Data +public class EquipmentData { + ItemStackDeserializer.ItemStack head, chest, legs, feet, mainhand, offhand, body, saddle; +} diff --git a/core/src/main/java/de/bluecolored/bluemap/core/world/mca/data/ItemStackDeserializer.java b/core/src/main/java/de/bluecolored/bluemap/core/world/mca/data/ItemStackDeserializer.java new file mode 100644 index 000000000..d718feb85 --- /dev/null +++ b/core/src/main/java/de/bluecolored/bluemap/core/world/mca/data/ItemStackDeserializer.java @@ -0,0 +1,36 @@ +package de.bluecolored.bluemap.core.world.mca.data; + +import de.bluecolored.bluemap.core.util.Key; +import de.bluecolored.bluenbt.NBTReader; +import de.bluecolored.bluenbt.TypeDeserializer; + +import java.io.IOException; + +public class ItemStackDeserializer implements TypeDeserializer { + + @Override + public ItemStack read(NBTReader nbtReader) throws IOException { + nbtReader.beginCompound(); + + String id = null; + int count = 1; + + while (nbtReader.hasNext()) { + switch (nbtReader.name()) { + case "id" : id = nbtReader.nextString(); break; + case "count" : count = nbtReader.nextInt(); break; + + default : nbtReader.skip(); + } + } + + nbtReader.endCompound(); + + if (id == null) throw new IOException("Invalid ItemStack, ID is missing!"); + + Key key = Key.parse(id); + return new ItemStack(key, count); + } + + public record ItemStack(Key id, int count) {} +} diff --git a/core/src/main/java/de/bluecolored/bluemap/core/world/mca/entity/AgeEntity.java b/core/src/main/java/de/bluecolored/bluemap/core/world/mca/entity/AgeEntity.java new file mode 100644 index 000000000..97ae551e8 --- /dev/null +++ b/core/src/main/java/de/bluecolored/bluemap/core/world/mca/entity/AgeEntity.java @@ -0,0 +1,39 @@ +/* + * 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.core.world.mca.entity; + +import de.bluecolored.bluenbt.NBTName; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.ToString; + +@Getter +@EqualsAndHashCode(callSuper = true) +@ToString +@SuppressWarnings("FieldMayBeFinal") +public class AgeEntity extends MCAEntity { + + @NBTName("Age") int age; +} diff --git a/core/src/main/java/de/bluecolored/bluemap/core/world/mca/entity/Bee.java b/core/src/main/java/de/bluecolored/bluemap/core/world/mca/entity/Bee.java new file mode 100644 index 000000000..a02d142fd --- /dev/null +++ b/core/src/main/java/de/bluecolored/bluemap/core/world/mca/entity/Bee.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.core.world.mca.entity; + +import de.bluecolored.bluenbt.NBTName; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.ToString; + +@Getter +@EqualsAndHashCode(callSuper = true) +@ToString +@SuppressWarnings("FieldMayBeFinal") +public class Bee extends AgeEntity { + + @NBTName("HasStung") boolean hasStung; + @NBTName("HasNectar") int hasNectar; +} diff --git a/core/src/main/java/de/bluecolored/bluemap/core/world/mca/entity/Cat.java b/core/src/main/java/de/bluecolored/bluemap/core/world/mca/entity/Cat.java new file mode 100644 index 000000000..9b811b6ab --- /dev/null +++ b/core/src/main/java/de/bluecolored/bluemap/core/world/mca/entity/Cat.java @@ -0,0 +1,55 @@ +/* + * 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.core.world.mca.entity; + +import de.bluecolored.bluenbt.NBTName; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.ToString; + +@Getter +@EqualsAndHashCode(callSuper = true) +@ToString +@SuppressWarnings("FieldMayBeFinal") +public class Cat extends AgeEntity { + + @NBTName("Sitting") boolean sitting; + @NBTName("variant") Variant variant; + + public enum Variant { + BLACK, + ALL_BLACK, + BRITISH_SHORTHAIR, + CALICO, + JELLIE, + PERSIAN, + RAGDOLL, + RED, + SIAMESE, + TABBY, + WHITE + } + +} diff --git a/core/src/main/java/de/bluecolored/bluemap/core/world/mca/entity/EntityType.java b/core/src/main/java/de/bluecolored/bluemap/core/world/mca/entity/EntityType.java index 9b871c26e..53b4cdac5 100644 --- a/core/src/main/java/de/bluecolored/bluemap/core/world/mca/entity/EntityType.java +++ b/core/src/main/java/de/bluecolored/bluemap/core/world/mca/entity/EntityType.java @@ -33,7 +33,25 @@ public interface EntityType extends Keyed { - Registry REGISTRY = new Registry<>(); + EntityType LLAMA = new Impl(Key.minecraft("llama"), Llama.class); + EntityType BEE = new Impl(Key.minecraft("bee"), Bee.class); + EntityType CAT = new Impl(Key.minecraft("cat"), Cat.class); + EntityType OCELOT = new Impl(Key.minecraft("ocelot"), Ocelot.class); + EntityType CHICKEN = new Impl(Key.minecraft("chicken"), AgeEntity.class); + EntityType FOX = new Impl(Key.minecraft("fox"), Fox.class); + EntityType PIG = new Impl(Key.minecraft("pig"), Pig.class); + EntityType TROPICAL_FISH = new Impl(Key.minecraft("tropical_fish"), TropicalFish.class); + + Registry REGISTRY = new Registry<>( + LLAMA, + BEE, + CAT, + OCELOT, + CHICKEN, + FOX, + PIG, + TROPICAL_FISH + ); Class getEntityClass(); diff --git a/core/src/main/java/de/bluecolored/bluemap/core/world/mca/entity/Fox.java b/core/src/main/java/de/bluecolored/bluemap/core/world/mca/entity/Fox.java new file mode 100644 index 000000000..f07d7b2f9 --- /dev/null +++ b/core/src/main/java/de/bluecolored/bluemap/core/world/mca/entity/Fox.java @@ -0,0 +1,47 @@ +/* + * 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.core.world.mca.entity; + +import de.bluecolored.bluenbt.NBTName; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.ToString; + +@Getter +@EqualsAndHashCode(callSuper = true) +@ToString +@SuppressWarnings("FieldMayBeFinal") +public class Fox extends AgeEntity { + + @NBTName("Sitting") boolean sitting; + @NBTName("Sleeping") boolean sleeping; + @NBTName("Type") Type type; + + public enum Type { + RED, + SNOW + } + +} diff --git a/core/src/main/java/de/bluecolored/bluemap/core/world/mca/entity/Llama.java b/core/src/main/java/de/bluecolored/bluemap/core/world/mca/entity/Llama.java new file mode 100644 index 000000000..36667d488 --- /dev/null +++ b/core/src/main/java/de/bluecolored/bluemap/core/world/mca/entity/Llama.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.core.world.mca.entity; + +import de.bluecolored.bluemap.core.world.mca.data.EquipmentData; +import de.bluecolored.bluemap.core.world.mca.data.ItemStackDeserializer; +import de.bluecolored.bluenbt.NBTName; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.ToString; + +@Getter +@EqualsAndHashCode(callSuper = true) +@ToString +@SuppressWarnings("FieldMayBeFinal") +public class Llama extends MCAEntity { + + @NBTName("ChestedHorse") boolean withChest; + @NBTName("Variant") Variant variant; + @NBTName("equipment") EquipmentData equipment; + + public enum Variant { + CREAMY, + WHITE, + BROWN, + GRAY + } + +} diff --git a/core/src/main/java/de/bluecolored/bluemap/core/world/mca/entity/Ocelot.java b/core/src/main/java/de/bluecolored/bluemap/core/world/mca/entity/Ocelot.java new file mode 100644 index 000000000..2127e892b --- /dev/null +++ b/core/src/main/java/de/bluecolored/bluemap/core/world/mca/entity/Ocelot.java @@ -0,0 +1,39 @@ +/* + * 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.core.world.mca.entity; + +import de.bluecolored.bluenbt.NBTName; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.ToString; + +@Getter +@EqualsAndHashCode(callSuper = true) +@ToString +@SuppressWarnings("FieldMayBeFinal") +public class Ocelot extends AgeEntity { + + @NBTName("Sitting") int sitting; +} diff --git a/core/src/main/java/de/bluecolored/bluemap/core/world/mca/entity/Pig.java b/core/src/main/java/de/bluecolored/bluemap/core/world/mca/entity/Pig.java new file mode 100644 index 000000000..4f492b18c --- /dev/null +++ b/core/src/main/java/de/bluecolored/bluemap/core/world/mca/entity/Pig.java @@ -0,0 +1,39 @@ +/* + * 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.core.world.mca.entity; + +import de.bluecolored.bluenbt.NBTName; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.ToString; + +@Getter +@EqualsAndHashCode(callSuper = true) +@ToString +@SuppressWarnings("FieldMayBeFinal") +public class Pig extends AgeEntity { + + @NBTName("Saddle") boolean hasSaddle; +} diff --git a/core/src/main/java/de/bluecolored/bluemap/core/world/mca/entity/TropicalFish.java b/core/src/main/java/de/bluecolored/bluemap/core/world/mca/entity/TropicalFish.java new file mode 100644 index 000000000..442995605 --- /dev/null +++ b/core/src/main/java/de/bluecolored/bluemap/core/world/mca/entity/TropicalFish.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.core.world.mca.entity; + +import de.bluecolored.bluenbt.NBTName; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.ToString; + +@Getter +@EqualsAndHashCode(callSuper = true) +@ToString +@SuppressWarnings("FieldMayBeFinal") +public class TropicalFish extends MCAEntity { + + @NBTName("Variant") int variant; + +} diff --git a/core/src/main/java/de/bluecolored/bluemap/core/world/mca/entity/Zombie.java b/core/src/main/java/de/bluecolored/bluemap/core/world/mca/entity/Zombie.java new file mode 100644 index 000000000..65f6718ac --- /dev/null +++ b/core/src/main/java/de/bluecolored/bluemap/core/world/mca/entity/Zombie.java @@ -0,0 +1,37 @@ +/* + * 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.core.world.mca.entity; + +import de.bluecolored.bluenbt.NBTName; +import lombok.Getter; +import lombok.ToString; + +@Getter +@ToString +@SuppressWarnings("FieldMayBeFinal") +public class Zombie { + + @NBTName("IsBaby") boolean isBaby; +} diff --git a/core/src/main/resourceExtensions/assets/minecraft/entitystates/bee.json b/core/src/main/resourceExtensions/assets/minecraft/entitystates/bee.json new file mode 100644 index 000000000..f9625321b --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/entitystates/bee.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "renderer": "minecraft:bee" } + ] +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/entitystates/breeze.json b/core/src/main/resourceExtensions/assets/minecraft/entitystates/breeze.json new file mode 100644 index 000000000..7caf5fa73 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/entitystates/breeze.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/breeze" } + ] +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/entitystates/cat.json b/core/src/main/resourceExtensions/assets/minecraft/entitystates/cat.json new file mode 100644 index 000000000..d18faac49 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/entitystates/cat.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "renderer": "minecraft:cat" } + ] +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/entitystates/chicken.json b/core/src/main/resourceExtensions/assets/minecraft/entitystates/chicken.json new file mode 100644 index 000000000..e4c37c319 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/entitystates/chicken.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "renderer": "minecraft:chicken" } + ] +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/entitystates/cod.json b/core/src/main/resourceExtensions/assets/minecraft/entitystates/cod.json new file mode 100644 index 000000000..4abe82692 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/entitystates/cod.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/cod/cod" } + ] +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/entitystates/cow.json b/core/src/main/resourceExtensions/assets/minecraft/entitystates/cow.json new file mode 100644 index 000000000..3a1d4c92f --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/entitystates/cow.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/cow/cow" } + ] +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/entitystates/fox.json b/core/src/main/resourceExtensions/assets/minecraft/entitystates/fox.json new file mode 100644 index 000000000..cc2edc34a --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/entitystates/fox.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "renderer": "minecraft:fox" } + ] +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/entitystates/iron_golem.json b/core/src/main/resourceExtensions/assets/minecraft/entitystates/iron_golem.json new file mode 100644 index 000000000..0e7782335 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/entitystates/iron_golem.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/iron_golem/iron_golem" } + ] +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/entitystates/llama.json b/core/src/main/resourceExtensions/assets/minecraft/entitystates/llama.json new file mode 100644 index 000000000..661b9a2a9 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/entitystates/llama.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "renderer": "minecraft:llama" } + ] +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/entitystates/ocelot.json b/core/src/main/resourceExtensions/assets/minecraft/entitystates/ocelot.json new file mode 100644 index 000000000..beaa92b3b --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/entitystates/ocelot.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "renderer": "minecraft:ocelot" } + ] +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/entitystates/pig.json b/core/src/main/resourceExtensions/assets/minecraft/entitystates/pig.json new file mode 100644 index 000000000..3af7a2446 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/entitystates/pig.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "renderer": "minecraft:pig" } + ] +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/entitystates/pufferfish.json b/core/src/main/resourceExtensions/assets/minecraft/entitystates/pufferfish.json new file mode 100644 index 000000000..7f00415cb --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/entitystates/pufferfish.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/pufferfish/pufferfish" } + ] +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/entitystates/salmon.json b/core/src/main/resourceExtensions/assets/minecraft/entitystates/salmon.json new file mode 100644 index 000000000..6caa18028 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/entitystates/salmon.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "model": "minecraft:entity/salmon/salmon" } + ] +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/entitystates/tropical_fish.json b/core/src/main/resourceExtensions/assets/minecraft/entitystates/tropical_fish.json new file mode 100644 index 000000000..7ca38aab4 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/entitystates/tropical_fish.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "renderer": "minecraft:tropical_fish" } + ] +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/entitystates/zombie.json b/core/src/main/resourceExtensions/assets/minecraft/entitystates/zombie.json new file mode 100644 index 000000000..132299765 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/entitystates/zombie.json @@ -0,0 +1,5 @@ +{ + "parts": [ + { "renderer": "minecraft:zombie" } + ] +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/bee/adult.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/bee/adult.json new file mode 100644 index 000000000..210881c92 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/bee/adult.json @@ -0,0 +1,185 @@ +{ + "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], + "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], + "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": "left_antenna", + "origin": [8, 7, 3], + "color": 0, + "children": [1] + }, + { + "name": "right_antenna", + "origin": [8, 7, 3], + "color": 0, + "children": [2] + }, + { + "name": "left_wing", + "origin": [6.5, 9, 5], + "color": 0, + "children": [3] + }, + { + "name": "right_wing", + "origin": [9.5, 9, 5], + "color": 0, + "children": [4] + }, + { + "name": "front_legs", + "origin": [6.5, 2, 6], + "color": 0, + "children": [5] + }, + { + "name": "middle_legs", + "origin": [6.5, 2, 8], + "color": 0, + "children": [6] + }, + { + "name": "back_legs", + "origin": [6.5, 2, 10], + "color": 0, + "children": [7] + }, + { + "name": "stinger", + "origin": [8, 5, 8], + "color": 0, + "children": [8] + } + ] +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/bee/baby.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/bee/baby.json new file mode 100644 index 000000000..f05f33deb --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/bee/baby.json @@ -0,0 +1,191 @@ +{ + "credit": "Model by Miraculixx", + "texture_size": [64, 64], + "textures": { + "0": "entity/bee/bee" + }, + "elements": [ + { + "name": "torso", + "from": [-2.5, 2, -4], + "to": [2.5, 7, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [-1, 0, 1]}, + "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.05, 5.6, -6], + "to": [-1.05, 7, -4], + "rotation": {"angle": 0, "axis": "y", "origin": [0.45, -1.4, 1]}, + "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.1, 5.6, -6], + "to": [1.1, 7, -4], + "rotation": {"angle": 0, "axis": "y", "origin": [-0.4, -2, 1]}, + "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": [-7.2, 7.049, -1.55], + "to": [-1.2, 7.049, 3.2], + "rotation": {"angle": 0, "axis": "y", "origin": [0.3, -1.951, 0.2]}, + "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.2, 7.049, -1.55], + "to": [7.2, 7.049, 3.25], + "rotation": {"angle": 0, "axis": "y", "origin": [-2.3, -1.951, 1.25]}, + "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, 0.9, -0.9], + "to": [1, 2.9, -0.9], + "rotation": {"angle": -22.5, "axis": "x", "origin": [-0.5, 0.9, 1.1]}, + "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.5, 0.2, 0.7], + "to": [1.5, 2.2, 0.7], + "rotation": {"angle": -22.5, "axis": "x", "origin": [-1, 0.2, 0.7]}, + "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.5, -0.5, 2.4], + "to": [1.5, 1.5, 2.4], + "rotation": {"angle": -22.5, "axis": "x", "origin": [-1, -0.5, 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, 4.15, 4], + "to": [0, 4.9, 5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, -1.1, -1]}, + "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": "left_antenna", + "origin": [8, 7, 3], + "color": 0, + "children": [1] + }, + { + "name": "right_antenna", + "origin": [8, 7, 3], + "color": 0, + "children": [2] + }, + { + "name": "left_wing", + "origin": [6.5, 9, 5], + "color": 0, + "children": [3] + }, + { + "name": "right_wing", + "origin": [9.5, 9, 5], + "color": 0, + "children": [4] + }, + { + "name": "front_legs", + "origin": [6.5, 2, 6], + "color": 0, + "children": [5] + }, + { + "name": "middle_legs", + "origin": [6.5, 2, 8], + "color": 0, + "children": [6] + }, + { + "name": "back_legs", + "origin": [6.5, 2, 10], + "color": 0, + "children": [7] + }, + { + "name": "stinger", + "origin": [8, 5, 8], + "color": 0, + "children": [8] + } + ] +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/breeze.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/breeze.json new file mode 100644 index 000000000..ea5ffc77d --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/breeze.json @@ -0,0 +1,93 @@ +{ + "format_version": "1.21.6", + "credit": "Model by Miraculixx", + "texture_size": [32, 32], + "textures": { + "0": "breeze", + "particle": "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/core/src/main/resourceExtensions/assets/minecraft/models/entity/cat/black.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/cat/black.json new file mode 100644 index 000000000..e4d8c57bd --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/cat/black.json @@ -0,0 +1,6 @@ +{ + "parent": "entity/cat/cat", + "textures": { + "0": "entity/cat/black" + } +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/cat/cat.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/cat/cat.json new file mode 100644 index 000000000..55aa765bc --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/cat/cat.json @@ -0,0 +1,204 @@ +{ + "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/core/src/main/resourceExtensions/assets/minecraft/models/entity/cat/cat_all_black.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/cat/cat_all_black.json new file mode 100644 index 000000000..7fe7d9e02 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/cat/cat_all_black.json @@ -0,0 +1,6 @@ +{ + "parent": "entity/cat/cat", + "textures": { + "0": "entity/cat/all_black" + } +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/cat/cat_british_shorthair.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/cat/cat_british_shorthair.json new file mode 100644 index 000000000..a954e4f9a --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/cat/cat_british_shorthair.json @@ -0,0 +1,6 @@ +{ + "parent": "entity/cat/cat", + "textures": { + "0": "entity/cat/british_shorthair" + } +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/cat/cat_calico.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/cat/cat_calico.json new file mode 100644 index 000000000..52dc45bd6 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/cat/cat_calico.json @@ -0,0 +1,6 @@ +{ + "parent": "entity/cat/cat", + "textures": { + "0": "entity/cat/calico" + } +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/cat/cat_jellie.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/cat/cat_jellie.json new file mode 100644 index 000000000..d8a1fbaaa --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/cat/cat_jellie.json @@ -0,0 +1,6 @@ +{ + "parent": "entity/cat/cat", + "textures": { + "0": "entity/cat/jellie" + } +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/cat/cat_ocelot.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/cat/cat_ocelot.json new file mode 100644 index 000000000..d90ac4723 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/cat/cat_ocelot.json @@ -0,0 +1,6 @@ +{ + "parent": "entity/cat/cat", + "textures": { + "0": "entity/cat/ocelot" + } +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/cat/cat_persian.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/cat/cat_persian.json new file mode 100644 index 000000000..95c487a96 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/cat/cat_persian.json @@ -0,0 +1,6 @@ +{ + "parent": "entity/cat/cat", + "textures": { + "0": "entity/cat/persian" + } +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/cat/cat_ragdoll.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/cat/cat_ragdoll.json new file mode 100644 index 000000000..6f6b1cfff --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/cat/cat_ragdoll.json @@ -0,0 +1,6 @@ +{ + "parent": "entity/cat/cat", + "textures": { + "0": "entity/cat/ragdoll" + } +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/cat/cat_red.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/cat/cat_red.json new file mode 100644 index 000000000..500ebd696 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/cat/cat_red.json @@ -0,0 +1,6 @@ +{ + "parent": "entity/cat/cat", + "textures": { + "0": "entity/cat/red" + } +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/cat/cat_siamese.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/cat/cat_siamese.json new file mode 100644 index 000000000..156fd3038 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/cat/cat_siamese.json @@ -0,0 +1,6 @@ +{ + "parent": "entity/cat/cat", + "textures": { + "0": "entity/cat/siamese" + } +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/cat/cat_tabby.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/cat/cat_tabby.json new file mode 100644 index 000000000..f26aef59e --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/cat/cat_tabby.json @@ -0,0 +1,6 @@ +{ + "parent": "entity/cat/cat", + "textures": { + "0": "entity/cat/tabby" + } +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/cat/cat_white.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/cat/cat_white.json new file mode 100644 index 000000000..9eb4be46d --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/cat/cat_white.json @@ -0,0 +1,6 @@ +{ + "parent": "entity/cat/cat", + "textures": { + "0": "entity/cat/white" + } +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/chicken/adult.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/chicken/adult.json new file mode 100644 index 000000000..99f1aaf7b --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/chicken/adult.json @@ -0,0 +1,199 @@ +{ + "credit": "Model by Miraculixx", + "texture_size": [64, 32], + "textures": { + "0": "entity/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/core/src/main/resourceExtensions/assets/minecraft/models/entity/chicken/baby.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/chicken/baby.json new file mode 100644 index 000000000..bbb3549b4 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/chicken/baby.json @@ -0,0 +1,199 @@ +{ + "credit": "Model by Miraculixx", + "texture_size": [64, 32], + "textures": { + "0": "entity/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/core/src/main/resourceExtensions/assets/minecraft/models/entity/cod/cod.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/cod/cod.json new file mode 100644 index 000000000..f8339cdd8 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/cod/cod.json @@ -0,0 +1,153 @@ +{ + "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/core/src/main/resourceExtensions/assets/minecraft/models/entity/cow/cow.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/cow/cow.json new file mode 100644 index 000000000..3f4d60bcd --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/cow/cow.json @@ -0,0 +1,135 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 32], + "textures": { + "particle": "entity/cow/cow", + "body": "entity/cow/cow" + }, + "elements": [ + { + "name": "head", + "from": [-2, 16, -14], + "to": [6, 24, -8], + "rotation": {"angle": 0, "axis": "x", "origin": [4, 22, -14]}, + "faces": { + "north": {"uv": [1.5, 3, 3.5, 7], "texture": "#body"}, + "east": {"uv": [0, 3, 1.5, 7], "texture": "#body"}, + "south": {"uv": [5, 3, 7, 7], "texture": "#body"}, + "west": {"uv": [3.5, 3, 5, 7], "texture": "#body"}, + "up": {"uv": [1.5, 0, 3.5, 3], "texture": "#body"}, + "down": {"uv": [3.5, 0, 5.5, 3], "texture": "#body"} + } + }, + { + "name": "body", + "from": [-4, 12, -8], + "to": [8, 22, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [-4, 12, -8]}, + "faces": { + "north": {"uv": [7, 2, 10, 7], "texture": "#body"}, + "east": {"uv": [4.5, 7, 7, 16], "rotation": 90, "texture": "#body"}, + "south": {"uv": [10, 2, 13, 7], "texture": "#body"}, + "west": {"uv": [10, 7, 12.5, 16], "rotation": 270, "texture": "#body"}, + "up": {"uv": [12.5, 7, 15.5, 16], "texture": "#body"}, + "down": {"uv": [7, 7, 10, 16], "rotation": 180, "texture": "#body"} + } + }, + { + "name": "horn_right", + "from": [6, 22, -12], + "to": [7, 25, -11], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 22, -13]}, + "faces": { + "north": {"uv": [6.25, 0.5, 6.5, 2], "texture": "#body"}, + "east": {"uv": [6, 0.5, 6.25, 2], "texture": "#body"}, + "south": {"uv": [5.75, 0.5, 6, 2], "texture": "#body"}, + "west": {"uv": [5.5, 0.5, 5.75, 2], "texture": "#body"}, + "up": {"uv": [5.75, 0, 6, 0.5], "texture": "#body"}, + "down": {"uv": [6, 0, 6.25, 0.5], "texture": "#body"} + } + }, + { + "name": "horn_left", + "from": [-3, 22, -12], + "to": [-2, 25, -11], + "rotation": {"angle": 0, "axis": "x", "origin": [-4, 22, -13]}, + "faces": { + "north": {"uv": [6.5, 0.5, 6.25, 2], "texture": "#body"}, + "east": {"uv": [5.75, 0.5, 5.5, 2], "texture": "#body"}, + "south": {"uv": [6, 0.5, 5.75, 2], "texture": "#body"}, + "west": {"uv": [6.25, 0.5, 6, 2], "texture": "#body"}, + "up": {"uv": [6, 0, 5.75, 0.5], "texture": "#body"}, + "down": {"uv": [6.25, 0, 6, 0.5], "texture": "#body"} + } + }, + { + "name": "leg_front_right", + "from": [4, 0, -8], + "to": [8, 12, -4], + "rotation": {"angle": 0, "axis": "y", "origin": [6, 0, -6]}, + "faces": { + "north": {"uv": [1, 10, 2, 16], "texture": "#body"}, + "east": {"uv": [0, 10, 1, 16], "texture": "#body"}, + "south": {"uv": [3, 10, 4, 16], "texture": "#body"}, + "west": {"uv": [2, 10, 3, 16], "texture": "#body"}, + "up": {"uv": [1, 8, 2, 10], "texture": "#body"}, + "down": {"uv": [2, 8, 3, 10], "texture": "#body"} + } + }, + { + "name": "leg_front_left", + "from": [-4, 0, -8], + "to": [0, 12, -4], + "rotation": {"angle": 0, "axis": "y", "origin": [-2, 0, -6]}, + "faces": { + "north": {"uv": [1, 10, 2, 16], "texture": "#body"}, + "east": {"uv": [0, 10, 1, 16], "texture": "#body"}, + "south": {"uv": [3, 10, 4, 16], "texture": "#body"}, + "west": {"uv": [2, 10, 3, 16], "texture": "#body"}, + "up": {"uv": [1, 8, 2, 10], "texture": "#body"}, + "down": {"uv": [2, 8, 3, 10], "texture": "#body"} + } + }, + { + "name": "leg_back_left", + "from": [-4, 0, 5], + "to": [0, 12, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [-2, 0, 7]}, + "faces": { + "north": {"uv": [1, 10, 2, 16], "texture": "#body"}, + "east": {"uv": [0, 10, 1, 16], "texture": "#body"}, + "south": {"uv": [3, 10, 4, 16], "texture": "#body"}, + "west": {"uv": [2, 10, 3, 16], "texture": "#body"}, + "up": {"uv": [1, 8, 2, 10], "texture": "#body"}, + "down": {"uv": [2, 8, 3, 10], "texture": "#body"} + } + }, + { + "name": "leg_back_right", + "from": [4, 0, 5], + "to": [8, 12, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [6, 0, 7]}, + "faces": { + "north": {"uv": [1, 10, 2, 16], "texture": "#body"}, + "east": {"uv": [0, 10, 1, 16], "texture": "#body"}, + "south": {"uv": [3, 10, 4, 16], "texture": "#body"}, + "west": {"uv": [2, 10, 3, 16], "texture": "#body"}, + "up": {"uv": [1, 8, 2, 10], "texture": "#body"}, + "down": {"uv": [2, 8, 3, 10], "texture": "#body"} + } + }, + { + "name": "udder", + "from": [0, 11, 4], + "to": [4, 12, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [2, 11, 5]}, + "faces": { + "north": {"uv": [13.25, 0, 14.25, 0.5], "texture": "#body"}, + "east": {"uv": [14.25, 0.5, 14.5, 3.5], "rotation": 90, "texture": "#body"}, + "south": {"uv": [14.25, 0, 15.25, 0.5], "texture": "#body"}, + "west": {"uv": [13, 0.5, 13.25, 3.5], "rotation": 90, "texture": "#body"}, + "down": {"uv": [13.25, 0.5, 14.25, 3.5], "texture": "#body"} + } + } + ] +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/fox/adult.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/fox/adult.json new file mode 100644 index 000000000..fdc021a5f --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/fox/adult.json @@ -0,0 +1,193 @@ +{ + "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/core/src/main/resourceExtensions/assets/minecraft/models/entity/fox/adult_snow.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/fox/adult_snow.json new file mode 100644 index 000000000..0fc3fc82b --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/fox/adult_snow.json @@ -0,0 +1,6 @@ +{ + "parent": "entity/fox/adult", + "textures": { + "0": "entity/fox/snow_fox" + } +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/iron_golem/iron_golem.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/iron_golem/iron_golem.json new file mode 100644 index 000000000..ec0e1dc87 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/iron_golem/iron_golem.json @@ -0,0 +1,159 @@ +{ + "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/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_black.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_black.json new file mode 100644 index 000000000..7b6b8e55d --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_black.json @@ -0,0 +1,6 @@ +{ + "parent": "entity/llama/llama_carpet", + "textures": { + "0": "entity/equipment/llama_body/black" + } +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_blue.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_blue.json new file mode 100644 index 000000000..d7edaf03e --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_blue.json @@ -0,0 +1,6 @@ +{ + "parent": "entity/llama/llama_carpet", + "textures": { + "0": "entity/equipment/llama_body/blue" + } +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_brown.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_brown.json new file mode 100644 index 000000000..6d1bfa669 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_brown.json @@ -0,0 +1,6 @@ +{ + "parent": "entity/llama/llama_carpet", + "textures": { + "0": "entity/equipment/llama_body/brown" + } +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_cyan.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_cyan.json new file mode 100644 index 000000000..da02b75aa --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_cyan.json @@ -0,0 +1,6 @@ +{ + "parent": "entity/llama/llama_carpet", + "textures": { + "0": "entity/equipment/llama_body/cyan" + } +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_gray.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_gray.json new file mode 100644 index 000000000..6f6d77fc6 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_gray.json @@ -0,0 +1,6 @@ +{ + "parent": "entity/llama/llama_carpet", + "textures": { + "0": "entity/equipment/llama_body/gray" + } +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_green.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_green.json new file mode 100644 index 000000000..5cec31c7c --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_green.json @@ -0,0 +1,6 @@ +{ + "parent": "entity/llama/llama_carpet", + "textures": { + "0": "entity/equipment/llama_body/green" + } +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_light_blue.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_light_blue.json new file mode 100644 index 000000000..a1c7d025e --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_light_blue.json @@ -0,0 +1,6 @@ +{ + "parent": "entity/llama/llama_carpet", + "textures": { + "0": "entity/equipment/llama_body/light_blue" + } +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_light_gray.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_light_gray.json new file mode 100644 index 000000000..d250ead95 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_light_gray.json @@ -0,0 +1,6 @@ +{ + "parent": "entity/llama/llama_carpet", + "textures": { + "0": "entity/equipment/llama_body/light_gray" + } +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_lime.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_lime.json new file mode 100644 index 000000000..cf0d6c685 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_lime.json @@ -0,0 +1,6 @@ +{ + "parent": "entity/llama/llama_carpet", + "textures": { + "0": "entity/equipment/llama_body/lime" + } +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_magenta.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_magenta.json new file mode 100644 index 000000000..7bd695b5a --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_magenta.json @@ -0,0 +1,6 @@ +{ + "parent": "entity/llama/llama_carpet", + "textures": { + "0": "entity/equipment/llama_body/magenta" + } +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_orange.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_orange.json new file mode 100644 index 000000000..c3f70be64 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_orange.json @@ -0,0 +1,6 @@ +{ + "parent": "entity/llama/llama_carpet", + "textures": { + "0": "entity/equipment/llama_body/orange" + } +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_pink.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_pink.json new file mode 100644 index 000000000..dfaf44947 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_pink.json @@ -0,0 +1,6 @@ +{ + "parent": "entity/llama/llama_carpet", + "textures": { + "0": "entity/equipment/llama_body/pink" + } +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_purple.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_purple.json new file mode 100644 index 000000000..901d4c4e2 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_purple.json @@ -0,0 +1,6 @@ +{ + "parent": "entity/llama/llama_carpet", + "textures": { + "0": "entity/equipment/llama_body/purple" + } +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_red.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_red.json new file mode 100644 index 000000000..cf0cf7178 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_red.json @@ -0,0 +1,6 @@ +{ + "parent": "entity/llama/llama_carpet", + "textures": { + "0": "entity/equipment/llama_body/red" + } +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_trader_llama.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_trader_llama.json new file mode 100644 index 000000000..91e9d4f02 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_trader_llama.json @@ -0,0 +1,6 @@ +{ + "parent": "entity/llama/llama_carpet", + "textures": { + "0": "entity/equipment/llama_body/trader_llama" + } +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_white.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_white.json new file mode 100644 index 000000000..764fc3031 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_white.json @@ -0,0 +1,6 @@ +{ + "parent": "entity/llama/llama_carpet", + "textures": { + "0": "entity/equipment/llama_body/white" + } +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_yellow.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_yellow.json new file mode 100644 index 000000000..9d7dd8832 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/carpet/llama_yellow.json @@ -0,0 +1,6 @@ +{ + "parent": "entity/llama/llama_carpet", + "textures": { + "0": "entity/equipment/llama_body/yellow" + } +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/color/llama_brown.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/color/llama_brown.json new file mode 100644 index 000000000..aae282852 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/color/llama_brown.json @@ -0,0 +1,6 @@ +{ + "parent": "entity/llama/llama", + "textures": { + "0": "entity/llama/brown" + } +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/color/llama_creamy.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/color/llama_creamy.json new file mode 100644 index 000000000..4d5dcbf21 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/color/llama_creamy.json @@ -0,0 +1,6 @@ +{ + "parent": "entity/llama/llama", + "textures": { + "0": "entity/llama/creamy" + } +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/color/llama_gray.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/color/llama_gray.json new file mode 100644 index 000000000..c230a772e --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/color/llama_gray.json @@ -0,0 +1,6 @@ +{ + "parent": "entity/llama/llama", + "textures": { + "0": "entity/llama/gray" + } +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/color/llama_white.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/color/llama_white.json new file mode 100644 index 000000000..e4aa22584 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/color/llama_white.json @@ -0,0 +1,6 @@ +{ + "parent": "entity/llama/llama", + "textures": { + "0": "entity/llama/white" + } +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/llama.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/llama.json new file mode 100644 index 000000000..898085365 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/llama.json @@ -0,0 +1,165 @@ +{ + "credit": "Model by Miraculixx", + "texture_size": [128, 64], + "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/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/llama_carpet.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/llama_carpet.json new file mode 100644 index 000000000..4f57b44c5 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/llama_carpet.json @@ -0,0 +1,48 @@ +{ + "format_version": "1.21.6", + "credit": "Model by Miraculixx", + "texture_size": [128, 64], + "elements": [ + { + "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": "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"} + } + } + ], + "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/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/llama_chest.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/llama_chest.json new file mode 100644 index 000000000..0babd2f70 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/llama_chest.json @@ -0,0 +1,46 @@ +{ + "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/core/src/main/resourceExtensions/assets/minecraft/models/entity/pig/adult.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/pig/adult.json new file mode 100644 index 000000000..c66b31efe --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/pig/adult.json @@ -0,0 +1,141 @@ +{ + "credit": "Model by Miraculixx", + "texture_size": [64, 32], + "textures": { + "0": "entity/pig/pig" + }, + "elements": [ + { + "name": "body", + "from": [-5, 6, -8], + "to": [5, 14, 8], + "rotation": {"angle": 0, "axis": "x", "origin": [0, -1, -3]}, + "faces": { + "north": {"uv": [9, 4, 11.5, 8], "texture": "#0"}, + "east": {"uv": [7, 8, 9, 16], "rotation": 90, "texture": "#0"}, + "south": {"uv": [11.5, 4, 14, 8], "texture": "#0"}, + "west": {"uv": [11.5, 8, 13.5, 16], "rotation": 90, "texture": "#0"}, + "up": {"uv": [16, 16, 13.5, 8], "texture": "#0"}, + "down": {"uv": [11.5, 8, 9, 16], "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, 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": [-2, 9, -16], + "to": [2, 12, -15], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -1]}, + "faces": { + "north": {"uv": [4.25, 8.5, 5.25, 10], "texture": "#0"}, + "east": {"uv": [4, 8.5, 4.25, 10], "texture": "#0"}, + "south": {"uv": [5.5, 8.5, 6.5, 10], "texture": "#0"}, + "west": {"uv": [5.25, 8.5, 5.5, 10], "texture": "#0"}, + "up": {"uv": [5.25, 8.5, 4.25, 8], "texture": "#0"}, + "down": {"uv": [6.25, 8, 5.25, 8.5], "texture": "#0"} + } + }, + { + "name": "leg1", + "from": [1, 0, 5], + "to": [5, 6, 9], + "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, 0, 5], + "to": [-1, 6, 9], + "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": [1, 0, -7], + "to": [5, 6, -3], + "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, 0, -7], + "to": [-1, 6, -3], + "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": [8, 13, 10], + "color": 0, + "children": [0] + }, + { + "name": "head", + "origin": [8, 12, 2], + "color": 0, + "children": [1, 2] + }, + { + "name": "leg1", + "origin": [11, 6, 15], + "color": 0, + "children": [3] + }, + { + "name": "leg2", + "origin": [5, 6, 15], + "color": 0, + "children": [4] + }, + { + "name": "leg3", + "origin": [11, 6, 3], + "color": 0, + "children": [5] + }, + { + "name": "leg4", + "origin": [5, 6, 3], + "color": 0, + "children": [6] + } + ] +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/pig/baby.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/pig/baby.json new file mode 100644 index 000000000..26089b8bc --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/pig/baby.json @@ -0,0 +1,145 @@ +{ + "credit": "Model by Miraculixx", + "texture_size": [64, 32], + "textures": { + "0": "entity/pig/pig" + }, + "elements": [ + { + "name": "body", + "from": [-2.5, 3, -4], + "to": [2.5, 7, 4], + "rotation": {"angle": 0, "axis": "x", "origin": [0.5, -4, 1]}, + "faces": { + "north": {"uv": [9, 4, 11.5, 8], "texture": "#0"}, + "east": {"uv": [7, 8, 9, 16], "rotation": 90, "texture": "#0"}, + "south": {"uv": [11.5, 4, 14, 8], "texture": "#0"}, + "west": {"uv": [11.5, 8, 13.5, 16], "rotation": 90, "texture": "#0"}, + "up": {"uv": [16, 16, 13.5, 8], "texture": "#0"}, + "down": {"uv": [11.5, 8, 9, 16], "texture": "#0"} + } + }, + { + "name": "head", + "from": [-4, 4, -10], + "to": [4, 12, -2], + "rotation": {"angle": 0, "axis": "y", "origin": [0, -4, 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": [-2, 5, -11], + "to": [2, 8, -10], + "rotation": {"angle": 0, "axis": "y", "origin": [0, -4, 4]}, + "faces": { + "north": {"uv": [4.25, 8.5, 5.25, 10], "texture": "#0"}, + "east": {"uv": [4, 8.5, 4.25, 10], "texture": "#0"}, + "south": {"uv": [5.5, 8.5, 6.5, 10], "texture": "#0"}, + "west": {"uv": [5.25, 8.5, 5.5, 10], "texture": "#0"}, + "up": {"uv": [5.25, 8.5, 4.25, 8], "texture": "#0"}, + "down": {"uv": [6.25, 8, 5.25, 8.5], "texture": "#0"} + } + }, + { + "name": "leg1", + "from": [0.5, 0, 2.5], + "to": [2.5, 3, 4.5], + "rotation": {"angle": 0, "axis": "y", "origin": [-0.5, 0, -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": "leg2", + "from": [-2.5, 0, 2.5], + "to": [-0.5, 3, 4.5], + "rotation": {"angle": 0, "axis": "y", "origin": [2.5, 0, -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": "leg3", + "from": [0.5, 0, -3.5], + "to": [2.5, 3, -1.5], + "rotation": {"angle": 0, "axis": "y", "origin": [-0.5, 0, 3.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.5, 0, -3.5], + "to": [-0.5, 3, -1.5], + "rotation": {"angle": 0, "axis": "y", "origin": [2.5, 0, 3.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": [8, 13, 10], + "color": 0, + "children": [0] + }, + { + "name": "head", + "origin": [8, 12, 2], + "color": 0, + "children": [1, 2] + }, + { + "name": "leg1", + "origin": [11, 6, 15], + "color": 0, + "children": [3] + }, + { + "name": "leg2", + "origin": [5, 6, 15], + "color": 0, + "children": [4] + }, + { + "name": "leg3", + "origin": [11, 6, 3], + "color": 0, + "children": [5] + }, + { + "name": "leg4", + "origin": [5, 6, 3], + "color": 0, + "children": [6] + } + ] +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/pufferfish/pufferfish.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/pufferfish/pufferfish.json new file mode 100644 index 000000000..c2da38ab6 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/pufferfish/pufferfish.json @@ -0,0 +1,131 @@ +{ + "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/core/src/main/resourceExtensions/assets/minecraft/models/entity/salmon/salmon.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/salmon/salmon.json new file mode 100644 index 000000000..d5951464b --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/salmon/salmon.json @@ -0,0 +1,171 @@ +{ + "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/core/src/main/resourceExtensions/assets/minecraft/models/entity/tropical_fish/tropical_fish.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/tropical_fish/tropical_fish.json new file mode 100644 index 000000000..83939f5a3 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/tropical_fish/tropical_fish.json @@ -0,0 +1,113 @@ +{ + "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/core/src/main/resourceExtensions/assets/minecraft/models/entity/zombie/adult.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/zombie/adult.json new file mode 100644 index 000000000..54a870eb6 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/zombie/adult.json @@ -0,0 +1,126 @@ +{ + "format_version": "1.21.6", + "credit": "Model by Miraculixx", + "texture_size": [64, 64], + "textures": { + "0": "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, 12, -2], + "to": [-4, 24, 2], + "faces": { + "north": {"uv": [12, 5, 11, 8], "texture": "#0"}, + "east": {"uv": [13, 5, 12, 8], "texture": "#0"}, + "south": {"uv": [14, 5, 13, 8], "texture": "#0"}, + "west": {"uv": [11, 5, 10, 8], "texture": "#0"}, + "up": {"uv": [11, 5, 12, 4], "texture": "#0"}, + "down": {"uv": [12, 4, 13, 5], "texture": "#0"} + } + }, + { + "name": "right_arm", + "from": [4, 12, -2], + "to": [8, 24, 2], + "faces": { + "north": {"uv": [11, 5, 12, 8], "texture": "#0"}, + "east": {"uv": [10, 5, 11, 8], "texture": "#0"}, + "south": {"uv": [13, 5, 14, 8], "texture": "#0"}, + "west": {"uv": [12, 5, 13, 8], "texture": "#0"}, + "up": {"uv": [12, 5, 11, 4], "texture": "#0"}, + "down": {"uv": [13, 4, 12, 5], "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/core/src/main/resourceExtensions/assets/minecraft/models/entity/zombie/baby.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/zombie/baby.json new file mode 100644 index 000000000..3e3d99832 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/zombie/baby.json @@ -0,0 +1,132 @@ +{ + "format_version": "1.21.6", + "credit": "Model by Miraculixx", + "texture_size": [64, 64], + "textures": { + "0": "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, 4.8, -0.8], + "to": [-1.61, 9.6, 0.8], + "rotation": {"angle": 0, "axis": "y", "origin": [-0.01, 0, 0]}, + "faces": { + "north": {"uv": [12, 5, 11, 8], "texture": "#0"}, + "east": {"uv": [13, 5, 12, 8], "texture": "#0"}, + "south": {"uv": [14, 5, 13, 8], "texture": "#0"}, + "west": {"uv": [11, 5, 10, 8], "texture": "#0"}, + "up": {"uv": [11, 5, 12, 4], "texture": "#0"}, + "down": {"uv": [12, 4, 13, 5], "texture": "#0"} + } + }, + { + "name": "right_arm", + "from": [1.59, 4.8, -0.8], + "to": [3.19, 9.6, 0.8], + "rotation": {"angle": 0, "axis": "y", "origin": [-0.01, 0, 0]}, + "faces": { + "north": {"uv": [11, 5, 12, 8], "texture": "#0"}, + "east": {"uv": [10, 5, 11, 8], "texture": "#0"}, + "south": {"uv": [13, 5, 14, 8], "texture": "#0"}, + "west": {"uv": [12, 5, 13, 8], "texture": "#0"}, + "up": {"uv": [12, 5, 11, 4], "texture": "#0"}, + "down": {"uv": [13, 4, 12, 5], "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