Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

General Discussion

Feel free to talk about anything and everything related to Minecraft Forge in this board.


2509 topics in this forum

    • 2 replies
    • 1.4k views
    • 1 reply
    • 432 views
    • 1 reply
    • 9.7k views
    • 2 replies
    • 1k views
    • 0 replies
    • 1.2k views
    • 5 replies
    • 2.4k views
    • 2 replies
    • 308 views
    • 3 replies
    • 508 views
    • 7 replies
    • 10k views
    • 1 reply
    • 559 views
    • 1 reply
    • 459 views
    • 0 replies
    • 726 views
    • 6 replies
    • 748 views
    • 6 replies
    • 820 views
    • 4 replies
    • 972 views
    • 1 reply
    • 1.4k views
    • 1 reply
    • 1.3k views
    • 3 replies
    • 835 views
    • 4 replies
    • 4.4k views
    • 2 replies
    • 545 views
    • 1 reply
    • 1.3k views
    • 1 reply
    • 1.6k views
    • 0 replies
    • 834 views
    • 2 replies
    • 1.2k views
    • 3 replies
    • 4.4k views


  • Posts

    • 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(...) )  
    • 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.
    • Your Java installation is borked. Reinstall Java.
  • Topics

  • Who's Online (See full list)

×
×
  • Create New...

Important Information

By using this site, you agree to our Privacy Policy.