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