Skip to content

Instantly share code, notes, and snippets.

@bl4ckscor3
Last active December 6, 2022 10:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bl4ckscor3/a922b622930e9d9e221339a8db85f6ed to your computer and use it in GitHub Desktop.
Save bl4ckscor3/a922b622930e9d9e221339a8db85f6ed to your computer and use it in GitHub Desktop.
Example of how to add a reinforced block variant to an already existing modded block
--- a/src/main/java/bl4ckscor3/mod/cookieblock/CookieBlock.java
+++ b/src/main/java/bl4ckscor3/mod/cookieblock/CookieBlock.java
@@ -1,5 +1,9 @@
package bl4ckscor3.mod.cookieblock;
+import net.geforcemods.securitycraft.ConfigHandler;
+import net.geforcemods.securitycraft.blocks.reinforced.BaseReinforcedBlock;
+import net.geforcemods.securitycraft.blocks.reinforced.IReinforcedBlock;
+import net.minecraft.client.Minecraft;
import net.minecraft.world.food.FoodProperties;
import net.minecraft.world.item.BlockItem;
import net.minecraft.world.item.CreativeModeTab;
@@ -12,6 +16,8 @@ import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
import net.minecraftforge.fml.common.Mod.EventBusSubscriber.Bus;
+import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
+import net.minecraftforge.fml.event.lifecycle.InterModProcessEvent;
import net.minecraftforge.registries.ObjectHolder;
@Mod(CookieBlock.MODID)
@@ -21,16 +27,39 @@ public class CookieBlock
public static final String MODID = "cookieblock";
@ObjectHolder(MODID + ":" + MODID)
public static final Block COOKIE_BLOCK = null;
+ @ObjectHolder(MODID + ":reinforced_" + MODID)
+ public static final Block REINFORCED_COOKIE_BLOCK = null;
@SubscribeEvent
public static void registerBlock(RegistryEvent.Register<Block> event)
{
event.getRegistry().register(new Block(Block.Properties.of(Material.STONE).strength(0.25F).sound(SoundType.STONE)).setRegistryName(MODID, MODID));
+ event.getRegistry().register(new BaseReinforcedBlock(Block.Properties.of(Material.STONE).strength(-1.0F, 6000000.0F).sound(SoundType.STONE), () -> COOKIE_BLOCK).setRegistryName(MODID, "reinforced_"+MODID));
}
@SubscribeEvent
public static void registerItem(RegistryEvent.Register<Item> event)
{
event.getRegistry().register(new BlockItem(COOKIE_BLOCK, new Item.Properties().tab(CreativeModeTab.TAB_FOOD).food(new FoodProperties.Builder().nutrition(18).saturationMod(0.9F).build())).setRegistryName(COOKIE_BLOCK.getRegistryName()));
+ event.getRegistry().register(new BlockItem(REINFORCED_COOKIE_BLOCK, new Item.Properties().tab(CreativeModeTab.TAB_FOOD).food(new FoodProperties.Builder().nutrition(18).saturationMod(0.9F).build())).setRegistryName(REINFORCED_COOKIE_BLOCK.getRegistryName()));
+ }
+
+ @SubscribeEvent
+ public static void onInterModProcess(InterModProcessEvent event) {
+ IReinforcedBlock.VANILLA_TO_SECURITYCRAFT.put(COOKIE_BLOCK, REINFORCED_COOKIE_BLOCK);
+ IReinforcedBlock.SECURITYCRAFT_TO_VANILLA.put(REINFORCED_COOKIE_BLOCK, COOKIE_BLOCK);
+ }
+
+ @SubscribeEvent
+ public static void onClientSetup(FMLClientSetupEvent event)
+ {
+ Minecraft.getInstance().getBlockColors().register((state, world, pos, tintIndex) -> getTint(), REINFORCED_COOKIE_BLOCK);
+ Minecraft.getInstance().getItemColors().register((stack, tintIndex) -> getTint(), REINFORCED_COOKIE_BLOCK.asItem());
+ }
+
+ private static int getTint() {
+ boolean tintReinforcedBlocks = ConfigHandler.SERVER.forceReinforcedBlockTint.get() ? ConfigHandler.SERVER.reinforcedBlockTint.get() : ConfigHandler.CLIENT.reinforcedBlockTint.get();
+
+ return tintReinforcedBlocks ? ConfigHandler.CLIENT.reinforcedBlockTintColor.get() : 0xFFFFFF; //use 0x999999 instead of the config option when adding support for SecurityCraft <v1.9.5
}
}
{
"parent": "securitycraft:block/reinforced_cube_all",
"textures": {
"all": "cookieblock:block/cookieblock"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment