From 94f0d9f13755c01c9ec2c2fbc8c1bacc7795be31 Mon Sep 17 00:00:00 2001 From: Micle Date: Thu, 5 Jun 2025 01:28:11 +0100 Subject: [PATCH 01/22] WIP: Started work on class for firefly bush block. --- .../block/FireflyBushBlock.java | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 src/main/java/dev/micle/firefly_bush_backport/block/FireflyBushBlock.java diff --git a/src/main/java/dev/micle/firefly_bush_backport/block/FireflyBushBlock.java b/src/main/java/dev/micle/firefly_bush_backport/block/FireflyBushBlock.java new file mode 100644 index 0000000..fed04a4 --- /dev/null +++ b/src/main/java/dev/micle/firefly_bush_backport/block/FireflyBushBlock.java @@ -0,0 +1,42 @@ +package dev.micle.firefly_bush_backport.block; + +import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.block.BonemealableBlock; +import net.minecraft.world.level.block.BushBlock; +import net.minecraft.world.level.block.state.BlockState; + +public class FireflyBushBlock extends BushBlock implements BonemealableBlock { + private static final double FIREFLY_CHANCE_PER_TICK = 0.7; + private static final double FIREFLY_HORIZONTAL_RANGE = 10.0; + private static final double FIREFLY_VERTICAL_RANGE = 5.0; + private static final int FIREFLY_SPAWN_MAX_BRIGHTNESS_LEVEL = 13; + private static final int FIREFLY_AMBIENT_SOUND_CHANCE_ONE_IN = 30; + + public FireflyBushBlock(Properties pProperties) { + super(pProperties); + } + + @Override + public void animateTick(BlockState pState, Level pLevel, BlockPos pPos, RandomSource pRandom) { + super.animateTick(pState, pLevel, pPos, pRandom); + } + + @Override + public boolean isValidBonemealTarget(LevelReader pLevel, BlockPos pPos, BlockState pState, boolean pIsClient) { + return false; + } + + @Override + public boolean isBonemealSuccess(Level pLevel, RandomSource pRandom, BlockPos pPos, BlockState pState) { + return false; + } + + @Override + public void performBonemeal(ServerLevel pLevel, RandomSource pRandom, BlockPos pPos, BlockState pState) { + + } +} From 293694453079fa4613cd0ef945de02dcbcaec6ad Mon Sep 17 00:00:00 2001 From: Micle Date: Thu, 5 Jun 2025 01:35:31 +0100 Subject: [PATCH 02/22] WIP: Implemented isValidBonemealTarget method. --- .../block/FireflyBushBlock.java | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/main/java/dev/micle/firefly_bush_backport/block/FireflyBushBlock.java b/src/main/java/dev/micle/firefly_bush_backport/block/FireflyBushBlock.java index fed04a4..f378063 100644 --- a/src/main/java/dev/micle/firefly_bush_backport/block/FireflyBushBlock.java +++ b/src/main/java/dev/micle/firefly_bush_backport/block/FireflyBushBlock.java @@ -1,6 +1,7 @@ package dev.micle.firefly_bush_backport.block; import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; import net.minecraft.server.level.ServerLevel; import net.minecraft.util.RandomSource; import net.minecraft.world.level.Level; @@ -9,6 +10,9 @@ import net.minecraft.world.level.block.BonemealableBlock; import net.minecraft.world.level.block.BushBlock; import net.minecraft.world.level.block.state.BlockState; +import java.util.List; +import java.util.Optional; + public class FireflyBushBlock extends BushBlock implements BonemealableBlock { private static final double FIREFLY_CHANCE_PER_TICK = 0.7; private static final double FIREFLY_HORIZONTAL_RANGE = 10.0; @@ -27,7 +31,7 @@ public class FireflyBushBlock extends BushBlock implements BonemealableBlock { @Override public boolean isValidBonemealTarget(LevelReader pLevel, BlockPos pPos, BlockState pState, boolean pIsClient) { - return false; + return hasSpreadableNeighbourPos(pLevel, pPos, pState); } @Override @@ -39,4 +43,18 @@ public class FireflyBushBlock extends BushBlock implements BonemealableBlock { public void performBonemeal(ServerLevel pLevel, RandomSource pRandom, BlockPos pPos, BlockState pState) { } + + static boolean hasSpreadableNeighbourPos(LevelReader levelReader, BlockPos blockPos, BlockState blockState) { + return getSpreadableNeighbourPos(Direction.Plane.HORIZONTAL.stream().toList(), levelReader, blockPos, blockState).isPresent(); + } + + static Optional getSpreadableNeighbourPos(List directions, LevelReader levelReader, BlockPos blockPos, BlockState blockState) { + for (Direction direction : directions) { + BlockPos blockPosDirection = blockPos.relative(direction); + if (levelReader.isEmptyBlock(blockPosDirection) && blockState.canSurvive(levelReader, blockPosDirection)) { + return Optional.of(blockPosDirection); + } + } + return Optional.empty(); + } } From cec7583cf2ae3d186b7b16a7d6c5ff8681738bc3 Mon Sep 17 00:00:00 2001 From: Micle Date: Thu, 5 Jun 2025 01:42:34 +0100 Subject: [PATCH 03/22] WIP: Implemented the rest of bonemeal block overrides. --- .../firefly_bush_backport/block/FireflyBushBlock.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/dev/micle/firefly_bush_backport/block/FireflyBushBlock.java b/src/main/java/dev/micle/firefly_bush_backport/block/FireflyBushBlock.java index f378063..3d1f952 100644 --- a/src/main/java/dev/micle/firefly_bush_backport/block/FireflyBushBlock.java +++ b/src/main/java/dev/micle/firefly_bush_backport/block/FireflyBushBlock.java @@ -36,18 +36,22 @@ public class FireflyBushBlock extends BushBlock implements BonemealableBlock { @Override public boolean isBonemealSuccess(Level pLevel, RandomSource pRandom, BlockPos pPos, BlockState pState) { - return false; + return true; } @Override public void performBonemeal(ServerLevel pLevel, RandomSource pRandom, BlockPos pPos, BlockState pState) { - + findSpreadableNeighbourPos(pLevel, pPos, pState).ifPresent(x -> pLevel.setBlockAndUpdate(x, this.defaultBlockState())); } static boolean hasSpreadableNeighbourPos(LevelReader levelReader, BlockPos blockPos, BlockState blockState) { return getSpreadableNeighbourPos(Direction.Plane.HORIZONTAL.stream().toList(), levelReader, blockPos, blockState).isPresent(); } + static Optional findSpreadableNeighbourPos(Level level, BlockPos blockPos, BlockState blockState) { + return getSpreadableNeighbourPos(Direction.Plane.HORIZONTAL.shuffledCopy(level.random), level, blockPos, blockState); + } + static Optional getSpreadableNeighbourPos(List directions, LevelReader levelReader, BlockPos blockPos, BlockState blockState) { for (Direction direction : directions) { BlockPos blockPosDirection = blockPos.relative(direction); From f269aacee4b63f799a8d1e0ddfb9e4aebe643da6 Mon Sep 17 00:00:00 2001 From: Micle Date: Thu, 5 Jun 2025 02:20:53 +0100 Subject: [PATCH 04/22] WIP: Created mod block registry. --- .../block/ModBlocks.java | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/main/java/dev/micle/firefly_bush_backport/block/ModBlocks.java diff --git a/src/main/java/dev/micle/firefly_bush_backport/block/ModBlocks.java b/src/main/java/dev/micle/firefly_bush_backport/block/ModBlocks.java new file mode 100644 index 0000000..52d16a4 --- /dev/null +++ b/src/main/java/dev/micle/firefly_bush_backport/block/ModBlocks.java @@ -0,0 +1,45 @@ +package dev.micle.firefly_bush_backport.block; + +import dev.micle.firefly_bush_backport.FireflyBushBackport; +import dev.micle.firefly_bush_backport.item.ModItems; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.material.MapColor; +import net.minecraft.world.level.material.PushReaction; +import net.minecraftforge.eventbus.api.IEventBus; +import net.minecraftforge.registries.DeferredRegister; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.RegistryObject; + +import java.util.function.Supplier; + +public class ModBlocks { + public static final DeferredRegister BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, FireflyBushBackport.MOD_ID); + + public static RegistryObject FIREFLY_BUSH = registerBlock("firefly_bush", + () -> new FireflyBushBlock(BlockBehaviour.Properties.of() + .mapColor(MapColor.PLANT) + .ignitedByLava() + .lightLevel(blockState -> 2) + .noCollission() + .instabreak() + //.sound() + .pushReaction(PushReaction.DESTROY)) + ); + + public static void register(IEventBus modEventBus) { + BLOCKS.register(modEventBus); + } + + private static RegistryObject registerBlockItem(String name, RegistryObject block) { + return ModItems.ITEMS.register(name, () -> new BlockItem(block.get(), new Item.Properties())); + } + + private static RegistryObject registerBlock(String name, Supplier block) { + RegistryObject ret = BLOCKS.register(name, block); + registerBlockItem(name, ret); + return ret; + } +} From 43002d4fab82549951f2183486708f9865d4c7db Mon Sep 17 00:00:00 2001 From: Micle Date: Thu, 5 Jun 2025 02:21:05 +0100 Subject: [PATCH 05/22] WIP: Created mod item registry. --- .../firefly_bush_backport/item/ModItems.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 src/main/java/dev/micle/firefly_bush_backport/item/ModItems.java diff --git a/src/main/java/dev/micle/firefly_bush_backport/item/ModItems.java b/src/main/java/dev/micle/firefly_bush_backport/item/ModItems.java new file mode 100644 index 0000000..acd215d --- /dev/null +++ b/src/main/java/dev/micle/firefly_bush_backport/item/ModItems.java @@ -0,0 +1,18 @@ +package dev.micle.firefly_bush_backport.item; + +import dev.micle.firefly_bush_backport.FireflyBushBackport; +import dev.micle.firefly_bush_backport.block.FireflyBushBlock; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.block.Block; +import net.minecraftforge.eventbus.api.IEventBus; +import net.minecraftforge.registries.DeferredRegister; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.RegistryObject; + +public class ModItems { + public static final DeferredRegister ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, FireflyBushBackport.MOD_ID); + + public static void register(IEventBus modEventBus) { + ITEMS.register(modEventBus); + } +} From b89e4170e8f8f38ba6fae075491321c16ab698d7 Mon Sep 17 00:00:00 2001 From: Micle Date: Thu, 5 Jun 2025 02:21:27 +0100 Subject: [PATCH 06/22] WIP: Registering mod blocks and items. --- .../java/dev/micle/firefly_bush_backport/proxy/Proxy.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/dev/micle/firefly_bush_backport/proxy/Proxy.java b/src/main/java/dev/micle/firefly_bush_backport/proxy/Proxy.java index 1c05c97..3dce73a 100644 --- a/src/main/java/dev/micle/firefly_bush_backport/proxy/Proxy.java +++ b/src/main/java/dev/micle/firefly_bush_backport/proxy/Proxy.java @@ -1,7 +1,9 @@ package dev.micle.firefly_bush_backport.proxy; import dev.micle.firefly_bush_backport.FireflyBushBackport; +import dev.micle.firefly_bush_backport.block.ModBlocks; import dev.micle.firefly_bush_backport.config.Config; +import dev.micle.firefly_bush_backport.item.ModItems; import net.minecraft.client.Minecraft; import net.minecraft.server.MinecraftServer; import net.minecraft.world.entity.player.Player; @@ -20,10 +22,13 @@ public class Proxy implements IProxy { // Common setup public Proxy() { + IEventBus modEventBus = FireflyBushBackport.getFMLJavaModLoadingContext().getModEventBus(); + Config.register(); + ModBlocks.register(modEventBus); + ModItems.register(modEventBus); // Register mod event bus listeners - IEventBus modEventBus = FireflyBushBackport.getFMLJavaModLoadingContext().getModEventBus(); modEventBus.addListener(Proxy::setup); modEventBus.addListener(Proxy::imcEnqueue); modEventBus.addListener(Proxy::imcProcess); From afe3cdbd413823d0093d4addc83a95cf39b4a286 Mon Sep 17 00:00:00 2001 From: Micle Date: Thu, 5 Jun 2025 19:47:10 +0100 Subject: [PATCH 07/22] WIP: Created data generators class. --- .../data/DataGenerators.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 src/main/java/dev/micle/firefly_bush_backport/data/DataGenerators.java diff --git a/src/main/java/dev/micle/firefly_bush_backport/data/DataGenerators.java b/src/main/java/dev/micle/firefly_bush_backport/data/DataGenerators.java new file mode 100644 index 0000000..01b8112 --- /dev/null +++ b/src/main/java/dev/micle/firefly_bush_backport/data/DataGenerators.java @@ -0,0 +1,17 @@ +package dev.micle.firefly_bush_backport.data; + +import dev.micle.firefly_bush_backport.FireflyBushBackport; +import net.minecraft.data.DataGenerator; +import net.minecraftforge.common.data.ExistingFileHelper; +import net.minecraftforge.data.event.GatherDataEvent; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.common.Mod; + +@Mod.EventBusSubscriber(modid = FireflyBushBackport.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD) +public class DataGenerators { + @SubscribeEvent + public static void gatherData(GatherDataEvent event) { + DataGenerator generator = event.getGenerator(); + ExistingFileHelper existingFileHelper = event.getExistingFileHelper(); + } +} From 29c0b8b95dd85d1516b963c6b013ba9880efc51b Mon Sep 17 00:00:00 2001 From: Micle Date: Thu, 5 Jun 2025 19:58:35 +0100 Subject: [PATCH 08/22] WIP: Created mod block state provider. --- .../data/DataGenerators.java | 3 +++ .../data/client/ModBlockStateProvider.java | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 src/main/java/dev/micle/firefly_bush_backport/data/client/ModBlockStateProvider.java diff --git a/src/main/java/dev/micle/firefly_bush_backport/data/DataGenerators.java b/src/main/java/dev/micle/firefly_bush_backport/data/DataGenerators.java index 01b8112..e90e2e6 100644 --- a/src/main/java/dev/micle/firefly_bush_backport/data/DataGenerators.java +++ b/src/main/java/dev/micle/firefly_bush_backport/data/DataGenerators.java @@ -1,6 +1,7 @@ package dev.micle.firefly_bush_backport.data; import dev.micle.firefly_bush_backport.FireflyBushBackport; +import dev.micle.firefly_bush_backport.data.client.ModBlockStateProvider; import net.minecraft.data.DataGenerator; import net.minecraftforge.common.data.ExistingFileHelper; import net.minecraftforge.data.event.GatherDataEvent; @@ -13,5 +14,7 @@ public class DataGenerators { public static void gatherData(GatherDataEvent event) { DataGenerator generator = event.getGenerator(); ExistingFileHelper existingFileHelper = event.getExistingFileHelper(); + + generator.addProvider(event.includeServer(), new ModBlockStateProvider(generator, existingFileHelper)); } } diff --git a/src/main/java/dev/micle/firefly_bush_backport/data/client/ModBlockStateProvider.java b/src/main/java/dev/micle/firefly_bush_backport/data/client/ModBlockStateProvider.java new file mode 100644 index 0000000..19a85c5 --- /dev/null +++ b/src/main/java/dev/micle/firefly_bush_backport/data/client/ModBlockStateProvider.java @@ -0,0 +1,19 @@ +package dev.micle.firefly_bush_backport.data.client; + +import dev.micle.firefly_bush_backport.FireflyBushBackport; +import dev.micle.firefly_bush_backport.block.ModBlocks; +import net.minecraft.data.DataGenerator; +import net.minecraft.data.PackOutput; +import net.minecraftforge.client.model.generators.BlockStateProvider; +import net.minecraftforge.common.data.ExistingFileHelper; + +public class ModBlockStateProvider extends BlockStateProvider { + public ModBlockStateProvider(DataGenerator generator, ExistingFileHelper existingFileHelper) { + super(generator.getPackOutput(), FireflyBushBackport.MOD_ID, existingFileHelper); + } + + @Override + protected void registerStatesAndModels() { + simpleBlock(ModBlocks.FIREFLY_BUSH.get()); + } +} From 4ffcceb78fc6d42fd91e27156361e0ab1cd46460 Mon Sep 17 00:00:00 2001 From: Micle Date: Thu, 5 Jun 2025 20:16:15 +0100 Subject: [PATCH 09/22] WIP: Created item model provider for block items. --- .../data/DataGenerators.java | 2 ++ .../data/client/ModItemModelProvider.java | 31 +++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 src/main/java/dev/micle/firefly_bush_backport/data/client/ModItemModelProvider.java diff --git a/src/main/java/dev/micle/firefly_bush_backport/data/DataGenerators.java b/src/main/java/dev/micle/firefly_bush_backport/data/DataGenerators.java index e90e2e6..18c0024 100644 --- a/src/main/java/dev/micle/firefly_bush_backport/data/DataGenerators.java +++ b/src/main/java/dev/micle/firefly_bush_backport/data/DataGenerators.java @@ -2,6 +2,7 @@ package dev.micle.firefly_bush_backport.data; import dev.micle.firefly_bush_backport.FireflyBushBackport; import dev.micle.firefly_bush_backport.data.client.ModBlockStateProvider; +import dev.micle.firefly_bush_backport.data.client.ModItemModelProvider; import net.minecraft.data.DataGenerator; import net.minecraftforge.common.data.ExistingFileHelper; import net.minecraftforge.data.event.GatherDataEvent; @@ -16,5 +17,6 @@ public class DataGenerators { ExistingFileHelper existingFileHelper = event.getExistingFileHelper(); generator.addProvider(event.includeServer(), new ModBlockStateProvider(generator, existingFileHelper)); + generator.addProvider(event.includeServer(), new ModItemModelProvider(generator, existingFileHelper)); } } diff --git a/src/main/java/dev/micle/firefly_bush_backport/data/client/ModItemModelProvider.java b/src/main/java/dev/micle/firefly_bush_backport/data/client/ModItemModelProvider.java new file mode 100644 index 0000000..e6269f0 --- /dev/null +++ b/src/main/java/dev/micle/firefly_bush_backport/data/client/ModItemModelProvider.java @@ -0,0 +1,31 @@ +package dev.micle.firefly_bush_backport.data.client; + +import dev.micle.firefly_bush_backport.FireflyBushBackport; +import dev.micle.firefly_bush_backport.block.ModBlocks; +import net.minecraft.data.DataGenerator; +import net.minecraft.world.item.Items; +import net.minecraft.world.level.block.Block; +import net.minecraftforge.client.model.generators.ItemModelProvider; +import net.minecraftforge.common.data.ExistingFileHelper; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.RegistryObject; + +import java.util.Objects; + +public class ModItemModelProvider extends ItemModelProvider { + public ModItemModelProvider(DataGenerator generator, ExistingFileHelper existingFileHelper) { + super(generator.getPackOutput(), FireflyBushBackport.MOD_ID, existingFileHelper); + } + + @Override + protected void registerModels() { + ModBlocks.BLOCKS.getEntries().stream().map(RegistryObject::get).forEach(this::blockItemModel); + } + + private void blockItemModel(Block block) { + if (block.asItem() != Items.AIR) { + String name = Objects.requireNonNull(ForgeRegistries.BLOCKS.getKey(block)).getPath(); + withExistingParent(name, modLoc("block/" + name)); + } + } +} From 9f4ed463b46d847fb06f0c42f283362714a1cc16 Mon Sep 17 00:00:00 2001 From: Micle Date: Thu, 5 Jun 2025 20:42:49 +0100 Subject: [PATCH 10/22] WIP: Added cross emissive model from 1.21.4. --- .../models/block/cross_emissive.json | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/main/resources/assets/minecraft/models/block/cross_emissive.json diff --git a/src/main/resources/assets/minecraft/models/block/cross_emissive.json b/src/main/resources/assets/minecraft/models/block/cross_emissive.json new file mode 100644 index 0000000..5882091 --- /dev/null +++ b/src/main/resources/assets/minecraft/models/block/cross_emissive.json @@ -0,0 +1,46 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#cross" + }, + "elements": [ + { "from": [ 0.8, 0, 8 ], + "to": [ 15.2, 16, 8 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross" }, + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross" } + } + }, + { "from": [ 8, 0, 0.8 ], + "to": [ 8, 16, 15.2 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross" }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross" } + } + }, + { "from": [ 0.8, 0, 8 ], + "to": [ 15.2, 16, 8 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "light_emission": 15, + "faces": { + "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross_emissive" }, + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross_emissive" } + } + }, + { "from": [ 8, 0, 0.8 ], + "to": [ 8, 16, 15.2 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "light_emission": 15, + "faces": { + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross_emissive" }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross_emissive" } + } + } + ] +} From 1e02c1d98b3e679f8ea76d0af994f708a18f3439 Mon Sep 17 00:00:00 2001 From: Micle Date: Thu, 5 Jun 2025 20:43:07 +0100 Subject: [PATCH 11/22] WIP: Added firefly bush block textures from 1.21.5. --- .../firefly_bush_backport/textures/block/firefly_bush.png | 3 +++ .../textures/block/firefly_bush_emissive.png | 3 +++ 2 files changed, 6 insertions(+) create mode 100644 src/main/resources/assets/firefly_bush_backport/textures/block/firefly_bush.png create mode 100644 src/main/resources/assets/firefly_bush_backport/textures/block/firefly_bush_emissive.png diff --git a/src/main/resources/assets/firefly_bush_backport/textures/block/firefly_bush.png b/src/main/resources/assets/firefly_bush_backport/textures/block/firefly_bush.png new file mode 100644 index 0000000..153c8fe --- /dev/null +++ b/src/main/resources/assets/firefly_bush_backport/textures/block/firefly_bush.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c8561248bf33ef1dea7ed84a16b3623aa7a974a707c06b3b2a161a122cbe1600 +size 224 diff --git a/src/main/resources/assets/firefly_bush_backport/textures/block/firefly_bush_emissive.png b/src/main/resources/assets/firefly_bush_backport/textures/block/firefly_bush_emissive.png new file mode 100644 index 0000000..3218f92 --- /dev/null +++ b/src/main/resources/assets/firefly_bush_backport/textures/block/firefly_bush_emissive.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9519a8118504163df75438045befeaa440778bbb7c91f38066729be326358399 +size 188 From c99317d5fb7e5b31ff50f55f825d04085b5f0f05 Mon Sep 17 00:00:00 2001 From: Micle Date: Thu, 5 Jun 2025 20:43:36 +0100 Subject: [PATCH 12/22] WIP: Added block state provider method for crossEmissiveBlock. --- .../data/client/ModBlockStateProvider.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main/java/dev/micle/firefly_bush_backport/data/client/ModBlockStateProvider.java b/src/main/java/dev/micle/firefly_bush_backport/data/client/ModBlockStateProvider.java index 19a85c5..d744e2c 100644 --- a/src/main/java/dev/micle/firefly_bush_backport/data/client/ModBlockStateProvider.java +++ b/src/main/java/dev/micle/firefly_bush_backport/data/client/ModBlockStateProvider.java @@ -3,9 +3,12 @@ package dev.micle.firefly_bush_backport.data.client; import dev.micle.firefly_bush_backport.FireflyBushBackport; import dev.micle.firefly_bush_backport.block.ModBlocks; import net.minecraft.data.DataGenerator; -import net.minecraft.data.PackOutput; +import net.minecraft.world.level.block.Block; import net.minecraftforge.client.model.generators.BlockStateProvider; import net.minecraftforge.common.data.ExistingFileHelper; +import net.minecraftforge.registries.RegistryObject; + +import java.util.Objects; public class ModBlockStateProvider extends BlockStateProvider { public ModBlockStateProvider(DataGenerator generator, ExistingFileHelper existingFileHelper) { @@ -14,6 +17,15 @@ public class ModBlockStateProvider extends BlockStateProvider { @Override protected void registerStatesAndModels() { - simpleBlock(ModBlocks.FIREFLY_BUSH.get()); + crossEmissiveBlock(ModBlocks.FIREFLY_BUSH); + } + + private void crossEmissiveBlock(RegistryObject block) { + String name = Objects.requireNonNull(block.getId()).getPath(); + simpleBlock(block.get(), models() + .withExistingParent(name, "block/cross_emissive") + .texture("cross", "block/" + name) + .texture("cross_emissive", "block/" + name + "_emissive") + ); } } From b385157a41d8285ac98fc6022c2b71d98b4a756b Mon Sep 17 00:00:00 2001 From: Micle Date: Thu, 5 Jun 2025 20:43:50 +0100 Subject: [PATCH 13/22] WIP: Generated data. --- .gitignore | 3 +++ .../firefly_bush_backport/blockstates/firefly_bush.json | 7 +++++++ .../firefly_bush_backport/models/block/firefly_bush.json | 7 +++++++ .../firefly_bush_backport/models/item/firefly_bush.json | 3 +++ 4 files changed, 20 insertions(+) create mode 100644 src/generated/resources/assets/firefly_bush_backport/blockstates/firefly_bush.json create mode 100644 src/generated/resources/assets/firefly_bush_backport/models/block/firefly_bush.json create mode 100644 src/generated/resources/assets/firefly_bush_backport/models/item/firefly_bush.json diff --git a/.gitignore b/.gitignore index f3d7e9e..77de4b6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ +### Minecraft +/src/generated/resources/.cache/* + ### Java template # Compiled class file *.class diff --git a/src/generated/resources/assets/firefly_bush_backport/blockstates/firefly_bush.json b/src/generated/resources/assets/firefly_bush_backport/blockstates/firefly_bush.json new file mode 100644 index 0000000..54c7074 --- /dev/null +++ b/src/generated/resources/assets/firefly_bush_backport/blockstates/firefly_bush.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "firefly_bush_backport:block/firefly_bush" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/firefly_bush_backport/models/block/firefly_bush.json b/src/generated/resources/assets/firefly_bush_backport/models/block/firefly_bush.json new file mode 100644 index 0000000..423eb84 --- /dev/null +++ b/src/generated/resources/assets/firefly_bush_backport/models/block/firefly_bush.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cross_emissive", + "textures": { + "cross": "firefly_bush_backport:block/firefly_bush", + "cross_emissive": "firefly_bush_backport:block/firefly_bush_emissive" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/firefly_bush_backport/models/item/firefly_bush.json b/src/generated/resources/assets/firefly_bush_backport/models/item/firefly_bush.json new file mode 100644 index 0000000..33a3e99 --- /dev/null +++ b/src/generated/resources/assets/firefly_bush_backport/models/item/firefly_bush.json @@ -0,0 +1,3 @@ +{ + "parent": "firefly_bush_backport:block/firefly_bush" +} \ No newline at end of file From e7760eb8ba1b4c39c11c13cbc85ffa3f9fcdb8d4 Mon Sep 17 00:00:00 2001 From: Micle Date: Thu, 5 Jun 2025 21:07:50 +0100 Subject: [PATCH 14/22] WIP: Made cross emissive block use cutout render type to fix transparency. --- .../assets/firefly_bush_backport/models/block/firefly_bush.json | 1 + .../firefly_bush_backport/data/client/ModBlockStateProvider.java | 1 + 2 files changed, 2 insertions(+) diff --git a/src/generated/resources/assets/firefly_bush_backport/models/block/firefly_bush.json b/src/generated/resources/assets/firefly_bush_backport/models/block/firefly_bush.json index 423eb84..253a2d4 100644 --- a/src/generated/resources/assets/firefly_bush_backport/models/block/firefly_bush.json +++ b/src/generated/resources/assets/firefly_bush_backport/models/block/firefly_bush.json @@ -1,5 +1,6 @@ { "parent": "minecraft:block/cross_emissive", + "render_type": "minecraft:cutout", "textures": { "cross": "firefly_bush_backport:block/firefly_bush", "cross_emissive": "firefly_bush_backport:block/firefly_bush_emissive" diff --git a/src/main/java/dev/micle/firefly_bush_backport/data/client/ModBlockStateProvider.java b/src/main/java/dev/micle/firefly_bush_backport/data/client/ModBlockStateProvider.java index d744e2c..f0c2a38 100644 --- a/src/main/java/dev/micle/firefly_bush_backport/data/client/ModBlockStateProvider.java +++ b/src/main/java/dev/micle/firefly_bush_backport/data/client/ModBlockStateProvider.java @@ -26,6 +26,7 @@ public class ModBlockStateProvider extends BlockStateProvider { .withExistingParent(name, "block/cross_emissive") .texture("cross", "block/" + name) .texture("cross_emissive", "block/" + name + "_emissive") + .renderType("cutout") ); } } From 8c57799407245a1d97fba98b39dc33dfb72d0c10 Mon Sep 17 00:00:00 2001 From: Micle Date: Thu, 5 Jun 2025 21:08:08 +0100 Subject: [PATCH 15/22] WIP: Added mcmeta for firefly bush emissive texture. --- .../textures/block/firefly_bush_emissive.png.mcmeta | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 src/main/resources/assets/firefly_bush_backport/textures/block/firefly_bush_emissive.png.mcmeta diff --git a/src/main/resources/assets/firefly_bush_backport/textures/block/firefly_bush_emissive.png.mcmeta b/src/main/resources/assets/firefly_bush_backport/textures/block/firefly_bush_emissive.png.mcmeta new file mode 100644 index 0000000..8e55e43 --- /dev/null +++ b/src/main/resources/assets/firefly_bush_backport/textures/block/firefly_bush_emissive.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 3 + } +} From ed1e851a27af21e3af9db37b17d9cf32c822a737 Mon Sep 17 00:00:00 2001 From: Micle Date: Thu, 5 Jun 2025 21:22:42 +0100 Subject: [PATCH 16/22] WIP: Added item texture and implemented builder method. --- .../models/item/firefly_bush.json | 5 ++++- .../data/client/ModItemModelProvider.java | 13 +++++++++++-- .../textures/item/firefly_bush.png | 3 +++ 3 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 src/main/resources/assets/firefly_bush_backport/textures/item/firefly_bush.png diff --git a/src/generated/resources/assets/firefly_bush_backport/models/item/firefly_bush.json b/src/generated/resources/assets/firefly_bush_backport/models/item/firefly_bush.json index 33a3e99..124a962 100644 --- a/src/generated/resources/assets/firefly_bush_backport/models/item/firefly_bush.json +++ b/src/generated/resources/assets/firefly_bush_backport/models/item/firefly_bush.json @@ -1,3 +1,6 @@ { - "parent": "firefly_bush_backport:block/firefly_bush" + "parent": "minecraft:item/generated", + "textures": { + "layer0": "firefly_bush_backport:item/firefly_bush" + } } \ No newline at end of file diff --git a/src/main/java/dev/micle/firefly_bush_backport/data/client/ModItemModelProvider.java b/src/main/java/dev/micle/firefly_bush_backport/data/client/ModItemModelProvider.java index e6269f0..2277e06 100644 --- a/src/main/java/dev/micle/firefly_bush_backport/data/client/ModItemModelProvider.java +++ b/src/main/java/dev/micle/firefly_bush_backport/data/client/ModItemModelProvider.java @@ -5,7 +5,9 @@ import dev.micle.firefly_bush_backport.block.ModBlocks; import net.minecraft.data.DataGenerator; import net.minecraft.world.item.Items; import net.minecraft.world.level.block.Block; +import net.minecraftforge.client.model.generators.ItemModelBuilder; import net.minecraftforge.client.model.generators.ItemModelProvider; +import net.minecraftforge.client.model.generators.ModelFile; import net.minecraftforge.common.data.ExistingFileHelper; import net.minecraftforge.registries.ForgeRegistries; import net.minecraftforge.registries.RegistryObject; @@ -23,9 +25,16 @@ public class ModItemModelProvider extends ItemModelProvider { } private void blockItemModel(Block block) { - if (block.asItem() != Items.AIR) { - String name = Objects.requireNonNull(ForgeRegistries.BLOCKS.getKey(block)).getPath(); + String name = Objects.requireNonNull(ForgeRegistries.BLOCKS.getKey(block)).getPath(); + + if (block == ModBlocks.FIREFLY_BUSH.get()) { + builder(getExistingFile(mcLoc("item/generated")), name); + } else if (block.asItem() != Items.AIR) { withExistingParent(name, modLoc("block/" + name)); } } + + private ItemModelBuilder builder(ModelFile itemGenerated, String name) { + return getBuilder(name).parent(itemGenerated).texture("layer0", "item/" + name); + } } diff --git a/src/main/resources/assets/firefly_bush_backport/textures/item/firefly_bush.png b/src/main/resources/assets/firefly_bush_backport/textures/item/firefly_bush.png new file mode 100644 index 0000000..f9b9015 --- /dev/null +++ b/src/main/resources/assets/firefly_bush_backport/textures/item/firefly_bush.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f3b6d7188b43667e73c290eaf0f3e692edc6dc13249d92008f4a0ec1348ef239 +size 227 From 91e70d5620856872a318a31afc1c81ec57ad49f5 Mon Sep 17 00:00:00 2001 From: Micle Date: Thu, 5 Jun 2025 21:48:02 +0100 Subject: [PATCH 17/22] WIP: Added sound type to block. --- .../java/dev/micle/firefly_bush_backport/block/ModBlocks.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/dev/micle/firefly_bush_backport/block/ModBlocks.java b/src/main/java/dev/micle/firefly_bush_backport/block/ModBlocks.java index 52d16a4..2ab4c4b 100644 --- a/src/main/java/dev/micle/firefly_bush_backport/block/ModBlocks.java +++ b/src/main/java/dev/micle/firefly_bush_backport/block/ModBlocks.java @@ -5,6 +5,7 @@ import dev.micle.firefly_bush_backport.item.ModItems; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.Item; import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.SoundType; import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.material.MapColor; import net.minecraft.world.level.material.PushReaction; @@ -25,7 +26,7 @@ public class ModBlocks { .lightLevel(blockState -> 2) .noCollission() .instabreak() - //.sound() + .sound(SoundType.SWEET_BERRY_BUSH) .pushReaction(PushReaction.DESTROY)) ); From f6a4de0a5d0e058c190f7ba87b93d4ca7c991b5a Mon Sep 17 00:00:00 2001 From: Micle Date: Thu, 5 Jun 2025 21:52:05 +0100 Subject: [PATCH 18/22] WIP: Added sound files for the firefly bush. --- .../sounds/block/firefly_bush/firefly_bush1.ogg | 3 +++ .../sounds/block/firefly_bush/firefly_bush10.ogg | 3 +++ .../sounds/block/firefly_bush/firefly_bush11.ogg | 3 +++ .../sounds/block/firefly_bush/firefly_bush2.ogg | 3 +++ .../sounds/block/firefly_bush/firefly_bush3.ogg | 3 +++ .../sounds/block/firefly_bush/firefly_bush4.ogg | 3 +++ .../sounds/block/firefly_bush/firefly_bush5.ogg | 3 +++ .../sounds/block/firefly_bush/firefly_bush6.ogg | 3 +++ .../sounds/block/firefly_bush/firefly_bush7.ogg | 3 +++ .../sounds/block/firefly_bush/firefly_bush8.ogg | 3 +++ .../sounds/block/firefly_bush/firefly_bush9.ogg | 3 +++ 11 files changed, 33 insertions(+) create mode 100644 src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush1.ogg create mode 100644 src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush10.ogg create mode 100644 src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush11.ogg create mode 100644 src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush2.ogg create mode 100644 src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush3.ogg create mode 100644 src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush4.ogg create mode 100644 src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush5.ogg create mode 100644 src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush6.ogg create mode 100644 src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush7.ogg create mode 100644 src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush8.ogg create mode 100644 src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush9.ogg diff --git a/src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush1.ogg b/src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush1.ogg new file mode 100644 index 0000000..074c547 --- /dev/null +++ b/src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush1.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a806d7c6db801dca0c7dcba2eb8ce82998a4342fc91dc5c86ec85d379f944e26 +size 112586 diff --git a/src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush10.ogg b/src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush10.ogg new file mode 100644 index 0000000..2e43294 --- /dev/null +++ b/src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush10.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e5a81bdc558281d88b1b6caff8a190b01362b2549bc0cf8a568c0bf8a9379361 +size 91283 diff --git a/src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush11.ogg b/src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush11.ogg new file mode 100644 index 0000000..e4b35ab --- /dev/null +++ b/src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush11.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d00b585df988ad34dce9b3eb7b769b9b1769308779c9658253b3e6ab10d46dbb +size 92303 diff --git a/src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush2.ogg b/src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush2.ogg new file mode 100644 index 0000000..7639dda --- /dev/null +++ b/src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush2.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:edf0c441f609102d3196da63850e57e9dbc451657d1a20b61bd3da359c8baf15 +size 58456 diff --git a/src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush3.ogg b/src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush3.ogg new file mode 100644 index 0000000..a3a26f5 --- /dev/null +++ b/src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush3.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e8a0b00bb0753c64e67fb4c43f0c8b45d1247570fa50741faf844fa8343b1df6 +size 133948 diff --git a/src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush4.ogg b/src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush4.ogg new file mode 100644 index 0000000..74b7cc1 --- /dev/null +++ b/src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush4.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:18df05abfd11727fb0bcc7075e48535dd1fb79bd078e22425cd0273ac1e36b1d +size 95953 diff --git a/src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush5.ogg b/src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush5.ogg new file mode 100644 index 0000000..f2c9e5b --- /dev/null +++ b/src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush5.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:45a66787fbfd5661ef2bb8a6dbe749eb89d2335174ff5cf7c8e749ba80fd243c +size 92090 diff --git a/src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush6.ogg b/src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush6.ogg new file mode 100644 index 0000000..f5e0c2c --- /dev/null +++ b/src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush6.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f2eb86a0e2586bb11c27a393325393a590a2e3d7f068d057f30faebc60bbad2c +size 99322 diff --git a/src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush7.ogg b/src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush7.ogg new file mode 100644 index 0000000..162ecce --- /dev/null +++ b/src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush7.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ada193be3a4be1d70cc3ce59bb3bdcbeae47a9296d68a3b343ab173938c464af +size 59645 diff --git a/src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush8.ogg b/src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush8.ogg new file mode 100644 index 0000000..63f4d05 --- /dev/null +++ b/src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush8.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:277dc5651c9d50a2bd8d190e26b48a2469e132d6b01055f59d3a9fa6266fcabe +size 98309 diff --git a/src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush9.ogg b/src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush9.ogg new file mode 100644 index 0000000..c2cec11 --- /dev/null +++ b/src/main/resources/assets/firefly_bush_backport/sounds/block/firefly_bush/firefly_bush9.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf2b9dfda71bdc3541679cce08ad1a4feee82258f3660aad726471d707a8f7d2 +size 85748 From 80fd5a6a46cd761d31b2b252efb88eba27ec5501 Mon Sep 17 00:00:00 2001 From: Micle Date: Thu, 5 Jun 2025 22:00:44 +0100 Subject: [PATCH 19/22] WIP: Added lang file and entry for block. --- .../resources/assets/firefly_bush_backport/lang/en_us.json | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 src/main/resources/assets/firefly_bush_backport/lang/en_us.json diff --git a/src/main/resources/assets/firefly_bush_backport/lang/en_us.json b/src/main/resources/assets/firefly_bush_backport/lang/en_us.json new file mode 100644 index 0000000..042a8b2 --- /dev/null +++ b/src/main/resources/assets/firefly_bush_backport/lang/en_us.json @@ -0,0 +1,3 @@ +{ + "block.firefly_bush_backport.firefly_bush": "Firefly Bush" +} \ No newline at end of file From 8d5f60dd638699dc58511b488b5682c3be59d0cc Mon Sep 17 00:00:00 2001 From: Micle Date: Thu, 5 Jun 2025 22:01:00 +0100 Subject: [PATCH 20/22] WIP: Created creative mode tabs registry. --- .../creative_mode_tab/ModCreativeModeTabs.java | 15 +++++++++++++++ .../micle/firefly_bush_backport/proxy/Proxy.java | 2 ++ 2 files changed, 17 insertions(+) create mode 100644 src/main/java/dev/micle/firefly_bush_backport/creative_mode_tab/ModCreativeModeTabs.java diff --git a/src/main/java/dev/micle/firefly_bush_backport/creative_mode_tab/ModCreativeModeTabs.java b/src/main/java/dev/micle/firefly_bush_backport/creative_mode_tab/ModCreativeModeTabs.java new file mode 100644 index 0000000..77ef63f --- /dev/null +++ b/src/main/java/dev/micle/firefly_bush_backport/creative_mode_tab/ModCreativeModeTabs.java @@ -0,0 +1,15 @@ +package dev.micle.firefly_bush_backport.creative_mode_tab; + +import dev.micle.firefly_bush_backport.FireflyBushBackport; +import net.minecraft.core.registries.Registries; +import net.minecraft.world.item.CreativeModeTab; +import net.minecraftforge.eventbus.api.IEventBus; +import net.minecraftforge.registries.DeferredRegister; + +public class ModCreativeModeTabs { + public static final DeferredRegister CREATIVE_MODE_TABS = DeferredRegister.create(Registries.CREATIVE_MODE_TAB, FireflyBushBackport.MOD_ID); + + public static void register(IEventBus modEventBus) { + CREATIVE_MODE_TABS.register(modEventBus); + } +} diff --git a/src/main/java/dev/micle/firefly_bush_backport/proxy/Proxy.java b/src/main/java/dev/micle/firefly_bush_backport/proxy/Proxy.java index 3dce73a..23ab063 100644 --- a/src/main/java/dev/micle/firefly_bush_backport/proxy/Proxy.java +++ b/src/main/java/dev/micle/firefly_bush_backport/proxy/Proxy.java @@ -3,6 +3,7 @@ package dev.micle.firefly_bush_backport.proxy; import dev.micle.firefly_bush_backport.FireflyBushBackport; import dev.micle.firefly_bush_backport.block.ModBlocks; import dev.micle.firefly_bush_backport.config.Config; +import dev.micle.firefly_bush_backport.creative_mode_tab.ModCreativeModeTabs; import dev.micle.firefly_bush_backport.item.ModItems; import net.minecraft.client.Minecraft; import net.minecraft.server.MinecraftServer; @@ -27,6 +28,7 @@ public class Proxy implements IProxy { Config.register(); ModBlocks.register(modEventBus); ModItems.register(modEventBus); + ModCreativeModeTabs.register(modEventBus); // Register mod event bus listeners modEventBus.addListener(Proxy::setup); From 6d10d0bc1dc2ac7d154976c67c9aaa6e862e68ef Mon Sep 17 00:00:00 2001 From: Micle Date: Thu, 5 Jun 2025 22:07:59 +0100 Subject: [PATCH 21/22] WIP: Created main creative mode tab. --- .../creative_mode_tab/ModCreativeModeTabs.java | 14 ++++++++++++++ .../assets/firefly_bush_backport/lang/en_us.json | 1 + 2 files changed, 15 insertions(+) diff --git a/src/main/java/dev/micle/firefly_bush_backport/creative_mode_tab/ModCreativeModeTabs.java b/src/main/java/dev/micle/firefly_bush_backport/creative_mode_tab/ModCreativeModeTabs.java index 77ef63f..7d2aa32 100644 --- a/src/main/java/dev/micle/firefly_bush_backport/creative_mode_tab/ModCreativeModeTabs.java +++ b/src/main/java/dev/micle/firefly_bush_backport/creative_mode_tab/ModCreativeModeTabs.java @@ -1,14 +1,28 @@ package dev.micle.firefly_bush_backport.creative_mode_tab; import dev.micle.firefly_bush_backport.FireflyBushBackport; +import dev.micle.firefly_bush_backport.block.ModBlocks; +import dev.micle.firefly_bush_backport.item.ModItems; import net.minecraft.core.registries.Registries; +import net.minecraft.network.chat.Component; import net.minecraft.world.item.CreativeModeTab; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.registries.DeferredRegister; +import net.minecraftforge.registries.RegistryObject; public class ModCreativeModeTabs { public static final DeferredRegister CREATIVE_MODE_TABS = DeferredRegister.create(Registries.CREATIVE_MODE_TAB, FireflyBushBackport.MOD_ID); + public static final RegistryObject MAIN_TAB = CREATIVE_MODE_TABS.register( "main", + () -> CreativeModeTab.builder() + .title(Component.translatable(String.format("itemGroup.%s.main", FireflyBushBackport.MOD_ID))) + .icon(ModBlocks.FIREFLY_BUSH.get().asItem()::getDefaultInstance) + .displayItems((itemDisplayParams, output) -> { + output.accept(ModBlocks.FIREFLY_BUSH.get()); + }) + .build() + ); + public static void register(IEventBus modEventBus) { CREATIVE_MODE_TABS.register(modEventBus); } diff --git a/src/main/resources/assets/firefly_bush_backport/lang/en_us.json b/src/main/resources/assets/firefly_bush_backport/lang/en_us.json index 042a8b2..33d8437 100644 --- a/src/main/resources/assets/firefly_bush_backport/lang/en_us.json +++ b/src/main/resources/assets/firefly_bush_backport/lang/en_us.json @@ -1,3 +1,4 @@ { + "itemGroup.firefly_bush_backport.main": "Firefly Bush Backport", "block.firefly_bush_backport.firefly_bush": "Firefly Bush" } \ No newline at end of file From 1d2e376baf0e445aae1dec96f381d061494c5c12 Mon Sep 17 00:00:00 2001 From: Micle Date: Thu, 5 Jun 2025 22:08:19 +0100 Subject: [PATCH 22/22] Optimized imports. --- .../creative_mode_tab/ModCreativeModeTabs.java | 1 - .../java/dev/micle/firefly_bush_backport/item/ModItems.java | 3 --- 2 files changed, 4 deletions(-) diff --git a/src/main/java/dev/micle/firefly_bush_backport/creative_mode_tab/ModCreativeModeTabs.java b/src/main/java/dev/micle/firefly_bush_backport/creative_mode_tab/ModCreativeModeTabs.java index 7d2aa32..0b126a0 100644 --- a/src/main/java/dev/micle/firefly_bush_backport/creative_mode_tab/ModCreativeModeTabs.java +++ b/src/main/java/dev/micle/firefly_bush_backport/creative_mode_tab/ModCreativeModeTabs.java @@ -2,7 +2,6 @@ package dev.micle.firefly_bush_backport.creative_mode_tab; import dev.micle.firefly_bush_backport.FireflyBushBackport; import dev.micle.firefly_bush_backport.block.ModBlocks; -import dev.micle.firefly_bush_backport.item.ModItems; import net.minecraft.core.registries.Registries; import net.minecraft.network.chat.Component; import net.minecraft.world.item.CreativeModeTab; diff --git a/src/main/java/dev/micle/firefly_bush_backport/item/ModItems.java b/src/main/java/dev/micle/firefly_bush_backport/item/ModItems.java index acd215d..2904912 100644 --- a/src/main/java/dev/micle/firefly_bush_backport/item/ModItems.java +++ b/src/main/java/dev/micle/firefly_bush_backport/item/ModItems.java @@ -1,13 +1,10 @@ package dev.micle.firefly_bush_backport.item; import dev.micle.firefly_bush_backport.FireflyBushBackport; -import dev.micle.firefly_bush_backport.block.FireflyBushBlock; import net.minecraft.world.item.Item; -import net.minecraft.world.level.block.Block; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; -import net.minecraftforge.registries.RegistryObject; public class ModItems { public static final DeferredRegister ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, FireflyBushBackport.MOD_ID);