Skip to content

Instantly share code, notes, and snippets.

@Lanse505
Last active January 16, 2021 20:16
Show Gist options
  • Save Lanse505/6afc0747a1f53af1277da2fd6e423cec to your computer and use it in GitHub Desktop.
Save Lanse505/6afc0747a1f53af1277da2fd6e423cec to your computer and use it in GitHub Desktop.
// Tier 1
public static ItemEntry<EssenceAxe> ESSENCE_AXE = getTool("essence_axe_", "Essence Axe", EssenceAxe.class, EssenceToolTiers.ESSENCE, axeRecipe(ESSENCE_INGOT.get(), new ResourceLocation("essence_axe")), EssenceTags.EssenceItemTags.ESSENCE_AXE);
public static ItemEntry<EssencePickaxe> ESSENCE_PICKAXE = getTool("essence_pickaxe_", "Essence Pickaxe", EssencePickaxe.class, EssenceToolTiers.ESSENCE, pickaxeRecipe(ESSENCE_INGOT.get(), new ResourceLocation("essence_pickaxe")), EssenceTags.EssenceItemTags.ESSENCE_PICKAXE);
public static ItemEntry<EssenceShovel> ESSENCE_SHOVEL = getTool("essence_shovel_", "Essence Shovel", EssenceShovel.class, EssenceToolTiers.ESSENCE, shovelRecipe(ESSENCE_INGOT.get(), new ResourceLocation("essence_shovel")), EssenceTags.EssenceItemTags.ESSENCE_SHOVEL);
public static ItemEntry<EssenceSword> ESSENCE_SWORD = getTool("essence_sword_", "Essence Sword", EssenceSword.class, EssenceToolTiers.ESSENCE, swordRecipe(ESSENCE_INGOT.get(), new ResourceLocation("essence_sword")), EssenceTags.EssenceItemTags.ESSENCE_SWORD);
public static ItemEntry<EssenceHoe> ESSENCE_HOE = getTool("essence_hoe_", "Essence Hoe", EssenceHoe.class, EssenceToolTiers.ESSENCE, hoeRecipe(ESSENCE_INGOT.get(), new ResourceLocation("essence_hoe")), EssenceTags.EssenceItemTags.ESSENCE_HOE);
public static ItemEntry<EssenceOmniTool> ESSENCE_OMNITOOL = getTool("essence_omnitool_", "Essence Omni-Tool", EssenceOmniTool.class, EssenceToolTiers.ESSENCE, omnitoolRecipe(ESSENCE_AXE.get(), ESSENCE_SHOVEL.get(), ESSENCE_PICKAXE.get(), new ResourceLocation("essence_omnitool")), EssenceTags.EssenceItemTags.ESSENCE_OMNITOOL);
public static ItemEntry<EssenceShear> ESSENCE_SHEAR = getTool("essence_shear_", "Essence Shear", EssenceShear.class, EssenceToolTiers.ESSENCE, shearRecipe(ESSENCE_INGOT.get(), new ResourceLocation("essence_shear")), EssenceTags.EssenceItemTags.ESSENCE_SHEAR);
public static ItemEntry<EssenceBow> ESSENCE_BOW = getTool("essence_bow_", "Essence Bow", EssenceBow.class, EssenceToolTiers.ESSENCE, bowRecipe(ESSENCE_NUGGET.get(), new ResourceLocation("essence_bow")), EssenceTags.EssenceItemTags.ESSENCE_BOW);
// Tier 2
public static ItemEntry<EssenceAxe> ESSENCE_AXE_EMPOWERED = getTool("essence_axe_", "Essence Axe", EssenceAxe.class, EssenceToolTiers.EMPOWERED_ESSENCE, axeRecipe(ESSENCE_INGOT_EMPOWERED.get(), new ResourceLocation(Essence.MOD_ID, "essence_axe_empowered")), EssenceTags.EssenceItemTags.ESSENCE_AXE);
public static ItemEntry<EssencePickaxe> ESSENCE_PICKAXE_EMPOWERED = getTool("essence_pickaxe_", "Essence Pickaxe", EssencePickaxe.class, EssenceToolTiers.EMPOWERED_ESSENCE, pickaxeRecipe(ESSENCE_INGOT_EMPOWERED.get(), new ResourceLocation(Essence.MOD_ID, "essence_pickaxe_empowered")), EssenceTags.EssenceItemTags.ESSENCE_PICKAXE);
public static ItemEntry<EssenceShovel> ESSENCE_SHOVEL_EMPOWERED = getTool("essence_shovel_", "Essence Shovel", EssenceShovel.class, EssenceToolTiers.EMPOWERED_ESSENCE, shovelRecipe(ESSENCE_INGOT_EMPOWERED.get(), new ResourceLocation(Essence.MOD_ID, "essence_shovel_empowered")), EssenceTags.EssenceItemTags.ESSENCE_SHOVEL);
public static ItemEntry<EssenceSword> ESSENCE_SWORD_EMPOWERED = getTool("essence_sword_", "Essence Sword", EssenceSword.class, EssenceToolTiers.EMPOWERED_ESSENCE, swordRecipe(ESSENCE_INGOT_EMPOWERED.get(), new ResourceLocation(Essence.MOD_ID, "essence_sword_empowered")), EssenceTags.EssenceItemTags.ESSENCE_SWORD);
public static ItemEntry<EssenceHoe> ESSENCE_HOE_EMPOWERED = getTool("essence_hoe_", "Essence Hoe", EssenceHoe.class, EssenceToolTiers.EMPOWERED_ESSENCE, hoeRecipe(ESSENCE_INGOT_EMPOWERED.get(), new ResourceLocation(Essence.MOD_ID, "essence_hoe_empowered")), EssenceTags.EssenceItemTags.ESSENCE_HOE);
public static ItemEntry<EssenceOmniTool> ESSENCE_OMNITOOL_EMPOWERED = getTool("essence_omnitool_", "Essence Omni-Tool", EssenceOmniTool.class, EssenceToolTiers.EMPOWERED_ESSENCE, omnitoolRecipe(ESSENCE_AXE_EMPOWERED.get(), ESSENCE_SHOVEL_EMPOWERED.get(), ESSENCE_PICKAXE_EMPOWERED.get(), new ResourceLocation(Essence.MOD_ID, "essence_omnitool_empowered")), EssenceTags.EssenceItemTags.ESSENCE_OMNITOOL);
public static ItemEntry<EssenceShear> ESSENCE_SHEAR_EMPOWERED = getTool("essence_shear_", "Essence Shear", EssenceShear.class, EssenceToolTiers.EMPOWERED_ESSENCE, shearRecipe(ESSENCE_INGOT_EMPOWERED.get(), new ResourceLocation(Essence.MOD_ID, "essence_shear_empowered")), EssenceTags.EssenceItemTags.ESSENCE_SHEAR);
public static ItemEntry<EssenceBow> ESSENCE_BOW_EMPOWERED = getTool("essence_bow_", "Essence Bow", EssenceBow.class, EssenceToolTiers.EMPOWERED_ESSENCE, bowRecipe(ESSENCE_NUGGET_EMPOWERED.get(), new ResourceLocation(Essence.MOD_ID, "essence_bow_empowered")), EssenceTags.EssenceItemTags.ESSENCE_BOW);
// Tier 3
public static ItemEntry<EssenceAxe> ESSENCE_AXE_SUPREME = getTool("essence_axe_", "Essence Axe", EssenceAxe.class, EssenceToolTiers.SUPREME_ESSENCE, axeRecipe(ESSENCE_INGOT_SUPREME.get(), new ResourceLocation("essence_axe_supreme")), EssenceTags.EssenceItemTags.ESSENCE_AXE);
public static ItemEntry<EssencePickaxe> ESSENCE_PICKAXE_SUPREME = getTool("essence_pickaxe_", "Essence Pickaxe", EssencePickaxe.class, EssenceToolTiers.SUPREME_ESSENCE, pickaxeRecipe(ESSENCE_INGOT_SUPREME.get(), new ResourceLocation("essence_pickaxe_supreme")), EssenceTags.EssenceItemTags.ESSENCE_PICKAXE);
public static ItemEntry<EssenceShovel> ESSENCE_SHOVEL_SUPREME = getTool("essence_shovel_", "Essence Shovel", EssenceShovel.class, EssenceToolTiers.SUPREME_ESSENCE, shovelRecipe(ESSENCE_INGOT_SUPREME.get(), new ResourceLocation("essence_shovel_supreme")), EssenceTags.EssenceItemTags.ESSENCE_SHOVEL);
public static ItemEntry<EssenceSword> ESSENCE_SWORD_SUPREME = getTool("essence_sword_", "Essence Sword", EssenceSword.class, EssenceToolTiers.SUPREME_ESSENCE, swordRecipe(ESSENCE_INGOT_SUPREME.get(), new ResourceLocation("essence_sword_supreme")), EssenceTags.EssenceItemTags.ESSENCE_SWORD);
public static ItemEntry<EssenceHoe> ESSENCE_HOE_SUPREME = getTool("essence_hoe_", "Essence Hoe", EssenceHoe.class, EssenceToolTiers.SUPREME_ESSENCE, hoeRecipe(ESSENCE_INGOT_SUPREME.get(), new ResourceLocation("essence_hoe_supreme")), EssenceTags.EssenceItemTags.ESSENCE_HOE);
public static ItemEntry<EssenceOmniTool> ESSENCE_OMNITOOL_SUPREME = getTool("essence_omnitool_", "Essence Omni-Tool", EssenceOmniTool.class, EssenceToolTiers.SUPREME_ESSENCE, omnitoolRecipe(ESSENCE_AXE_SUPREME.get(), ESSENCE_SHOVEL_SUPREME.get(), ESSENCE_PICKAXE_SUPREME.get(), new ResourceLocation("essence_omnitool_supreme")), EssenceTags.EssenceItemTags.ESSENCE_OMNITOOL);
public static ItemEntry<EssenceShear> ESSENCE_SHEAR_SUPREME = getTool("essence_shear_", "Essence Shear", EssenceShear.class, EssenceToolTiers.SUPREME_ESSENCE, shearRecipe(ESSENCE_INGOT_SUPREME.get(), new ResourceLocation("essence_shear_supreme")), EssenceTags.EssenceItemTags.ESSENCE_SHEAR);
public static ItemEntry<EssenceBow> ESSENCE_BOW_SUPREME = getTool("essence_bow_", "Essence Bow", EssenceBow.class, EssenceToolTiers.SUPREME_ESSENCE, bowRecipe(ESSENCE_NUGGET_SUPREME.get(), new ResourceLocation("essence_bow_supreme")), EssenceTags.EssenceItemTags.ESSENCE_BOW);
// Tier 4
public static ItemEntry<EssenceAxe> ESSENCE_AXE_DIVINE = getTool("essence_axe_", "Essence Axe", EssenceAxe.class, EssenceToolTiers.DIVINE_ESSENCE, axeRecipe(ESSENCE_INGOT_DIVINE.get(), new ResourceLocation("essence_axe_divine")), EssenceTags.EssenceItemTags.ESSENCE_AXE);
public static ItemEntry<EssencePickaxe> ESSENCE_PICKAXE_DIVINE = getTool("essence_pickaxe_", "Essence Pickaxe", EssencePickaxe.class, EssenceToolTiers.DIVINE_ESSENCE, pickaxeRecipe(ESSENCE_INGOT_DIVINE.get(), new ResourceLocation("essence_pickaxe_divine")), EssenceTags.EssenceItemTags.ESSENCE_PICKAXE);
public static ItemEntry<EssenceShovel> ESSENCE_SHOVEL_DIVINE = getTool("essence_shovel_", "Essence Shovel", EssenceShovel.class, EssenceToolTiers.DIVINE_ESSENCE, shovelRecipe(ESSENCE_INGOT_DIVINE.get(), new ResourceLocation("essence_shovel_divine")), EssenceTags.EssenceItemTags.ESSENCE_SHOVEL);
public static ItemEntry<EssenceSword> ESSENCE_SWORD_DIVINE = getTool("essence_sword_", "Essence Sword", EssenceSword.class, EssenceToolTiers.DIVINE_ESSENCE, swordRecipe(ESSENCE_INGOT_DIVINE.get(), new ResourceLocation("essence_sword_divine")), EssenceTags.EssenceItemTags.ESSENCE_SWORD);
public static ItemEntry<EssenceHoe> ESSENCE_HOE_DIVINE = getTool("essence_hoe_", "Essence Hoe", EssenceHoe.class, EssenceToolTiers.DIVINE_ESSENCE, hoeRecipe(ESSENCE_INGOT_DIVINE.get(), new ResourceLocation("essence_hoe_divine")), EssenceTags.EssenceItemTags.ESSENCE_HOE);
public static ItemEntry<EssenceOmniTool> ESSENCE_OMNITOOL_DIVINE = getTool("essence_omnitool_", "Essence Omni-Tool", EssenceOmniTool.class, EssenceToolTiers.DIVINE_ESSENCE, omnitoolRecipe(ESSENCE_AXE_DIVINE.get(), ESSENCE_SHOVEL_DIVINE.get(), ESSENCE_PICKAXE_DIVINE.get(), new ResourceLocation("essence_omnitool_divine")), EssenceTags.EssenceItemTags.ESSENCE_OMNITOOL);
public static ItemEntry<EssenceShear> ESSENCE_SHEAR_DIVINE = getTool("essence_shear_", "Essence Shear", EssenceShear.class, EssenceToolTiers.DIVINE_ESSENCE, shearRecipe(ESSENCE_INGOT_DIVINE.get(), new ResourceLocation("essence_shear_divine")), EssenceTags.EssenceItemTags.ESSENCE_SHEAR);
public static ItemEntry<EssenceBow> ESSENCE_BOW_DIVINE = getTool("essence_bow_", "Essence Bow", EssenceBow.class, EssenceToolTiers.DIVINE_ESSENCE, bowRecipe(ESSENCE_NUGGET_DIVINE.get(), new ResourceLocation("essence_bow_divine")), EssenceTags.EssenceItemTags.ESSENCE_BOW);
@SuppressWarnings("unchecked")
public static <T extends Item> ItemEntry<T> getTool(String name, String lang, Class<T> tool, EssenceToolTiers tier, NonNullBiConsumer<DataGenContext<Item, Item>, RegistrateRecipeProvider> recipeConsumer, ITag.INamedTag<Item>... tags) {
return (ItemEntry<T>) REGISTRATE.object(name + (tier == EssenceToolTiers.ESSENCE ? name.substring(0, name.length() - 1) : tier.toString().toLowerCase()))
.item(properties -> generateMap.get(tool).apply(properties, tier))
.lang(lang).tag(tags)
.recipe(recipeConsumer)
.group(() -> Essence.TOOL_TAB)
.register();
}
public static <T extends Item> NonNullBiConsumer<DataGenContext<Item, T>, RegistrateRecipeProvider> axeRecipe(Item ingot, ResourceLocation rl) {
return (context, provider) -> ShapedRecipeBuilder.shapedRecipe(context.get(), 1).patternLine("ii ").patternLine("is ").patternLine(" s ").key('i', ingot).key('s', ESSENCE_STICK.get()).build(provider, rl);
}
public static <T extends Item> NonNullBiConsumer<DataGenContext<Item, T>, RegistrateRecipeProvider> pickaxeRecipe(Item ingot, ResourceLocation rl) {
return (context, provider) -> ShapedRecipeBuilder.shapedRecipe(context.get(), 1).patternLine("iii").patternLine(" s ").patternLine(" s ").key('i', ingot).key('s', ESSENCE_STICK.get()).build(provider, rl);
}
public static <T extends Item> NonNullBiConsumer<DataGenContext<Item, T>, RegistrateRecipeProvider> shovelRecipe(Item ingot, ResourceLocation rl) {
return (context, provider) -> ShapedRecipeBuilder.shapedRecipe(context.get(), 1).patternLine(" i ").patternLine(" s ").patternLine(" s ").key('i', ingot).key('s', ESSENCE_STICK.get()).build(provider, rl);
}
public static <T extends Item> NonNullBiConsumer<DataGenContext<Item, T>, RegistrateRecipeProvider> swordRecipe(Item ingot, ResourceLocation rl) {
return (context, provider) -> ShapedRecipeBuilder.shapedRecipe(context.get(), 1).patternLine(" i ").patternLine(" i ").patternLine(" s ").key('i', ingot).key('s', ESSENCE_STICK.get()).build(provider, rl);
}
public static <T extends Item> NonNullBiConsumer<DataGenContext<Item, T>, RegistrateRecipeProvider> shearRecipe(Item ingot, ResourceLocation rl) {
return (context, provider) -> ShapedRecipeBuilder.shapedRecipe(context.get(), 1).patternLine(" i").patternLine("i ").key('i', ingot).build(provider, rl);
}
public static <T extends Item> NonNullBiConsumer<DataGenContext<Item, T>, RegistrateRecipeProvider> bowRecipe(Item nugget, ResourceLocation rl) {
return (context, provider) -> ShapedRecipeBuilder.shapedRecipe(context.get(), 1).patternLine("stn").patternLine("s t").patternLine("stn").key('t', ESSENCE_STICK.get()).key('s', Ingredient.fromTag(Tags.Items.STRING)).key('n', nugget).build(provider, rl);
}
public static <T extends Item> NonNullBiConsumer<DataGenContext<Item, T>, RegistrateRecipeProvider> omnitoolRecipe(Item axe, Item shovel, Item pickaxe, ResourceLocation rl) {
return (context, provider) -> ShapedRecipeBuilder.shapedRecipe(context.get(), 1).patternLine("asp").patternLine(" t ").patternLine(" t ").key('a', axe).key('s', shovel).key('p', pickaxe).key('t', ESSENCE_STICK.get()).build(provider, rl);
}
public static <T extends Item> NonNullBiConsumer<DataGenContext<Item, T>, RegistrateRecipeProvider> hoeRecipe(Item ingot, ResourceLocation rl) {
return (context, provider) -> ShapedRecipeBuilder.shapedRecipe(context.get(), 1).patternLine("ii ").patternLine(" s ").patternLine(" s ").key('i', ingot).key('s', ESSENCE_STICK.get()).build(provider, rl);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment