From 8a5d79280c70b11aa02a164eef69c47c20d86dc0 Mon Sep 17 00:00:00 2001 From: SushiCannibale Date: Thu, 31 Jul 2025 18:22:24 +0200 Subject: [PATCH] fix: packedLight forced to 0xff + blank placeholder texture --- .../client/CharmsFabricsClient.java | 14 +++++- .../renderer/FloralWorkshopRenderer.java | 41 ++++++++++++++++++ .../block/FloralWorkshopBlockEntity.java | 3 ++ .../textures/block/floral_workshop.png | Bin 539 -> 99 bytes 4 files changed, 56 insertions(+), 2 deletions(-) create mode 100644 src/main/java/fr/sushi/charmsnfabrics/client/renderer/FloralWorkshopRenderer.java diff --git a/src/main/java/fr/sushi/charmsnfabrics/client/CharmsFabricsClient.java b/src/main/java/fr/sushi/charmsnfabrics/client/CharmsFabricsClient.java index 355f328..51ef968 100644 --- a/src/main/java/fr/sushi/charmsnfabrics/client/CharmsFabricsClient.java +++ b/src/main/java/fr/sushi/charmsnfabrics/client/CharmsFabricsClient.java @@ -2,6 +2,7 @@ package fr.sushi.charmsnfabrics.client; import fr.sushi.charmsnfabrics.CharmsAndFabrics; import fr.sushi.charmsnfabrics.client.model.FlowerCrownModel; +import fr.sushi.charmsnfabrics.client.renderer.FloralWorkshopRenderer; import fr.sushi.charmsnfabrics.client.renderer.FlowerCrownRenderer; import fr.sushi.charmsnfabrics.common.CharmsAndFabricRegistries; import net.neoforged.api.distmarker.Dist; @@ -22,7 +23,7 @@ public class CharmsFabricsClient public CharmsFabricsClient(ModContainer container) { container.registerExtensionPoint(IConfigScreenFactory.class, - ConfigurationScreen::new); + ConfigurationScreen::new); } @SubscribeEvent @@ -38,6 +39,15 @@ public class CharmsFabricsClient final EntityRenderersEvent.RegisterLayerDefinitions event) { event.registerLayerDefinition(CharmsAndFabricsLayers.CROWN_LAYER, - FlowerCrownModel::createLayer); + FlowerCrownModel::createLayer); + } + + @SubscribeEvent + private static void onRegisterRenderers( + final EntityRenderersEvent.RegisterRenderers event) + { + event.registerBlockEntityRenderer( + CharmsAndFabricRegistries.Entities.FLORAL_BLOCK_ENTITY.get(), + FloralWorkshopRenderer::new); } } diff --git a/src/main/java/fr/sushi/charmsnfabrics/client/renderer/FloralWorkshopRenderer.java b/src/main/java/fr/sushi/charmsnfabrics/client/renderer/FloralWorkshopRenderer.java new file mode 100644 index 0000000..403c2bf --- /dev/null +++ b/src/main/java/fr/sushi/charmsnfabrics/client/renderer/FloralWorkshopRenderer.java @@ -0,0 +1,41 @@ +package fr.sushi.charmsnfabrics.client.renderer; + +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; +import fr.sushi.charmsnfabrics.CharmsAndFabrics; +import fr.sushi.charmsnfabrics.client.CharmsAndFabricsLayers; +import fr.sushi.charmsnfabrics.client.model.FlowerCrownModel; +import fr.sushi.charmsnfabrics.common.entities.block.FloralWorkshopBlockEntity; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.blockentity.BlockEntityRenderer; +import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.phys.Vec3; + +public class FloralWorkshopRenderer implements BlockEntityRenderer +{ + private final FlowerCrownModel model; + + public FloralWorkshopRenderer(BlockEntityRendererProvider.Context ctx) + { + this.model = new FlowerCrownModel( + ctx.bakeLayer(CharmsAndFabricsLayers.CROWN_LAYER)); + } + + @Override + public void render(FloralWorkshopBlockEntity blockEntity, float partialTick, + PoseStack poseStack, MultiBufferSource bufferSource, + int packedLight, int packedOverlay, Vec3 cameraPos) + { + poseStack.pushPose(); + poseStack.translate(0.5f, 1.625f, 0.5f); + ResourceLocation texture = ResourceLocation.fromNamespaceAndPath( + CharmsAndFabrics.MODID, + "textures/models/accessory/flower_crown.png"); + VertexConsumer consumer = bufferSource.getBuffer(RenderType.entityCutout(texture)); + this.model.renderToBuffer(poseStack, consumer, 0xff, packedOverlay); + poseStack.popPose(); + } +} diff --git a/src/main/java/fr/sushi/charmsnfabrics/common/entities/block/FloralWorkshopBlockEntity.java b/src/main/java/fr/sushi/charmsnfabrics/common/entities/block/FloralWorkshopBlockEntity.java index f0acb5f..19e8172 100644 --- a/src/main/java/fr/sushi/charmsnfabrics/common/entities/block/FloralWorkshopBlockEntity.java +++ b/src/main/java/fr/sushi/charmsnfabrics/common/entities/block/FloralWorkshopBlockEntity.java @@ -2,6 +2,8 @@ package fr.sushi.charmsnfabrics.common.entities.block; import fr.sushi.charmsnfabrics.common.CharmsAndFabricRegistries; import net.minecraft.core.BlockPos; +import net.minecraft.core.HolderLookup; +import net.minecraft.nbt.CompoundTag; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; @@ -12,4 +14,5 @@ public class FloralWorkshopBlockEntity extends BlockEntity super(CharmsAndFabricRegistries.Entities.FLORAL_BLOCK_ENTITY.get(), pos, blockState); } + } diff --git a/src/main/resources/assets/charmsnfabrics/textures/block/floral_workshop.png b/src/main/resources/assets/charmsnfabrics/textures/block/floral_workshop.png index 1789647aa385eb1c7b78450cb7c40334c38f59a6..69b32252da236edaebf03d28282ac3f4353508f0 100644 GIT binary patch delta 57 zcmbQul03n{m_gRl#WBR9H~G)MzrX9*xEO?0XSwrAm?m6lIGDn~z*WV<(zmqkAp;P2 My85}Sb4q9e06uUNIsgCw delta 500 zcmV*?;^JW)QS}@@-Zd0 zx_wfmHo#b*R;)ZqKAtX<=?%$RiHIY40)Q#xT&Jn3wzUyi0hT{~#F&`@Ak!OaMy9A| ztpu)PlPa}If99*$)&{?7-?V{bzN%z_hA4wfZ%D4wBx@zK5i9+#840nta>T@0dh9?H zg$z&_4e8tTs*`%);bcr>Pm4q9%k^w-2BdiiiXp4m$D#u@pvq?i$aJ>tTT1 qg(a<81s+8H2nwSCy9-O|Q1BOM;@)BWVAPlZ0000