diff --git a/build.gradle b/build.gradle index 4826ad5..1921a1e 100644 --- a/build.gradle +++ b/build.gradle @@ -105,8 +105,9 @@ repositories { } dependencies { - compileOnly "top.theillusivec4.curios:curios-neoforge:${project.curios_version}+${project.minecraft_version}" + compileOnly "top.theillusivec4.curios:curios-neoforge:${project.curios_version}+${project.minecraft_version}:api" runtimeOnly "top.theillusivec4.curios:curios-neoforge:${project.curios_version}+${project.minecraft_version}" + // Example optional mod dependency with JEI // The JEI API is declared for compile time use, while the full JEI artifact is used at runtime // compileOnly "mezz.jei:jei-${mc_version}-common-api:${jei_version}" diff --git a/src/main/java/fr/sushi/charmsnfabrics/client/CharmsAndFabricsLayers.java b/src/main/java/fr/sushi/charmsnfabrics/client/CharmsAndFabricsLayers.java new file mode 100644 index 0000000..429f56c --- /dev/null +++ b/src/main/java/fr/sushi/charmsnfabrics/client/CharmsAndFabricsLayers.java @@ -0,0 +1,12 @@ +package fr.sushi.charmsnfabrics.client; + +import fr.sushi.charmsnfabrics.CharmsAndFabrics; +import net.minecraft.client.model.geom.ModelLayerLocation; +import net.minecraft.resources.ResourceLocation; + +public class CharmsAndFabricsLayers +{ + public static final ModelLayerLocation CROWN_LAYER = new ModelLayerLocation( + ResourceLocation.fromNamespaceAndPath(CharmsAndFabrics.MODID, + "flower_crown_model"), "crown"); +} diff --git a/src/main/java/fr/sushi/charmsnfabrics/client/CharmsFabricsClient.java b/src/main/java/fr/sushi/charmsnfabrics/client/CharmsFabricsClient.java index 964a261..355f328 100644 --- a/src/main/java/fr/sushi/charmsnfabrics/client/CharmsFabricsClient.java +++ b/src/main/java/fr/sushi/charmsnfabrics/client/CharmsFabricsClient.java @@ -1,15 +1,16 @@ package fr.sushi.charmsnfabrics.client; import fr.sushi.charmsnfabrics.CharmsAndFabrics; +import fr.sushi.charmsnfabrics.client.model.FlowerCrownModel; import fr.sushi.charmsnfabrics.client.renderer.FlowerCrownRenderer; import fr.sushi.charmsnfabrics.common.CharmsAndFabricRegistries; import net.neoforged.api.distmarker.Dist; -import net.neoforged.bus.api.IEventBus; import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.fml.ModContainer; import net.neoforged.fml.common.EventBusSubscriber; import net.neoforged.fml.common.Mod; import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent; +import net.neoforged.neoforge.client.event.EntityRenderersEvent; import net.neoforged.neoforge.client.gui.ConfigurationScreen; import net.neoforged.neoforge.client.gui.IConfigScreenFactory; import top.theillusivec4.curios.api.client.ICurioRenderer; @@ -31,4 +32,12 @@ public class CharmsFabricsClient CharmsAndFabricRegistries.Items.FLOWER_CROWN.get(), FlowerCrownRenderer::new); } + + @SubscribeEvent + private static void onRegisterLayerDefinitions( + final EntityRenderersEvent.RegisterLayerDefinitions event) + { + event.registerLayerDefinition(CharmsAndFabricsLayers.CROWN_LAYER, + FlowerCrownModel::createLayer); + } } diff --git a/src/main/java/fr/sushi/charmsnfabrics/client/model/FlowerCrownModel.java b/src/main/java/fr/sushi/charmsnfabrics/client/model/FlowerCrownModel.java index fcc48bc..a6f0a7e 100644 --- a/src/main/java/fr/sushi/charmsnfabrics/client/model/FlowerCrownModel.java +++ b/src/main/java/fr/sushi/charmsnfabrics/client/model/FlowerCrownModel.java @@ -1,6 +1,111 @@ package fr.sushi.charmsnfabrics.client.model; -public class FlowerCrownModel -{ +import net.minecraft.client.model.HumanoidModel; +import net.minecraft.client.model.geom.ModelPart; +import net.minecraft.client.model.geom.PartPose; +import net.minecraft.client.model.geom.builders.*; +import net.minecraft.client.renderer.entity.state.HumanoidRenderState; -} +public class FlowerCrownModel extends HumanoidModel +{ + private final ModelPart crown; + private final ModelPart flowers; + + public FlowerCrownModel(ModelPart root) + { + super(root); + this.crown = this.getHead().getChild("crown"); + this.flowers = this.getHead().getChild("flowers"); + } + + public static LayerDefinition createLayer() + { + MeshDefinition meshdefinition = + HumanoidModel.createMesh(CubeDeformation.NONE, 0.0f); + PartDefinition partdefinition = meshdefinition.getRoot(); + PartDefinition partDefinition1 = partdefinition.clearChild("head"); + partDefinition1.clearChild("hat"); + partdefinition.clearChild("body"); + partdefinition.clearChild("left_arm"); + partdefinition.clearChild("right_arm"); + partdefinition.clearChild("left_leg"); + partdefinition.clearChild("right_leg"); + PartDefinition crown = partDefinition1.addOrReplaceChild("crown", + CubeListBuilder.create().texOffs(0, 0) + .addBox(-4.0F, -2.0F, -4.0F, 8.0F, 2.0F, 8.0F), + PartPose.offset(0.0F, -6.0F, 0.0F)); + PartDefinition cube_r1 = crown.addOrReplaceChild("cube_r1", + CubeListBuilder.create().texOffs(0, 7) + .addBox(0.0F, -2.0F, -5.0F, 0.0F, 3.0F, 10.0F), + PartPose.offsetAndRotation(4.0F, -1.5F, 0.0F, -3.1416F, 0.0F, + -2.7489F)); + PartDefinition cube_r2 = crown.addOrReplaceChild("cube_r2", + CubeListBuilder.create().texOffs(0, 7) + .addBox(0.0F, -2.0F, -5.0F, 0.0F, 3.0F, 10.0F), + PartPose.offsetAndRotation(4.0F, -0.5F, 0.0F, 0.0F, 0.0F, + 2.7489F)); + PartDefinition cube_r3 = crown.addOrReplaceChild("cube_r3", + CubeListBuilder.create().texOffs(0, 1) + .addBox(0.0F, -2.0F, -5.0F, 0.0F, 3.0F, 10.0F), + PartPose.offsetAndRotation(-4.0F, -1.5F, 0.0F, -3.1416F, 0.0F, + 2.7489F)); + PartDefinition cube_r4 = crown.addOrReplaceChild("cube_r4", + CubeListBuilder.create().texOffs(0, 1) + .addBox(0.0F, -2.0F, -5.0F, 0.0F, 3.0F, 10.0F), + PartPose.offsetAndRotation(-4.0F, -0.5F, 0.0F, 0.0F, 0.0F, + -2.7489F)); + PartDefinition cube_r5 = crown.addOrReplaceChild("cube_r5", + CubeListBuilder.create().texOffs(0, 20) + .addBox(-5.0F, -2.0F, 0.0F, 10.0F, 3.0F, 0.0F), + PartPose.offsetAndRotation(0.0F, -1.5F, 4.0F, -0.3927F, 0.0F, + 0.0F)); + PartDefinition cube_r6 = crown.addOrReplaceChild("cube_r6", + CubeListBuilder.create().texOffs(0, 20) + .addBox(-5.0F, -2.0F, 0.0F, 10.0F, 3.0F, 0.0F), + PartPose.offsetAndRotation(0.0F, -0.5F, 4.0F, -0.3927F, 0.0F, + -3.1416F)); + PartDefinition cube_r7 = crown.addOrReplaceChild("cube_r7", + CubeListBuilder.create().texOffs(0, 14) + .addBox(-5.0F, -2.0F, 0.0F, 10.0F, 3.0F, 0.0F), + PartPose.offsetAndRotation(0.0F, -1.5F, -4.0F, 2.7489F, 0.0F, + 3.1416F)); + PartDefinition cube_r8 = crown.addOrReplaceChild("cube_r8", + CubeListBuilder.create().texOffs(0, 14) + .addBox(-5.0F, -2.0F, 0.0F, 10.0F, 3.0F, 0.0F), + PartPose.offsetAndRotation(0.0F, -0.5F, -4.0F, 2.7489F, 0.0F, + 0.0F)); + PartDefinition flowers = partDefinition1.addOrReplaceChild("flowers", + CubeListBuilder.create().texOffs(0, 23) + .addBox(0.0F, -4.0F, -5.0F, 4.0F, 4.0F, 0.0F) + .texOffs(8, 23) + .addBox(5.0F, -2.0F, -4.0F, 0.0F, 3.0F, 3.0F) + .texOffs(0, 19) + .addBox(5.0F, -3.0F, 0.0F, 0.0F, 4.0F, 4.0F) + .texOffs(0, 27) + .addBox(-5.0F, -3.0F, -5.0F, 4.0F, 4.0F, 0.0F) + .texOffs(8, 26) + .addBox(2.0F, -4.0F, 4.5F, 3.0F, 3.0F, 0.0F) + .texOffs(8, 23) + .addBox(-1.0F, -2.0F, 4.5F, 3.0F, 3.0F, 0.0F) + .texOffs(0, 27) + .addBox(-5.0F, -4.0F, 4.5F, 4.0F, 4.0F, 0.0F) + .texOffs(8, 20) + .addBox(-4.5F, -2.0F, 1.25F, 0.0F, 3.0F, 3.0F) + .texOffs(0, 19) + .addBox(-5.0F, -4.0F, -3.75F, 0.0F, 4.0F, 4.0F), + PartPose.offset(0.0F, -6.0F, 0.0F)); + return LayerDefinition.create(meshdefinition, 32, 32); + } + + @Override + public void setupAnim(HumanoidRenderState renderState) + { + super.setupAnim(renderState); + this.flowers.xScale = 1.2f; + this.flowers.yScale = 1.2f; + this.flowers.zScale = 1.2f; + this.crown.xScale = 1.2f; + this.crown.yScale = 1.2f; + this.crown.zScale = 1.2f; + } +} \ No newline at end of file diff --git a/src/main/java/fr/sushi/charmsnfabrics/client/renderer/FlowerCrownRenderer.java b/src/main/java/fr/sushi/charmsnfabrics/client/renderer/FlowerCrownRenderer.java index 3c55b5a..735a45b 100644 --- a/src/main/java/fr/sushi/charmsnfabrics/client/renderer/FlowerCrownRenderer.java +++ b/src/main/java/fr/sushi/charmsnfabrics/client/renderer/FlowerCrownRenderer.java @@ -1,11 +1,20 @@ package fr.sushi.charmsnfabrics.client.renderer; import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; +import fr.sushi.charmsnfabrics.client.CharmsAndFabricsLayers; +import fr.sushi.charmsnfabrics.client.model.FlowerCrownModel; +import fr.sushi.charmsnfabrics.common.item.FlowerCrown; +import net.minecraft.client.Minecraft; import net.minecraft.client.model.EntityModel; import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.entity.EntityRendererProvider; +import net.minecraft.client.renderer.entity.ItemRenderer; import net.minecraft.client.renderer.entity.RenderLayerParent; import net.minecraft.client.renderer.entity.state.LivingEntityRenderState; +import net.minecraft.client.renderer.texture.OverlayTexture; +import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; import org.jetbrains.annotations.NotNull; import top.theillusivec4.curios.api.SlotContext; @@ -13,9 +22,32 @@ import top.theillusivec4.curios.api.client.ICurioRenderer; public class FlowerCrownRenderer implements ICurioRenderer { - @Override - public > void render(ItemStack stack, SlotContext slotContext, PoseStack poseStack, @NotNull MultiBufferSource renderTypeBuffer, int packedLight, S renderState, RenderLayerParent renderLayerParent, EntityRendererProvider.Context context, float yRotation, float xRotation) + private final FlowerCrownModel model; + + public FlowerCrownRenderer() { - System.out.println("UwU"); + this.model = new FlowerCrownModel( + Minecraft.getInstance().getEntityModels() + .bakeLayer(CharmsAndFabricsLayers.CROWN_LAYER)); + } + + @Override + public > void render( + ItemStack stack, SlotContext slotContext, PoseStack poseStack, + @NotNull MultiBufferSource renderTypeBuffer, int packedLight, + S renderState, RenderLayerParent renderLayerParent, + EntityRendererProvider.Context context, float yRotation, + float xRotation) + { + FlowerCrown item = (FlowerCrown) stack.getItem(); + ResourceLocation texture = item.getModelTexture(); + VertexConsumer vertexconsumer = + ItemRenderer.getArmorFoilBuffer(renderTypeBuffer, + RenderType.entityCutout( + texture), + stack.hasFoil()); + ICurioRenderer.setupHumanoidAnimations(this.model, renderState); + this.model.renderToBuffer(poseStack, vertexconsumer, packedLight, + OverlayTexture.NO_OVERLAY); } } diff --git a/src/main/java/fr/sushi/charmsnfabrics/common/item/FlowerCrown.java b/src/main/java/fr/sushi/charmsnfabrics/common/item/FlowerCrown.java index 26fa226..80bb504 100644 --- a/src/main/java/fr/sushi/charmsnfabrics/common/item/FlowerCrown.java +++ b/src/main/java/fr/sushi/charmsnfabrics/common/item/FlowerCrown.java @@ -1,5 +1,9 @@ package fr.sushi.charmsnfabrics.common.item; +import fr.sushi.charmsnfabrics.CharmsAndFabrics; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import top.theillusivec4.curios.api.SlotContext; @@ -17,4 +21,16 @@ public class FlowerCrown extends Item implements ICurioItem { return slotContext.identifier().contains("head"); } + + @Override + public boolean canEquip(SlotContext slotContext, ItemStack stack) + { + return slotContext.identifier().contains("head"); + } + + public ResourceLocation getModelTexture() + { + return ResourceLocation.fromNamespaceAndPath(CharmsAndFabrics.MODID, + "textures/models/accessory/flower_crown.png"); + } } diff --git a/src/main/resources/assets/charmsnfabrics/geckolib/models/item/flower_crown.geo.json b/src/main/resources/assets/charmsnfabrics/geckolib/models/item/flower_crown.geo.json deleted file mode 100644 index f79e3be..0000000 --- a/src/main/resources/assets/charmsnfabrics/geckolib/models/item/flower_crown.geo.json +++ /dev/null @@ -1,248 +0,0 @@ -{ - "format_version": "1.12.0", - "minecraft:geometry": [ - { - "description": { - "identifier": "geometry.flower_crown", - "texture_width": 64, - "texture_height": 64, - "visible_bounds_width": 2, - "visible_bounds_height": 3.5, - "visible_bounds_offset": [0, 1.25, 0] - }, - "bones": [ - { - "name": "bipedHead", - "pivot": [0, 24, 0] - }, - { - "name": "armorHead", - "parent": "bipedHead", - "pivot": [0, 29, 0] - }, - { - "name": "ring", - "parent": "armorHead", - "pivot": [0, 31, 4.2], - "cubes": [ - {"origin": [-4.1, 31, 4.1], "size": [8.2, 2, 0], "uv": [48, 28]}, - {"origin": [-4.1, 31, -4.1], "size": [8.2, 2, 0], "uv": [48, 14]}, - {"origin": [4.1, 31, -4.1], "size": [0, 2, 8.2], "uv": [48, -1]}, - {"origin": [-4.1, 31, -4.1], "size": [0, 2, 8.2], "uv": [48, 13]}, - {"origin": [1, 33, 4.1], "size": [2, 1, 0], "uv": [49, 27]}, - {"origin": [4.1, 33, -3], "size": [0, 1, 5], "uv": [49, 1]}, - {"origin": [-4.1, 33, -1], "size": [0, 1, 3], "uv": [50, 17]}, - {"origin": [-4.1, 34, -1], "size": [0, 1, 1], "uv": [52, 18]}, - {"origin": [-4.1, 34, 1], "size": [0, 1, 1], "uv": [50, 18]}, - {"origin": [-4.1, 33, -4.1], "size": [0, 1, 2.1], "uv": [54, 18]}, - {"origin": [-4.1, 34, -4.1], "size": [0, 2, 1.1], "uv": [55, 17]}, - {"origin": [-4.1, 33, 3], "size": [0, 1, 1.1], "uv": [48, 19]}, - {"origin": [4.1, 34, -2], "size": [0, 1, 1], "uv": [50, 4]}, - {"origin": [4.1, 33, 2], "size": [0, 2, 1], "uv": [54, 4]}, - {"origin": [4.1, 34, 0], "size": [0, 2, 1], "uv": [52, 3]}, - {"origin": [1, 34, 4.1], "size": [1, 1, 0], "uv": [50, 26]}, - {"origin": [-2, 33, 4.1], "size": [1, 3, 0], "uv": [53, 25]}, - {"origin": [-3, 33, 4.1], "size": [1, 1, 0], "uv": [54, 27]}, - {"origin": [-4.1, 33, 4.1], "size": [1.1, 2, 0], "uv": [55, 26]}, - {"origin": [-4.1, 33, -4.1], "size": [1.1, 2, 0], "uv": [48, 12]}, - {"origin": [-2, 33, -4.1], "size": [4, 1, 0], "uv": [50, 13]}, - {"origin": [1, 34, -4.1], "size": [1, 2, 0], "uv": [53, 11]}, - {"origin": [3, 33, -4.1], "size": [1, 1, 0], "uv": [55, 13]}, - {"origin": [-1, 34, -4.1], "size": [1, 1, 0], "uv": [51, 12]} - ] - }, - { - "name": "flowers", - "parent": "armorHead", - "pivot": [0, 32, 0] - }, - { - "name": "flower1", - "parent": "flowers", - "pivot": [-2.8, 32.1, -4.2], - "cubes": [ - {"origin": [-1.8, 31.1, -4.2], "size": [1, 2, 0], "pivot": [-2.8, 32.1, -4.2], "rotation": [0, 0, -15], "uv": [48, 1]}, - {"origin": [-3.8, 30.1, -4.2], "size": [2, 4, 0], "pivot": [-2.8, 32.1, -4.2], "rotation": [0, 0, -15], "uv": [50, 0]}, - {"origin": [-4.8, 31.1, -4.2], "size": [1, 2, 0], "pivot": [-2.8, 32.1, -4.2], "rotation": [0, 0, -15], "uv": [48, 1]} - ] - }, - { - "name": "flower10", - "parent": "flowers", - "pivot": [3.1, 32, -4.2], - "rotation": [0, 0, 25], - "cubes": [ - {"origin": [4.1, 31, -4.2], "size": [1, 2, 0], "pivot": [3.1, 32, -4.2], "rotation": [0, 0, -15], "uv": [48, 1]}, - {"origin": [2.1, 30, -4.2], "size": [2, 4, 0], "pivot": [3.1, 32, -4.2], "rotation": [0, 0, -15], "uv": [50, 0]}, - {"origin": [1.1, 31, -4.2], "size": [1, 2, 0], "pivot": [3.1, 32, -4.2], "rotation": [0, 0, -15], "uv": [48, 1]} - ] - }, - { - "name": "flower8", - "parent": "flowers", - "pivot": [2.5, 31.4, 4.2], - "rotation": [0, 180, 0], - "cubes": [ - {"origin": [3.5, 30.4, 4.2], "size": [1, 2, 0], "pivot": [2.5, 31.4, 4.2], "rotation": [0, 0, -15], "uv": [48, 1]}, - {"origin": [1.5, 29.4, 4.2], "size": [2, 4, 0], "pivot": [2.5, 31.4, 4.2], "rotation": [0, 0, -15], "uv": [50, 0]}, - {"origin": [0.5, 30.4, 4.2], "size": [1, 2, 0], "pivot": [2.5, 31.4, 4.2], "rotation": [0, 0, -15], "uv": [48, 1]} - ] - }, - { - "name": "flower6", - "parent": "flowers", - "pivot": [-2.7, 32.1, 4.2], - "rotation": [180, 0, 140], - "cubes": [ - {"origin": [-1.7, 31.1, 4.2], "size": [1, 2, 0], "pivot": [-2.7, 32.1, 4.2], "rotation": [0, 0, -15], "uv": [48, 1]}, - {"origin": [-3.7, 30.1, 4.2], "size": [2, 4, 0], "pivot": [-2.7, 32.1, 4.2], "rotation": [0, 0, -15], "uv": [50, 0]}, - {"origin": [-4.7, 31.1, 4.2], "size": [1, 2, 0], "pivot": [-2.7, 32.1, 4.2], "rotation": [0, 0, -15], "uv": [48, 1]} - ] - }, - { - "name": "flower3", - "parent": "flowers", - "pivot": [4.3, 31.8, 0.2], - "rotation": [-90, -72.5, 90], - "cubes": [ - {"origin": [3.3, 29.8, 0.2], "size": [2, 4, 0], "uv": [56, 0]}, - {"origin": [2.3, 30.8, 0.2], "size": [1, 2, 0], "uv": [54, 1]}, - {"origin": [5.3, 30.8, 0.2], "size": [1, 2, 0], "uv": [54, 1]} - ] - }, - { - "name": "flower9", - "parent": "flowers", - "pivot": [-4.2, 31.3, -0.2], - "rotation": [-90, 82.5, -90], - "cubes": [ - {"origin": [-5.30856, 29.16947, -0.3], "size": [2, 4, 0], "uv": [56, 0]}, - {"origin": [-6.30856, 30.16947, -0.3], "size": [1, 2, 0], "uv": [54, 1]}, - {"origin": [-3.30856, 30.16947, -0.3], "size": [1, 2, 0], "uv": [54, 1]} - ] - }, - { - "name": "flower4", - "parent": "flowers", - "pivot": [4.2, 33.6, 2.6], - "rotation": [90, -57.5, -90], - "cubes": [ - {"origin": [3.2, 31.6, 2.6], "size": [2, 4, 0], "uv": [50, 0]}, - {"origin": [2.2, 32.6, 2.6], "size": [1, 2, 0], "uv": [48, 1]}, - {"origin": [5.2, 32.6, 2.6], "size": [1, 2, 0], "uv": [48, 1]} - ] - }, - { - "name": "flower12", - "parent": "flowers", - "pivot": [4.2, 33.3, -2.7], - "rotation": [89.99998, -80, -89.99998], - "cubes": [ - {"origin": [3.2, 31.3, -2.7], "size": [2, 4, 0], "uv": [50, 0]}, - {"origin": [2.2, 32.3, -2.7], "size": [1, 2, 0], "uv": [48, 1]}, - {"origin": [5.2, 32.3, -2.7], "size": [1, 2, 0], "uv": [48, 1]} - ] - }, - { - "name": "flower5", - "parent": "flowers", - "pivot": [-4.2, 32.5, 2.8], - "rotation": [-90, -70.5, 90], - "cubes": [ - {"origin": [-5.2, 30.5, 2.8], "size": [2, 4, 0], "uv": [50, 0]}, - {"origin": [-6.2, 31.5, 2.8], "size": [1, 2, 0], "uv": [48, 1]}, - {"origin": [-3.2, 31.5, 2.8], "size": [1, 2, 0], "uv": [48, 1]} - ] - }, - { - "name": "flower2", - "parent": "flowers", - "pivot": [-4.2, 33.1, -2.9], - "rotation": [90, -67.5, -90], - "cubes": [ - {"origin": [-5.2, 31.1, -2.9], "size": [2, 4, 0], "uv": [50, 0]}, - {"origin": [-6.2, 32.1, -2.9], "size": [1, 2, 0], "uv": [48, 1]}, - {"origin": [-3.2, 32.1, -2.9], "size": [1, 2, 0], "uv": [48, 1]} - ] - }, - { - "name": "flower7", - "parent": "flowers", - "pivot": [0.2, 33.8, -4.3], - "rotation": [0, 0, 7], - "cubes": [ - {"origin": [-0.8, 31.8, -4.3], "size": [2, 4, 0], "uv": [56, 0]}, - {"origin": [-1.8, 32.8, -4.3], "size": [1, 2, 0], "uv": [54, 1]}, - {"origin": [1.2, 32.8, -4.3], "size": [1, 2, 0], "uv": [54, 1]} - ] - }, - { - "name": "flower11", - "parent": "flowers", - "pivot": [0.2, 33.8, 4.3], - "rotation": [0, 0, -8], - "cubes": [ - {"origin": [-0.8, 31.8, 4.3], "size": [2, 4, 0], "uv": [56, 0]}, - {"origin": [-1.8, 32.8, 4.3], "size": [1, 2, 0], "uv": [54, 1]}, - {"origin": [1.2, 32.8, 4.3], "size": [1, 2, 0], "uv": [54, 1]} - ] - }, - { - "name": "bipedBody", - "pivot": [0, 24, 0] - }, - { - "name": "armorBody", - "parent": "bipedBody", - "pivot": [0, 24, 0] - }, - { - "name": "bipedRightArm", - "pivot": [-5, 22, 0] - }, - { - "name": "armorRightArm", - "parent": "bipedRightArm", - "pivot": [-5, 22, 0] - }, - { - "name": "bipedLeftArm", - "pivot": [5, 22, 0] - }, - { - "name": "armorLeftArm", - "parent": "bipedLeftArm", - "pivot": [5, 22, 0] - }, - { - "name": "bipedLeftLeg", - "pivot": [2, 12, 0] - }, - { - "name": "armorLeftLeg", - "parent": "bipedLeftLeg", - "pivot": [2, 12, 0] - }, - { - "name": "armorLeftBoot", - "parent": "bipedLeftLeg", - "pivot": [2, 12, 0] - }, - { - "name": "bipedRightLeg", - "pivot": [-2, 12, 0] - }, - { - "name": "armorRightLeg", - "parent": "bipedRightLeg", - "pivot": [-2, 12, 0] - }, - { - "name": "armorRightBoot", - "parent": "bipedRightLeg", - "pivot": [-2, 12, 0] - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/charmsnfabrics/textures/models/accessory/flower_crown.png b/src/main/resources/assets/charmsnfabrics/textures/models/accessory/flower_crown.png new file mode 100644 index 0000000..3c2b5ef Binary files /dev/null and b/src/main/resources/assets/charmsnfabrics/textures/models/accessory/flower_crown.png differ diff --git a/src/main/resources/data/charmsnfabrics/curios/entities/entities.json b/src/main/resources/data/charmsnfabrics/curios/entities/entities.json index 8d653b2..0055be7 100644 --- a/src/main/resources/data/charmsnfabrics/curios/entities/entities.json +++ b/src/main/resources/data/charmsnfabrics/curios/entities/entities.json @@ -3,16 +3,6 @@ "minecraft:player", "minecraft:armor_stand" ], "slots": [ - "back", - "body", - "belt", - "bracelet", - "charm", - "curio", - "example", - "hands", - "head", - "necklace", - "ring" + "head" ] } \ No newline at end of file diff --git a/src/main/templates/META-INF/neoforge.mods.toml b/src/main/templates/META-INF/neoforge.mods.toml index b691b17..eadb321 100644 --- a/src/main/templates/META-INF/neoforge.mods.toml +++ b/src/main/templates/META-INF/neoforge.mods.toml @@ -86,6 +86,13 @@ description='''${mod_description}''' ordering="NONE" side="BOTH" +[[dependencies.${mod_id}]] + modId="curios" + type="required" + versionRange="[11.0.1,)" + ordering="BEFORE" + side="BOTH" + # Features are specific properties of the game environment, that you may want to declare you require. This example declares # that your mod requires GL version 3.2 or higher. Other features will be added. They are side aware so declaring this won't # stop your mod loading on the server for example.