diff --git a/src/main/java/fr/sushi/charmsnfabrics/CharmsAndFabrics.java b/src/main/java/fr/sushi/charmsnfabrics/CharmsAndFabrics.java index 07a0dd0..85081a2 100644 --- a/src/main/java/fr/sushi/charmsnfabrics/CharmsAndFabrics.java +++ b/src/main/java/fr/sushi/charmsnfabrics/CharmsAndFabrics.java @@ -1,17 +1,38 @@ package fr.sushi.charmsnfabrics; -import fr.sushi.charmsnfabrics.common.CnFRegistries; +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 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) { - CnFRegistries.register(modEventBus); + CharmsAndFabricRegistries.register(modEventBus); modContainer.registerConfig(ModConfig.Type.COMMON, Config.SPEC); } diff --git a/src/main/java/fr/sushi/charmsnfabrics/client/CnFLayers.java b/src/main/java/fr/sushi/charmsnfabrics/client/CharmsAndFabricsLayers.java similarity index 91% rename from src/main/java/fr/sushi/charmsnfabrics/client/CnFLayers.java rename to src/main/java/fr/sushi/charmsnfabrics/client/CharmsAndFabricsLayers.java index 56e1f36..429f56c 100644 --- a/src/main/java/fr/sushi/charmsnfabrics/client/CnFLayers.java +++ b/src/main/java/fr/sushi/charmsnfabrics/client/CharmsAndFabricsLayers.java @@ -4,7 +4,7 @@ import fr.sushi.charmsnfabrics.CharmsAndFabrics; import net.minecraft.client.model.geom.ModelLayerLocation; import net.minecraft.resources.ResourceLocation; -public class CnFLayers +public class CharmsAndFabricsLayers { public static final ModelLayerLocation CROWN_LAYER = new ModelLayerLocation( ResourceLocation.fromNamespaceAndPath(CharmsAndFabrics.MODID, diff --git a/src/main/java/fr/sushi/charmsnfabrics/client/CnFClient.java b/src/main/java/fr/sushi/charmsnfabrics/client/CharmsFabricsClient.java similarity index 74% rename from src/main/java/fr/sushi/charmsnfabrics/client/CnFClient.java rename to src/main/java/fr/sushi/charmsnfabrics/client/CharmsFabricsClient.java index 29bfc66..49bb4fc 100644 --- a/src/main/java/fr/sushi/charmsnfabrics/client/CnFClient.java +++ b/src/main/java/fr/sushi/charmsnfabrics/client/CharmsFabricsClient.java @@ -1,11 +1,10 @@ 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; -import fr.sushi.charmsnfabrics.common.CnFRegistries; +import fr.sushi.charmsnfabrics.common.CharmsAndFabricRegistries; import net.neoforged.api.distmarker.Dist; import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.fml.ModContainer; @@ -15,14 +14,13 @@ 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) @EventBusSubscriber(modid = CharmsAndFabrics.MODID, value = Dist.CLIENT) -public class CnFClient +public class CharmsFabricsClient { - public CnFClient(ModContainer container) + public CharmsFabricsClient(ModContainer container) { container.registerExtensionPoint(IConfigScreenFactory.class, ConfigurationScreen::new); @@ -32,7 +30,7 @@ public class CnFClient private static void onClientSetup(final FMLClientSetupEvent event) { ICurioRenderer.register( - CnFRegistries.Items.FLOWER_CROWN.get(), + CharmsAndFabricRegistries.Items.FLOWER_CROWN.get(), FlowerCrownRenderer::new); } @@ -40,7 +38,7 @@ public class CnFClient private static void onRegisterLayerDefinitions( final EntityRenderersEvent.RegisterLayerDefinitions event) { - event.registerLayerDefinition(CnFLayers.CROWN_LAYER, + event.registerLayerDefinition(CharmsAndFabricsLayers.CROWN_LAYER, FlowerCrownModel::createLayer); } @@ -49,12 +47,7 @@ public class CnFClient final EntityRenderersEvent.RegisterRenderers event) { event.registerBlockEntityRenderer( - CnFRegistries.Entities.FLORAL_BLOCK_ENTITY.get(), + 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/datagen/CnFModelProvider.java b/src/main/java/fr/sushi/charmsnfabrics/client/datagen/CnFModelProvider.java deleted file mode 100644 index d5ef687..0000000 --- a/src/main/java/fr/sushi/charmsnfabrics/client/datagen/CnFModelProvider.java +++ /dev/null @@ -1,53 +0,0 @@ -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/client/renderer/FloralWorkstationRenderer.java b/src/main/java/fr/sushi/charmsnfabrics/client/renderer/FloralWorkstationRenderer.java index db7f4c0..2dad782 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.CnFLayers; +import fr.sushi.charmsnfabrics.client.CharmsAndFabricsLayers; import fr.sushi.charmsnfabrics.client.model.FlowerCrownModel; -import fr.sushi.charmsnfabrics.common.entities.block.FloralWorkstationBlockEntity; +import fr.sushi.charmsnfabrics.common.entities.block.FloralWorkshopBlockEntity; 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(CnFLayers.CROWN_LAYER)); + ctx.bakeLayer(CharmsAndFabricsLayers.CROWN_LAYER)); } @Override - public void render(FloralWorkstationBlockEntity blockEntity, float partialTick, + public void render(FloralWorkshopBlockEntity 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 2ede0ce..735a45b 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.CnFLayers; +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; @@ -28,7 +28,7 @@ public class FlowerCrownRenderer implements ICurioRenderer { this.model = new FlowerCrownModel( Minecraft.getInstance().getEntityModels() - .bakeLayer(CnFLayers.CROWN_LAYER)); + .bakeLayer(CharmsAndFabricsLayers.CROWN_LAYER)); } @Override diff --git a/src/main/java/fr/sushi/charmsnfabrics/common/CnFRegistries.java b/src/main/java/fr/sushi/charmsnfabrics/common/CharmsAndFabricRegistries.java similarity index 93% rename from src/main/java/fr/sushi/charmsnfabrics/common/CnFRegistries.java rename to src/main/java/fr/sushi/charmsnfabrics/common/CharmsAndFabricRegistries.java index d969723..3c1e1fe 100644 --- a/src/main/java/fr/sushi/charmsnfabrics/common/CnFRegistries.java +++ b/src/main/java/fr/sushi/charmsnfabrics/common/CharmsAndFabricRegistries.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.FloralWorkstationBlockEntity; +import fr.sushi.charmsnfabrics.common.entities.block.FloralWorkshopBlockEntity; 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 CnFRegistries +public class CharmsAndFabricRegistries { public static class Items { @@ -85,11 +85,11 @@ public class CnFRegistries 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_blockstation_entity", + BLOCK_ENTITY_TYPES.register("floral_block_entity", () -> new BlockEntityType<>( - FloralWorkstationBlockEntity::new, + FloralWorkshopBlockEntity::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 77dbee2..d89f81e 100644 --- a/src/main/java/fr/sushi/charmsnfabrics/common/block/FloralWorkstation.java +++ b/src/main/java/fr/sushi/charmsnfabrics/common/block/FloralWorkstation.java @@ -1,54 +1,25 @@ package fr.sushi.charmsnfabrics.common.block; -import fr.sushi.charmsnfabrics.common.entities.block.FloralWorkstationBlockEntity; +import fr.sushi.charmsnfabrics.common.entities.block.FloralWorkshopBlockEntity; 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 static final EnumProperty FACING = - HorizontalDirectionalBlock.FACING; - - public FloralWorkstation(BlockBehaviour.Properties properties) + public FloralWorkstation(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 FloralWorkstationBlockEntity(pos, state); + return new FloralWorkshopBlockEntity(pos, state); } + + } 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 new file mode 100644 index 0000000..19e8172 --- /dev/null +++ b/src/main/java/fr/sushi/charmsnfabrics/common/entities/block/FloralWorkshopBlockEntity.java @@ -0,0 +1,18 @@ +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; + +public class FloralWorkshopBlockEntity extends BlockEntity +{ + public FloralWorkshopBlockEntity(BlockPos pos, BlockState blockState) + { + super(CharmsAndFabricRegistries.Entities.FLORAL_BLOCK_ENTITY.get(), pos, + blockState); + } + +} 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 deleted file mode 100644 index 754206c..0000000 --- a/src/main/java/fr/sushi/charmsnfabrics/common/entities/block/FloralWorkstationBlockEntity.java +++ /dev/null @@ -1,16 +0,0 @@ -package fr.sushi.charmsnfabrics.common.entities.block; - -import fr.sushi.charmsnfabrics.common.CnFRegistries; -import net.minecraft.core.BlockPos; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.state.BlockState; - -public class FloralWorkstationBlockEntity extends BlockEntity -{ - public FloralWorkstationBlockEntity(BlockPos pos, BlockState blockState) - { - 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 new file mode 100644 index 0000000..4c21d73 --- /dev/null +++ b/src/main/resources/assets/charmsnfabrics/blockstates/floral_workstation.json @@ -0,0 +1,7 @@ +{ + "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 new file mode 100644 index 0000000..7ca62bc --- /dev/null +++ b/src/main/resources/assets/charmsnfabrics/items/floral_workstation.json @@ -0,0 +1,6 @@ +{ + "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 new file mode 100644 index 0000000..efc1da8 --- /dev/null +++ b/src/main/resources/assets/charmsnfabrics/items/flower_crown.json @@ -0,0 +1,6 @@ +{ + "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 new file mode 100644 index 0000000..a6aaaa6 --- /dev/null +++ b/src/main/resources/assets/charmsnfabrics/models/item/flower_crown.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "charmsnfabrics:item/flower_crown" + } +} \ No newline at end of file