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..810f51e8e --- /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(resourcePack::getModel), 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..84d2199a0 --- /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(resourcePack::getModel), 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..b624bcd0d --- /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(resourcePack::getModel), 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..efb3ec516 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,26 @@ 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); + Registry REGISTRY = new Registry<>( DEFAULT, - MISSING + MISSING, + LLAMA, + BEE, + CAT, + OCELOT, + CHICKEN, + FOX, + PIG, + TROPICAL_FISH ); /** 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..f8d0c6a50 --- /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(resourcePack::getModel), 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..056a182ee --- /dev/null +++ b/core/src/main/java/de/bluecolored/bluemap/core/map/hires/entity/LlamaRenderer.java @@ -0,0 +1,85 @@ +/* + * 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 + LAMA_CREAMY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/llama/llama_creamy"), + LAMA_WHITE = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/llama/llama_white"), + LAMA_BROWN = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/llama/llama_brown"), + LAMA_GRAY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/llama/llama_gray"), + LAMA_CHEST_CREAMY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/llama/llama_chest_creamy"), + LAMA_CHEST_WHITE = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/llama/llama_chest_white"), + LAMA_CHEST_BROWN = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/llama/llama_chest_brown"), + LAMA_CHEST_GRAY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/llama/llama_chest_gray"); + + 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; + + // choose correct model + ResourcePath model; + if (llama.isWithChest()) { + model = switch (llama.getVariant()) { + case CREAMY -> LAMA_CHEST_CREAMY; + case WHITE -> LAMA_CHEST_WHITE; + case BROWN -> LAMA_CHEST_BROWN; + case GRAY -> LAMA_CHEST_GRAY; + }; + } else { + model = switch (llama.getVariant()) { + case CREAMY -> LAMA_CREAMY; + case WHITE -> LAMA_WHITE; + case BROWN -> LAMA_BROWN; + case GRAY -> LAMA_GRAY; + }; + } + + // render chosen model + super.render(entity, block, model.getResource(resourcePack::getModel), 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..42b3f6e27 --- /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(resourcePack::getModel), 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..fd7de2138 --- /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(resourcePack::getModel), 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..6295892af --- /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(resourcePack::getModel), 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/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..ece167225 --- /dev/null +++ b/core/src/main/java/de/bluecolored/bluemap/core/world/mca/entity/Llama.java @@ -0,0 +1,48 @@ +/* + * This file is part of BlueMap, licensed under the MIT License (MIT). + * + * Copyright (c) Blue (Lukas Rieger) + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package de.bluecolored.bluemap.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 Llama extends MCAEntity { + + @NBTName("ChestedHorse") boolean withChest; + @NBTName("Variant") Variant variant; + + 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/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/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/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/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/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_brown.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/llama_brown.json new file mode 100644 index 000000000..aae282852 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/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/llama_chest.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/llama_chest.json new file mode 100644 index 000000000..574f232eb --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/llama_chest.json @@ -0,0 +1,199 @@ +{ + "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"} + } + }, + { + "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": "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] + }, + { + "name": "chest", + "origin": [8, 8, 8], + "color": 0, + "children": [9, 10] + } + ] +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/llama_chest_brown.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/llama_chest_brown.json new file mode 100644 index 000000000..c3f10eaa6 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/llama_chest_brown.json @@ -0,0 +1,6 @@ +{ + "parent": "entity/llama/llama_chest", + "textures": { + "0": "entity/llama/brown" + } +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/llama_chest_creamy.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/llama_chest_creamy.json new file mode 100644 index 000000000..9343fbd96 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/llama_chest_creamy.json @@ -0,0 +1,6 @@ +{ + "parent": "entity/llama/llama_chest", + "textures": { + "0": "entity/llama/creamy" + } +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/llama_chest_gray.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/llama_chest_gray.json new file mode 100644 index 000000000..d20989692 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/llama_chest_gray.json @@ -0,0 +1,6 @@ +{ + "parent": "entity/llama/llama_chest", + "textures": { + "0": "entity/llama/gray" + } +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/llama_chest_white.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/llama_chest_white.json new file mode 100644 index 000000000..620d259cd --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/llama_chest_white.json @@ -0,0 +1,6 @@ +{ + "parent": "entity/llama/llama_chest", + "textures": { + "0": "entity/llama/white" + } +} \ No newline at end of file diff --git a/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/llama_creamy.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/llama_creamy.json new file mode 100644 index 000000000..4d5dcbf21 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/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/llama_gray.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/llama_gray.json new file mode 100644 index 000000000..c230a772e --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/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/llama_white.json b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/llama_white.json new file mode 100644 index 000000000..e4aa22584 --- /dev/null +++ b/core/src/main/resourceExtensions/assets/minecraft/models/entity/llama/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/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