[1.16.1] Armor and Implementing Custom Models
-
Recently Browsing
No registered users viewing this page.
-
Posts
-
By diesieben07 · Posted
DeferredRegister usage is explained both in the documentation about registries as well as the DeferredRegister javadoc. I'll repeat it here for you: private static final DeferredRegister<Block> MINECRAFT_BLOCK_OVERRIDES = DeferredRegister.create(ForgeRegistries.BLOCKS, "minecraft"); public static final RegistryObject<Block> SAND = MINECRAFT_BLOCK_OVERRIDES.register( "sand", () -> new Block(...) ) -
By diesieben07 · Posted
Do not put DeferredRegister and their entries in separate classes. It can lead to issues due to unloaded classes. Using the empty register method is an ugly hack and not necessary. -
I'm trying to register an object that uses other items in the class but I'm not sure how to make it register properly Blueprints.java: (creating new blueprint) public class Blueprints { private static final List<Blueprint.Resource> SKANA_RESOURCES = Arrays.asList( new Blueprint.Resource(Items.STICK, 1), new Blueprint.Resource(Resources.MORPHICS.get(), 1) ); public static final RegistryObject<Item> SKANA_BLUEPRINT = Registration.ITEMS.register("skana_blueprint", () -> new Blueprint(new Item.Properties().tab(TennoMC.TAB_TENNO), SKANA_RESOURCES, Swords.SKANA.get()) ); public static void register() {} } Blueprint.java: (my new class) public class Blueprint extends Item { public List<Resource> resources; public Item outputItem; public Blueprint(Properties properties, List<Resource> resources, Item outputItem) { super(properties); this.resources = resources; this.outputItem = outputItem; } public static class Resource { public final Item item; public final int amount; public Resource(Item item, int amount) { this.item = item; this.amount = amount; } } } Registration.java: public class Registration { public static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, TennoMC.MOD_ID); public static void init() { IEventBus eventBus = FMLJavaModLoadingContext.get().getModEventBus(); ITEMS.register(eventBus); } } TennoMC.java: public TennoMC { registerModAdditions(); } private void registerModAdditions() { // Inits additions Registration.init(); // Inits in game items Resources.register(); Blueprints.register(); }
-
Then, Explain to me how to do the exact same thing in the correct way... as I've not seen hide nor hair of it of how to properly do it. For a very select few blocks, have a custom block class (say SandBlock or Gravelblock) with gravity override, and still retain the same namespace as if it wasn't there (minecraft:sand , as exampe) If you actually wanna be helpful, explain how that's done and actually explain things. It's clear I'm not sure how to pull it off with the same requirement checked off. -- Saying 'Don't do it that way' isn't helpful, when it's not clear how to do it 'the other way' & still achieve the same goal.
-
Topics
-
Who's Online (See full list)
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.