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();
}