From 1a86b04d712b52e02563abe2c2d6e6b1a51ecb80 Mon Sep 17 00:00:00 2001 From: Jenny Date: Mon, 3 Feb 2025 19:36:35 +0100 Subject: [PATCH] automatic creativeTab creation & placeholder ConfigCommon --- .../EnhancedExplosives.java | 5 +- .../config/ConfigCommon.java | 21 +++++++++ .../jenny/enhancedexplosives/creativeTab.java | 47 +++++++++++-------- .../jenny/enhancedexplosives/items/items.java | 2 +- 4 files changed, 52 insertions(+), 23 deletions(-) create mode 100644 src/main/java/com/jenny/enhancedexplosives/config/ConfigCommon.java diff --git a/src/main/java/com/jenny/enhancedexplosives/EnhancedExplosives.java b/src/main/java/com/jenny/enhancedexplosives/EnhancedExplosives.java index 400689a..03241e7 100644 --- a/src/main/java/com/jenny/enhancedexplosives/EnhancedExplosives.java +++ b/src/main/java/com/jenny/enhancedexplosives/EnhancedExplosives.java @@ -1,6 +1,7 @@ package com.jenny.enhancedexplosives; import com.jenny.enhancedexplosives.blocks.blocks; +import com.jenny.enhancedexplosives.config.ConfigCommon; import com.jenny.enhancedexplosives.particles.particles; import com.jenny.enhancedexplosives.config.ConfigClient; import com.jenny.enhancedexplosives.entities.entities; @@ -39,11 +40,10 @@ public class EnhancedExplosives { // Register ourselves for server and other game events we are interested in MinecraftForge.EVENT_BUS.register(this); - ModLoadingContext.get().registerConfig(ModConfig.Type.CLIENT, ConfigClient.SPEC); } private void commonSetup(final FMLCommonSetupEvent event) { - + ModLoadingContext.get().registerConfig(ModConfig.Type.COMMON, ConfigCommon.SPEC); } // You can use SubscribeEvent and let the Event Bus discover methods to call @@ -58,6 +58,7 @@ public class EnhancedExplosives { @SubscribeEvent public static void onClientSetup(FMLClientSetupEvent event) { + ModLoadingContext.get().registerConfig(ModConfig.Type.CLIENT, ConfigClient.SPEC); entities.registerRenderers(); } } diff --git a/src/main/java/com/jenny/enhancedexplosives/config/ConfigCommon.java b/src/main/java/com/jenny/enhancedexplosives/config/ConfigCommon.java new file mode 100644 index 0000000..0ca52d4 --- /dev/null +++ b/src/main/java/com/jenny/enhancedexplosives/config/ConfigCommon.java @@ -0,0 +1,21 @@ +package com.jenny.enhancedexplosives.config; + +import net.minecraftforge.common.ForgeConfigSpec; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.event.config.ModConfigEvent; + +import static com.jenny.enhancedexplosives.EnhancedExplosives.MODID; + +@Mod.EventBusSubscriber(modid = MODID, bus = Mod.EventBusSubscriber.Bus.MOD) +public class ConfigCommon { + private static final ForgeConfigSpec.Builder BUILDER = new ForgeConfigSpec.Builder(); + + public static final ForgeConfigSpec SPEC = BUILDER.build(); + + + @SubscribeEvent + static void onLoad(final ModConfigEvent event) + { + } +} diff --git a/src/main/java/com/jenny/enhancedexplosives/creativeTab.java b/src/main/java/com/jenny/enhancedexplosives/creativeTab.java index 6048c57..8324e1f 100644 --- a/src/main/java/com/jenny/enhancedexplosives/creativeTab.java +++ b/src/main/java/com/jenny/enhancedexplosives/creativeTab.java @@ -1,43 +1,50 @@ package com.jenny.enhancedexplosives; import com.jenny.enhancedexplosives.blocks.blocks; -import com.jenny.enhancedexplosives.items.items; +import com.jenny.enhancedexplosives.items.items; import net.minecraft.core.registries.Registries; import net.minecraft.network.chat.Component; import net.minecraft.world.item.CreativeModeTab; import net.minecraft.world.item.CreativeModeTabs; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.RegistryObject; +import java.util.Arrays; + import static com.jenny.enhancedexplosives.EnhancedExplosives.MODID; public class creativeTab { public static final DeferredRegister CREATIVE_MODE_TABS = DeferredRegister.create(Registries.CREATIVE_MODE_TAB, MODID); public static final RegistryObject CREATIVE_TAB = CREATIVE_MODE_TABS.register("enhancedexplosives", () -> CreativeModeTab.builder().withTabsBefore(CreativeModeTabs.COMBAT).icon(() -> blocks.TNT_8_ITEM.get().getDefaultInstance()).displayItems((parameters, output) -> { - output.accept(blocks.TNT_8.get()); - output.accept(blocks.TNT_16.get()); - output.accept(blocks.TNT_32.get()); - output.accept(blocks.TNT_64.get()); - output.accept(blocks.TNT_128.get()); - output.accept(blocks.TNT_CLUSTER_2.get()); - output.accept(blocks.TNT_CLUSTER_4.get()); - output.accept(blocks.TNT_CLUSTER_8.get()); - output.accept(blocks.TNT_HOMING.get()); - output.accept(blocks.TNT_BLACK_HOLE.get()); - output.accept(blocks.TNT_REPULSIVE.get()); - output.accept(blocks.TNT_CLAYMORE.get()); - output.accept(blocks.TNT_SELECTIVE.get()); - output.accept(blocks.TNT_ENDER.get()); - output.accept(items.TNT_ARROW.get()); - output.accept(items.CONCUSSIVE_ARROW.get()); - output.accept(items.CARPET_ARROW.get()); - output.accept(items.TUNNEL_ARROW.get()); - output.accept(items.DYNAMITE.get()); + output.acceptAll(Arrays.stream(getBlocks()).toList()); + output.acceptAll(Arrays.stream(getItems()).toList()); }).title(Component.literal("Enhanced Explosives")).build()); public static void register(IEventBus bus) { CREATIVE_MODE_TABS.register(bus); } + + public static ItemStack[] getBlocks() { + ItemStack[] ret = new ItemStack[blocks.ITEMS.getEntries().size()]; + int i = 0; + for (RegistryObject item : blocks.ITEMS.getEntries()) { + ret[i] = item.get().getDefaultInstance(); + i++; + } + return ret; + } + + public static ItemStack[] getItems() { + ItemStack[] ret = new ItemStack[items.ITEMS.getEntries().size()]; + int i = 0; + for (RegistryObject item : items.ITEMS.getEntries()) { + ret[i] = item.get().getDefaultInstance(); + i++; + } + return ret; + } } diff --git a/src/main/java/com/jenny/enhancedexplosives/items/items.java b/src/main/java/com/jenny/enhancedexplosives/items/items.java index fa8e8ff..8aa9d5f 100644 --- a/src/main/java/com/jenny/enhancedexplosives/items/items.java +++ b/src/main/java/com/jenny/enhancedexplosives/items/items.java @@ -14,8 +14,8 @@ public class items { public static final RegistryObject TNT_ARROW = ITEMS.register("arrow_tnt", () -> new ArrowTNT(new Item.Properties())); public static final RegistryObject CONCUSSIVE_ARROW = ITEMS.register("arrow_concussive", () -> new ArrowConcussive(new Item.Properties())); public static final RegistryObject CARPET_ARROW = ITEMS.register("arrow_carpet", () -> new ArrowCarpet(new Item.Properties())); - public static final RegistryObject DYNAMITE = ITEMS.register("dynamite", () -> new Dynamite(new Item.Properties())); public static final RegistryObject TUNNEL_ARROW = ITEMS.register("arrow_tunnel", () -> new ArrowTunnel(new Item.Properties())); + public static final RegistryObject DYNAMITE = ITEMS.register("dynamite", () -> new Dynamite(new Item.Properties())); public static void register(IEventBus bus) { ITEMS.register(bus);