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

Support & Bug Reports

Help with Forge goes here. Refer to Modder Support for help with Forge modding. You MUST read the EAQ before posting.


23302 topics in this forum

    • 3 replies
    • 103 views
    • 13 replies
    • 661 views
  1. Unexpected Custom Data

    • 8 replies
    • 620 views
    • 1 reply
    • 85 views
    • 2 replies
    • 148 views
    • 3 replies
    • 209 views
    • 1 reply
    • 90 views
    • 1 reply
    • 81 views
    • 1 reply
    • 80 views
    • 1 reply
    • 132 views
    • 1 reply
    • 133 views
    • 5 replies
    • 222 views
    • 1 reply
    • 94 views
    • 1 reply
    • 81 views
    • 1 reply
    • 202 views
    • 1 reply
    • 125 views
    • 24 replies
    • 5k views
    • 9 replies
    • 1.4k views
    • 3 replies
    • 456 views
    • 2 replies
    • 127 views
    • 1 reply
    • 93 views
    • 1 reply
    • 154 views
    • 3 replies
    • 134 views
    • 6 replies
    • 495 views
    • 5 replies
    • 258 views


  • Posts

    • I tried, but same problem
    • 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.
  • Topics

  • Who's Online (See full list)

×
×
  • Create New...

Important Information

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