From b91e4aae21bd76a9381cd06019e655ac11a2d40a Mon Sep 17 00:00:00 2001 From: SushiCannibale Date: Sat, 2 Aug 2025 16:25:43 +0200 Subject: [PATCH 1/2] feat: datagen floral workbench block + flower crown item --- ...harmsFabricsClient.java => CnFClient.java} | 7 +++ ...msAndFabricsLayers.java => CnFLayers.java} | 0 .../client/datagen/CnFModelProvider.java | 53 +++++++++++++++++++ ...bricRegistries.java => CnFRegistries.java} | 0 ...java => FloralWorkstationBlockEntity.java} | 6 +-- .../blockstates/floral_workstation.json | 7 --- .../items/floral_workstation.json | 6 --- .../charmsnfabrics/items/flower_crown.json | 6 --- .../models/item/flower_crown.json | 6 --- 9 files changed, 62 insertions(+), 29 deletions(-) rename src/main/java/fr/sushi/charmsnfabrics/client/{CharmsFabricsClient.java => CnFClient.java} (87%) rename src/main/java/fr/sushi/charmsnfabrics/client/{CharmsAndFabricsLayers.java => CnFLayers.java} (100%) create mode 100644 src/main/java/fr/sushi/charmsnfabrics/client/datagen/CnFModelProvider.java rename src/main/java/fr/sushi/charmsnfabrics/common/{CharmsAndFabricRegistries.java => CnFRegistries.java} (100%) rename src/main/java/fr/sushi/charmsnfabrics/common/entities/block/{FloralWorkshopBlockEntity.java => FloralWorkstationBlockEntity.java} (62%) delete mode 100644 src/main/resources/assets/charmsnfabrics/blockstates/floral_workstation.json delete mode 100644 src/main/resources/assets/charmsnfabrics/items/floral_workstation.json delete mode 100644 src/main/resources/assets/charmsnfabrics/items/flower_crown.json delete mode 100644 src/main/resources/assets/charmsnfabrics/models/item/flower_crown.json diff --git a/src/main/java/fr/sushi/charmsnfabrics/client/CharmsFabricsClient.java b/src/main/java/fr/sushi/charmsnfabrics/client/CnFClient.java similarity index 87% rename from src/main/java/fr/sushi/charmsnfabrics/client/CharmsFabricsClient.java rename to src/main/java/fr/sushi/charmsnfabrics/client/CnFClient.java index 49bb4fc..97505a9 100644 --- a/src/main/java/fr/sushi/charmsnfabrics/client/CharmsFabricsClient.java +++ b/src/main/java/fr/sushi/charmsnfabrics/client/CnFClient.java @@ -1,6 +1,7 @@ package fr.sushi.charmsnfabrics.client; import fr.sushi.charmsnfabrics.CharmsAndFabrics; +import fr.sushi.charmsnfabrics.client.datagen.CnFModelProvider; import fr.sushi.charmsnfabrics.client.model.FlowerCrownModel; import fr.sushi.charmsnfabrics.client.renderer.FloralWorkstationRenderer; import fr.sushi.charmsnfabrics.client.renderer.FlowerCrownRenderer; @@ -14,6 +15,7 @@ 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 net.neoforged.neoforge.data.event.GatherDataEvent; import top.theillusivec4.curios.api.client.ICurioRenderer; @Mod(value = CharmsAndFabrics.MODID, dist = Dist.CLIENT) @@ -50,4 +52,9 @@ public class CharmsFabricsClient CharmsAndFabricRegistries.Entities.FLORAL_BLOCK_ENTITY.get(), FloralWorkstationRenderer::new); } + + @SubscribeEvent + private static void onGatherClientData(final GatherDataEvent.Client event) { + event.createProvider(CnFModelProvider::new); + } } diff --git a/src/main/java/fr/sushi/charmsnfabrics/client/CharmsAndFabricsLayers.java b/src/main/java/fr/sushi/charmsnfabrics/client/CnFLayers.java similarity index 100% rename from src/main/java/fr/sushi/charmsnfabrics/client/CharmsAndFabricsLayers.java rename to src/main/java/fr/sushi/charmsnfabrics/client/CnFLayers.java diff --git a/src/main/java/fr/sushi/charmsnfabrics/client/datagen/CnFModelProvider.java b/src/main/java/fr/sushi/charmsnfabrics/client/datagen/CnFModelProvider.java new file mode 100644 index 0000000..d5ef687 --- /dev/null +++ b/src/main/java/fr/sushi/charmsnfabrics/client/datagen/CnFModelProvider.java @@ -0,0 +1,53 @@ +package fr.sushi.charmsnfabrics.client.datagen; + +import fr.sushi.charmsnfabrics.CharmsAndFabrics; +import fr.sushi.charmsnfabrics.common.CnFRegistries; +import net.minecraft.client.data.models.BlockModelGenerators; +import net.minecraft.client.data.models.ItemModelGenerators; +import net.minecraft.client.data.models.ModelProvider; +import net.minecraft.client.data.models.MultiVariant; +import net.minecraft.client.data.models.model.ModelLocationUtils; +import net.minecraft.client.data.models.model.ModelTemplates; +import net.minecraft.client.renderer.item.BlockModelWrapper; +import net.minecraft.client.renderer.item.ClientItem; +import net.minecraft.data.PackOutput; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.block.Block; + +import java.util.Collections; + +public class CnFModelProvider extends ModelProvider +{ + public CnFModelProvider(PackOutput output) + { + super(output, CharmsAndFabrics.MODID); + } + + private void registerFloralWorkbench(BlockModelGenerators blockModels) + { + Block block = CnFRegistries.Blocks.FLORAL_WORKSTATION.get(); + ResourceLocation model = ModelLocationUtils.getModelLocation(block); + + MultiVariant variants = BlockModelGenerators.plainVariant(model); + blockModels.blockStateOutput.accept( + BlockModelGenerators.createSimpleBlock(block, variants) + .with(BlockModelGenerators.ROTATION_HORIZONTAL_FACING_ALT)); + // blockModels.modelOutput.accept(ModelLocationUtils.getModelLocation(block)); + } + + private void registerFlowerCrown(ItemModelGenerators itemModels) + { + Item item = CnFRegistries.Items.FLOWER_CROWN.get(); + + itemModels.generateFlatItem(item, ModelTemplates.FLAT_ITEM); + } + + @Override + protected void registerModels(BlockModelGenerators blockModels, + ItemModelGenerators itemModels) + { + this.registerFlowerCrown(itemModels); + this.registerFloralWorkbench(blockModels); + } +} diff --git a/src/main/java/fr/sushi/charmsnfabrics/common/CharmsAndFabricRegistries.java b/src/main/java/fr/sushi/charmsnfabrics/common/CnFRegistries.java similarity index 100% rename from src/main/java/fr/sushi/charmsnfabrics/common/CharmsAndFabricRegistries.java rename to src/main/java/fr/sushi/charmsnfabrics/common/CnFRegistries.java diff --git a/src/main/java/fr/sushi/charmsnfabrics/common/entities/block/FloralWorkshopBlockEntity.java b/src/main/java/fr/sushi/charmsnfabrics/common/entities/block/FloralWorkstationBlockEntity.java similarity index 62% rename from src/main/java/fr/sushi/charmsnfabrics/common/entities/block/FloralWorkshopBlockEntity.java rename to src/main/java/fr/sushi/charmsnfabrics/common/entities/block/FloralWorkstationBlockEntity.java index 19e8172..283994c 100644 --- a/src/main/java/fr/sushi/charmsnfabrics/common/entities/block/FloralWorkshopBlockEntity.java +++ b/src/main/java/fr/sushi/charmsnfabrics/common/entities/block/FloralWorkstationBlockEntity.java @@ -1,9 +1,7 @@ package fr.sushi.charmsnfabrics.common.entities.block; -import fr.sushi.charmsnfabrics.common.CharmsAndFabricRegistries; +import fr.sushi.charmsnfabrics.common.CnFRegistries; 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; @@ -11,7 +9,7 @@ public class FloralWorkshopBlockEntity extends BlockEntity { public FloralWorkshopBlockEntity(BlockPos pos, BlockState blockState) { - super(CharmsAndFabricRegistries.Entities.FLORAL_BLOCK_ENTITY.get(), pos, + super(CnFRegistries.Entities.FLORAL_BLOCK_ENTITY.get(), pos, blockState); } diff --git a/src/main/resources/assets/charmsnfabrics/blockstates/floral_workstation.json b/src/main/resources/assets/charmsnfabrics/blockstates/floral_workstation.json deleted file mode 100644 index 4c21d73..0000000 --- a/src/main/resources/assets/charmsnfabrics/blockstates/floral_workstation.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "charmsnfabrics:block/floral_workstation" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/charmsnfabrics/items/floral_workstation.json b/src/main/resources/assets/charmsnfabrics/items/floral_workstation.json deleted file mode 100644 index 7ca62bc..0000000 --- a/src/main/resources/assets/charmsnfabrics/items/floral_workstation.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "model": { - "type": "minecraft:model", - "model": "charmsnfabrics:block/floral_workstation" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/charmsnfabrics/items/flower_crown.json b/src/main/resources/assets/charmsnfabrics/items/flower_crown.json deleted file mode 100644 index efc1da8..0000000 --- a/src/main/resources/assets/charmsnfabrics/items/flower_crown.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "model": { - "type": "minecraft:model", - "model": "charmsnfabrics:item/flower_crown" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/charmsnfabrics/models/item/flower_crown.json b/src/main/resources/assets/charmsnfabrics/models/item/flower_crown.json deleted file mode 100644 index a6aaaa6..0000000 --- a/src/main/resources/assets/charmsnfabrics/models/item/flower_crown.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "charmsnfabrics:item/flower_crown" - } -} \ No newline at end of file From aa5adbd59e519b81ee0196702411b89413a9250a Mon Sep 17 00:00:00 2001 From: SushiCannibale Date: Sat, 2 Aug 2025 16:26:24 +0200 Subject: [PATCH 2/2] fix: rename + blockstates --- .../charmsnfabrics/CharmsAndFabrics.java | 25 +----------- .../charmsnfabrics/client/CnFClient.java | 12 +++--- .../charmsnfabrics/client/CnFLayers.java | 2 +- .../renderer/FloralWorkstationRenderer.java | 10 ++--- .../client/renderer/FlowerCrownRenderer.java | 4 +- .../charmsnfabrics/common/CnFRegistries.java | 10 ++--- .../common/block/FloralWorkstation.java | 39 ++++++++++++++++--- .../block/FloralWorkstationBlockEntity.java | 4 +- 8 files changed, 57 insertions(+), 49 deletions(-) diff --git a/src/main/java/fr/sushi/charmsnfabrics/CharmsAndFabrics.java b/src/main/java/fr/sushi/charmsnfabrics/CharmsAndFabrics.java index 85081a2..07a0dd0 100644 --- a/src/main/java/fr/sushi/charmsnfabrics/CharmsAndFabrics.java +++ b/src/main/java/fr/sushi/charmsnfabrics/CharmsAndFabrics.java @@ -1,38 +1,17 @@ package fr.sushi.charmsnfabrics; -import fr.sushi.charmsnfabrics.common.CharmsAndFabricRegistries; -import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.core.registries.Registries; -import net.minecraft.network.chat.Component; -import net.minecraft.world.food.FoodProperties; -import net.minecraft.world.item.BlockItem; -import net.minecraft.world.item.CreativeModeTab; -import net.minecraft.world.item.CreativeModeTabs; -import net.minecraft.world.item.Item; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.block.state.BlockBehaviour; -import net.minecraft.world.level.material.MapColor; +import fr.sushi.charmsnfabrics.common.CnFRegistries; import net.neoforged.bus.api.IEventBus; -import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.fml.common.Mod; import net.neoforged.fml.config.ModConfig; import net.neoforged.fml.ModContainer; -import net.neoforged.fml.event.lifecycle.FMLCommonSetupEvent; -import net.neoforged.neoforge.common.NeoForge; -import net.neoforged.neoforge.event.BuildCreativeModeTabContentsEvent; -import net.neoforged.neoforge.event.server.ServerStartingEvent; -import net.neoforged.neoforge.registries.DeferredBlock; -import net.neoforged.neoforge.registries.DeferredHolder; -import net.neoforged.neoforge.registries.DeferredItem; -import net.neoforged.neoforge.registries.DeferredRegister; @Mod(CharmsAndFabrics.MODID) public class CharmsAndFabrics { public static final String MODID = "charmsnfabrics"; public CharmsAndFabrics(IEventBus modEventBus, ModContainer modContainer) { - CharmsAndFabricRegistries.register(modEventBus); + CnFRegistries.register(modEventBus); modContainer.registerConfig(ModConfig.Type.COMMON, Config.SPEC); } diff --git a/src/main/java/fr/sushi/charmsnfabrics/client/CnFClient.java b/src/main/java/fr/sushi/charmsnfabrics/client/CnFClient.java index 97505a9..29bfc66 100644 --- a/src/main/java/fr/sushi/charmsnfabrics/client/CnFClient.java +++ b/src/main/java/fr/sushi/charmsnfabrics/client/CnFClient.java @@ -5,7 +5,7 @@ import fr.sushi.charmsnfabrics.client.datagen.CnFModelProvider; import fr.sushi.charmsnfabrics.client.model.FlowerCrownModel; import fr.sushi.charmsnfabrics.client.renderer.FloralWorkstationRenderer; import fr.sushi.charmsnfabrics.client.renderer.FlowerCrownRenderer; -import fr.sushi.charmsnfabrics.common.CharmsAndFabricRegistries; +import fr.sushi.charmsnfabrics.common.CnFRegistries; import net.neoforged.api.distmarker.Dist; import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.fml.ModContainer; @@ -20,9 +20,9 @@ import top.theillusivec4.curios.api.client.ICurioRenderer; @Mod(value = CharmsAndFabrics.MODID, dist = Dist.CLIENT) @EventBusSubscriber(modid = CharmsAndFabrics.MODID, value = Dist.CLIENT) -public class CharmsFabricsClient +public class CnFClient { - public CharmsFabricsClient(ModContainer container) + public CnFClient(ModContainer container) { container.registerExtensionPoint(IConfigScreenFactory.class, ConfigurationScreen::new); @@ -32,7 +32,7 @@ public class CharmsFabricsClient private static void onClientSetup(final FMLClientSetupEvent event) { ICurioRenderer.register( - CharmsAndFabricRegistries.Items.FLOWER_CROWN.get(), + CnFRegistries.Items.FLOWER_CROWN.get(), FlowerCrownRenderer::new); } @@ -40,7 +40,7 @@ public class CharmsFabricsClient private static void onRegisterLayerDefinitions( final EntityRenderersEvent.RegisterLayerDefinitions event) { - event.registerLayerDefinition(CharmsAndFabricsLayers.CROWN_LAYER, + event.registerLayerDefinition(CnFLayers.CROWN_LAYER, FlowerCrownModel::createLayer); } @@ -49,7 +49,7 @@ public class CharmsFabricsClient final EntityRenderersEvent.RegisterRenderers event) { event.registerBlockEntityRenderer( - CharmsAndFabricRegistries.Entities.FLORAL_BLOCK_ENTITY.get(), + CnFRegistries.Entities.FLORAL_BLOCK_ENTITY.get(), FloralWorkstationRenderer::new); } diff --git a/src/main/java/fr/sushi/charmsnfabrics/client/CnFLayers.java b/src/main/java/fr/sushi/charmsnfabrics/client/CnFLayers.java index 429f56c..56e1f36 100644 --- a/src/main/java/fr/sushi/charmsnfabrics/client/CnFLayers.java +++ b/src/main/java/fr/sushi/charmsnfabrics/client/CnFLayers.java @@ -4,7 +4,7 @@ import fr.sushi.charmsnfabrics.CharmsAndFabrics; import net.minecraft.client.model.geom.ModelLayerLocation; import net.minecraft.resources.ResourceLocation; -public class CharmsAndFabricsLayers +public class CnFLayers { public static final ModelLayerLocation CROWN_LAYER = new ModelLayerLocation( ResourceLocation.fromNamespaceAndPath(CharmsAndFabrics.MODID, diff --git a/src/main/java/fr/sushi/charmsnfabrics/client/renderer/FloralWorkstationRenderer.java b/src/main/java/fr/sushi/charmsnfabrics/client/renderer/FloralWorkstationRenderer.java index 2dad782..db7f4c0 100644 --- a/src/main/java/fr/sushi/charmsnfabrics/client/renderer/FloralWorkstationRenderer.java +++ b/src/main/java/fr/sushi/charmsnfabrics/client/renderer/FloralWorkstationRenderer.java @@ -3,9 +3,9 @@ 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.CnFLayers; import fr.sushi.charmsnfabrics.client.model.FlowerCrownModel; -import fr.sushi.charmsnfabrics.common.entities.block.FloralWorkshopBlockEntity; +import fr.sushi.charmsnfabrics.common.entities.block.FloralWorkstationBlockEntity; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.blockentity.BlockEntityRenderer; @@ -13,18 +13,18 @@ import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.phys.Vec3; -public class FloralWorkstationRenderer implements BlockEntityRenderer +public class FloralWorkstationRenderer implements BlockEntityRenderer { private final FlowerCrownModel model; public FloralWorkstationRenderer(BlockEntityRendererProvider.Context ctx) { this.model = new FlowerCrownModel( - ctx.bakeLayer(CharmsAndFabricsLayers.CROWN_LAYER)); + ctx.bakeLayer(CnFLayers.CROWN_LAYER)); } @Override - public void render(FloralWorkshopBlockEntity blockEntity, float partialTick, + public void render(FloralWorkstationBlockEntity blockEntity, float partialTick, PoseStack poseStack, MultiBufferSource bufferSource, int packedLight, int packedOverlay, Vec3 cameraPos) { 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 735a45b..2ede0ce 100644 --- a/src/main/java/fr/sushi/charmsnfabrics/client/renderer/FlowerCrownRenderer.java +++ b/src/main/java/fr/sushi/charmsnfabrics/client/renderer/FlowerCrownRenderer.java @@ -2,7 +2,7 @@ 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.CnFLayers; import fr.sushi.charmsnfabrics.client.model.FlowerCrownModel; import fr.sushi.charmsnfabrics.common.item.FlowerCrown; import net.minecraft.client.Minecraft; @@ -28,7 +28,7 @@ public class FlowerCrownRenderer implements ICurioRenderer { this.model = new FlowerCrownModel( Minecraft.getInstance().getEntityModels() - .bakeLayer(CharmsAndFabricsLayers.CROWN_LAYER)); + .bakeLayer(CnFLayers.CROWN_LAYER)); } @Override diff --git a/src/main/java/fr/sushi/charmsnfabrics/common/CnFRegistries.java b/src/main/java/fr/sushi/charmsnfabrics/common/CnFRegistries.java index 3c1e1fe..d969723 100644 --- a/src/main/java/fr/sushi/charmsnfabrics/common/CnFRegistries.java +++ b/src/main/java/fr/sushi/charmsnfabrics/common/CnFRegistries.java @@ -2,7 +2,7 @@ package fr.sushi.charmsnfabrics.common; import fr.sushi.charmsnfabrics.CharmsAndFabrics; import fr.sushi.charmsnfabrics.common.block.FloralWorkstation; -import fr.sushi.charmsnfabrics.common.entities.block.FloralWorkshopBlockEntity; +import fr.sushi.charmsnfabrics.common.entities.block.FloralWorkstationBlockEntity; import fr.sushi.charmsnfabrics.common.item.FlowerCrown; import net.minecraft.core.registries.Registries; import net.minecraft.network.chat.Component; @@ -23,7 +23,7 @@ import net.neoforged.neoforge.registries.DeferredRegister; import java.util.Set; import java.util.function.Supplier; -public class CharmsAndFabricRegistries +public class CnFRegistries { public static class Items { @@ -85,11 +85,11 @@ public class CharmsAndFabricRegistries BLOCK_ENTITY_TYPES = DeferredRegister.create(Registries.BLOCK_ENTITY_TYPE, CharmsAndFabrics.MODID); - public static final Supplier> + public static final Supplier> FLORAL_BLOCK_ENTITY = - BLOCK_ENTITY_TYPES.register("floral_block_entity", + BLOCK_ENTITY_TYPES.register("floral_blockstation_entity", () -> new BlockEntityType<>( - FloralWorkshopBlockEntity::new, + FloralWorkstationBlockEntity::new, Set.of(Blocks.FLORAL_WORKSTATION.get()))); } diff --git a/src/main/java/fr/sushi/charmsnfabrics/common/block/FloralWorkstation.java b/src/main/java/fr/sushi/charmsnfabrics/common/block/FloralWorkstation.java index d89f81e..77dbee2 100644 --- a/src/main/java/fr/sushi/charmsnfabrics/common/block/FloralWorkstation.java +++ b/src/main/java/fr/sushi/charmsnfabrics/common/block/FloralWorkstation.java @@ -1,25 +1,54 @@ package fr.sushi.charmsnfabrics.common.block; -import fr.sushi.charmsnfabrics.common.entities.block.FloralWorkshopBlockEntity; +import fr.sushi.charmsnfabrics.common.entities.block.FloralWorkstationBlockEntity; import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.EntityBlock; +import net.minecraft.world.level.block.HorizontalDirectionalBlock; +import net.minecraft.world.level.block.Rotation; import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.EnumProperty; import org.jetbrains.annotations.Nullable; public class FloralWorkstation extends Block implements EntityBlock { - public FloralWorkstation(Properties properties) + public static final EnumProperty FACING = + HorizontalDirectionalBlock.FACING; + + public FloralWorkstation(BlockBehaviour.Properties properties) { super(properties); + this.registerDefaultState(this.stateDefinition.any().setValue(FACING, Direction.NORTH)); + } + + @Override + protected void createBlockStateDefinition( + StateDefinition.Builder builder) + { + builder.add(FACING); + } + + @Override + public @Nullable BlockState getStateForPlacement(BlockPlaceContext ctx) + { + return this.defaultBlockState().setValue(FACING, + ctx.getHorizontalDirection().getClockWise()); + } + + @Override + protected BlockState rotate(BlockState state, Rotation rot) + { + return state.setValue(FACING, rot.rotate(state.getValue(FACING))); } @Override public @Nullable BlockEntity newBlockEntity(BlockPos pos, BlockState state) { - return new FloralWorkshopBlockEntity(pos, state); + return new FloralWorkstationBlockEntity(pos, state); } - - } diff --git a/src/main/java/fr/sushi/charmsnfabrics/common/entities/block/FloralWorkstationBlockEntity.java b/src/main/java/fr/sushi/charmsnfabrics/common/entities/block/FloralWorkstationBlockEntity.java index 283994c..754206c 100644 --- a/src/main/java/fr/sushi/charmsnfabrics/common/entities/block/FloralWorkstationBlockEntity.java +++ b/src/main/java/fr/sushi/charmsnfabrics/common/entities/block/FloralWorkstationBlockEntity.java @@ -5,9 +5,9 @@ import net.minecraft.core.BlockPos; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; -public class FloralWorkshopBlockEntity extends BlockEntity +public class FloralWorkstationBlockEntity extends BlockEntity { - public FloralWorkshopBlockEntity(BlockPos pos, BlockState blockState) + public FloralWorkstationBlockEntity(BlockPos pos, BlockState blockState) { super(CnFRegistries.Entities.FLORAL_BLOCK_ENTITY.get(), pos, blockState);