Infusion enchantment books

This commit is contained in:
Aleksey 2021-01-03 16:04:58 +03:00
parent 2e56feec93
commit 479f506ca8
9 changed files with 586 additions and 12 deletions

View file

@ -65,7 +65,7 @@ public class ConfigKey {
@Override @Override
public String toString() { public String toString() {
if (root) { if (root) {
return String.format("ROOT:%s", entry); return String.format("[root]:%s", entry);
} }
String p = path[0]; String p = path[0];
for (int i = 1; i < path.length; i++) { for (int i = 1; i < path.length; i++) {

View file

@ -20,7 +20,7 @@ public class PathConfig extends Config {
} }
protected ConfigKey createKey(String key) { protected ConfigKey createKey(String key) {
return new ConfigKey(key, ""); return createKey("", key);
} }
@Nullable @Nullable

View file

@ -0,0 +1,23 @@
package ru.betterend.item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.Rarity;
import ru.betterend.patterns.Patterns;
import ru.betterend.registry.EndItems;
public class EnchantedPetal extends PatternedItem {
public EnchantedPetal() {
super(EndItems.makeItemSettings().rarity(Rarity.RARE).maxCount(16));
}
@Override
public boolean hasGlint(ItemStack stack) {
return true;
}
@Override
public String getModelPattern(String name) {
return Patterns.createJson(Patterns.ITEM_GENERATED, "item/hydralux_petal");
}
}

View file

@ -1,10 +1,11 @@
package ru.betterend.item; package ru.betterend.item;
import net.minecraft.util.Rarity;
import ru.betterend.registry.EndItems; import ru.betterend.registry.EndItems;
public class EternalCrystal extends PatternedItem { public class EternalCrystal extends PatternedItem {
public EternalCrystal() { public EternalCrystal() {
super(EndItems.makeItemSettings().maxCount(16)); super(EndItems.makeItemSettings().maxCount(16).rarity(Rarity.EPIC));
} }
} }

View file

@ -1,5 +1,11 @@
package ru.betterend.recipe; package ru.betterend.recipe;
import net.minecraft.block.Blocks;
import net.minecraft.enchantment.Enchantment;
import net.minecraft.enchantment.EnchantmentLevelEntry;
import net.minecraft.enchantment.Enchantments;
import net.minecraft.item.EnchantedBookItem;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items; import net.minecraft.item.Items;
import ru.betterend.recipe.builders.InfusionRecipe; import ru.betterend.recipe.builders.InfusionRecipe;
import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndBlocks;
@ -66,5 +72,520 @@ public class InfusionRecipes {
.addCatalyst(6, EndItems.CRYSTAL_SHARDS) .addCatalyst(6, EndItems.CRYSTAL_SHARDS)
.setTime(150) .setTime(150)
.build(); .build();
InfusionRecipe.Builder.create("enchanted_petal")
.setInput(EndItems.HYDRALUX_PETAL)
.setOutput(EndItems.ENCHANTED_PETAL)
.addCatalyst(0, EndItems.CRYSTAL_SHARDS)
.addCatalyst(2, EndItems.CRYSTAL_SHARDS)
.addCatalyst(4, EndItems.CRYSTAL_SHARDS)
.addCatalyst(6, EndItems.CRYSTAL_SHARDS)
.setTime(75)
.build();
InfusionRecipe.Builder.create("protection_book")
.setInput(Items.BOOK)
.setOutput(createEnchantedBook(Enchantments.PROTECTION, 1))
.addCatalyst(0, EndItems.ENCHANTED_PETAL)
.addCatalyst(4, Items.TURTLE_HELMET)
.addCatalyst(1, Items.LAPIS_LAZULI)
.addCatalyst(3, Items.LAPIS_LAZULI)
.addCatalyst(5, Items.LAPIS_LAZULI)
.addCatalyst(7, Items.LAPIS_LAZULI)
.setGroup("enchantment")
.setTime(300)
.build();
InfusionRecipe.Builder.create("fire_protection_book")
.setInput(Items.BOOK)
.setOutput(createEnchantedBook(Enchantments.FIRE_PROTECTION, 1))
.addCatalyst(0, EndItems.ENCHANTED_PETAL)
.addCatalyst(2, Items.BLAZE_ROD)
.addCatalyst(4, Items.BLAZE_ROD)
.addCatalyst(6, Items.BLAZE_ROD)
.addCatalyst(1, Items.LAPIS_LAZULI)
.addCatalyst(3, Items.LAPIS_LAZULI)
.addCatalyst(5, Items.LAPIS_LAZULI)
.addCatalyst(7, Items.LAPIS_LAZULI)
.setGroup("enchantment")
.setTime(300)
.build();
InfusionRecipe.Builder.create("feather_falling_book")
.setInput(Items.BOOK)
.setOutput(createEnchantedBook(Enchantments.FEATHER_FALLING, 1))
.addCatalyst(0, EndItems.ENCHANTED_PETAL)
.addCatalyst(2, Items.FEATHER)
.addCatalyst(4, Items.FEATHER)
.addCatalyst(6, Items.FEATHER)
.addCatalyst(1, Items.LAPIS_LAZULI)
.addCatalyst(3, Items.LAPIS_LAZULI)
.addCatalyst(5, Items.LAPIS_LAZULI)
.addCatalyst(7, Items.LAPIS_LAZULI)
.setGroup("enchantment")
.setTime(300)
.build();
InfusionRecipe.Builder.create("blast_protection_book")
.setInput(Items.BOOK)
.setOutput(createEnchantedBook(Enchantments.BLAST_PROTECTION, 1))
.addCatalyst(0, EndItems.ENCHANTED_PETAL)
.addCatalyst(2, Blocks.OBSIDIAN)
.addCatalyst(4, Blocks.OBSIDIAN)
.addCatalyst(6, Blocks.OBSIDIAN)
.addCatalyst(1, Items.LAPIS_LAZULI)
.addCatalyst(3, Items.LAPIS_LAZULI)
.addCatalyst(5, Items.LAPIS_LAZULI)
.addCatalyst(7, Items.LAPIS_LAZULI)
.setGroup("enchantment")
.setTime(300)
.build();
InfusionRecipe.Builder.create("projectile_protection_book")
.setInput(Items.BOOK)
.setOutput(createEnchantedBook(Enchantments.PROJECTILE_PROTECTION, 1))
.addCatalyst(0, EndItems.ENCHANTED_PETAL)
.addCatalyst(2, Items.SCUTE)
.addCatalyst(4, Items.SHIELD)
.addCatalyst(6, Items.SCUTE)
.addCatalyst(1, Items.LAPIS_LAZULI)
.addCatalyst(3, Items.LAPIS_LAZULI)
.addCatalyst(5, Items.LAPIS_LAZULI)
.addCatalyst(7, Items.LAPIS_LAZULI)
.setGroup("enchantment")
.setTime(300)
.build();
InfusionRecipe.Builder.create("respiration_book")
.setInput(Items.BOOK)
.setOutput(createEnchantedBook(Enchantments.RESPIRATION, 1))
.addCatalyst(0, EndItems.ENCHANTED_PETAL)
.addCatalyst(2, Items.NAUTILUS_SHELL)
.addCatalyst(4, Items.NAUTILUS_SHELL)
.addCatalyst(6, Items.NAUTILUS_SHELL)
.addCatalyst(1, Items.LAPIS_LAZULI)
.addCatalyst(3, Items.LAPIS_LAZULI)
.addCatalyst(5, Items.LAPIS_LAZULI)
.addCatalyst(7, Items.LAPIS_LAZULI)
.setGroup("enchantment")
.setTime(300)
.build();
InfusionRecipe.Builder.create("aqua_affinity_book")
.setInput(Items.BOOK)
.setOutput(createEnchantedBook(Enchantments.AQUA_AFFINITY, 1))
.addCatalyst(0, EndItems.ENCHANTED_PETAL)
.addCatalyst(2, Items.PRISMARINE_CRYSTALS)
.addCatalyst(4, Items.PRISMARINE_CRYSTALS)
.addCatalyst(6, Items.PRISMARINE_CRYSTALS)
.addCatalyst(1, Items.LAPIS_LAZULI)
.addCatalyst(3, Items.LAPIS_LAZULI)
.addCatalyst(5, Items.LAPIS_LAZULI)
.addCatalyst(7, Items.LAPIS_LAZULI)
.setGroup("enchantment")
.setTime(300)
.build();
InfusionRecipe.Builder.create("thorns_book")
.setInput(Items.BOOK)
.setOutput(createEnchantedBook(Enchantments.THORNS, 1))
.addCatalyst(0, EndItems.ENCHANTED_PETAL)
.addCatalyst(2, Blocks.CACTUS)
.addCatalyst(4, Blocks.CACTUS)
.addCatalyst(6, Blocks.CACTUS)
.addCatalyst(1, Items.LAPIS_LAZULI)
.addCatalyst(3, Items.LAPIS_LAZULI)
.addCatalyst(5, Items.LAPIS_LAZULI)
.addCatalyst(7, Items.LAPIS_LAZULI)
.setGroup("enchantment")
.setTime(300)
.build();
InfusionRecipe.Builder.create("depth_strider_book")
.setInput(Items.BOOK)
.setOutput(createEnchantedBook(Enchantments.DEPTH_STRIDER, 1))
.addCatalyst(0, EndItems.ENCHANTED_PETAL)
.addCatalyst(2, Blocks.LILY_PAD)
.addCatalyst(4, EndBlocks.END_LILY_SEED)
.addCatalyst(6, Blocks.LILY_PAD)
.addCatalyst(1, Items.LAPIS_LAZULI)
.addCatalyst(3, Items.LAPIS_LAZULI)
.addCatalyst(5, Items.LAPIS_LAZULI)
.addCatalyst(7, Items.LAPIS_LAZULI)
.setGroup("enchantment")
.setTime(300)
.build();
InfusionRecipe.Builder.create("frost_walker_book")
.setInput(Items.BOOK)
.setOutput(createEnchantedBook(Enchantments.FROST_WALKER, 1))
.addCatalyst(0, EndItems.ENCHANTED_PETAL)
.addCatalyst(4, EndBlocks.ANCIENT_EMERALD_ICE)
.addCatalyst(1, Items.LAPIS_LAZULI)
.addCatalyst(3, Items.LAPIS_LAZULI)
.addCatalyst(5, Items.LAPIS_LAZULI)
.addCatalyst(7, Items.LAPIS_LAZULI)
.setGroup("enchantment")
.setTime(300)
.build();
InfusionRecipe.Builder.create("soul_speed_book")
.setInput(Items.BOOK)
.setOutput(createEnchantedBook(Enchantments.SOUL_SPEED, 1))
.addCatalyst(0, EndItems.ENCHANTED_PETAL)
.addCatalyst(2, Blocks.SOUL_SAND, Blocks.SOUL_SOIL)
.addCatalyst(4, Blocks.SOUL_SAND, Blocks.SOUL_SOIL)
.addCatalyst(6, Blocks.SOUL_SAND, Blocks.SOUL_SOIL)
.addCatalyst(1, Items.LAPIS_LAZULI)
.addCatalyst(3, Items.LAPIS_LAZULI)
.addCatalyst(5, Items.LAPIS_LAZULI)
.addCatalyst(7, Items.LAPIS_LAZULI)
.setGroup("enchantment")
.setTime(300)
.build();
InfusionRecipe.Builder.create("sharpness_book")
.setInput(Items.BOOK)
.setOutput(createEnchantedBook(Enchantments.SHARPNESS, 1))
.addCatalyst(0, EndItems.ENCHANTED_PETAL)
.addCatalyst(4, Items.NETHERITE_SCRAP)
.addCatalyst(1, Items.LAPIS_LAZULI)
.addCatalyst(3, Items.LAPIS_LAZULI)
.addCatalyst(5, Items.LAPIS_LAZULI)
.addCatalyst(7, Items.LAPIS_LAZULI)
.setGroup("enchantment")
.setTime(300)
.build();
InfusionRecipe.Builder.create("smite_book")
.setInput(Items.BOOK)
.setOutput(createEnchantedBook(Enchantments.SMITE, 1))
.addCatalyst(0, EndItems.ENCHANTED_PETAL)
.addCatalyst(2, Blocks.SUNFLOWER)
.addCatalyst(4, Items.GOLD_INGOT)
.addCatalyst(6, Blocks.SUNFLOWER)
.addCatalyst(1, Items.LAPIS_LAZULI)
.addCatalyst(3, Items.LAPIS_LAZULI)
.addCatalyst(5, Items.LAPIS_LAZULI)
.addCatalyst(7, Items.LAPIS_LAZULI)
.setGroup("enchantment")
.setTime(300)
.build();
InfusionRecipe.Builder.create("bane_of_arthropods_book")
.setInput(Items.BOOK)
.setOutput(createEnchantedBook(Enchantments.BANE_OF_ARTHROPODS, 1))
.addCatalyst(0, EndItems.ENCHANTED_PETAL)
.addCatalyst(2, Items.FERMENTED_SPIDER_EYE)
.addCatalyst(4, Items.IRON_INGOT)
.addCatalyst(6, Items.FERMENTED_SPIDER_EYE)
.addCatalyst(1, Items.LAPIS_LAZULI)
.addCatalyst(3, Items.LAPIS_LAZULI)
.addCatalyst(5, Items.LAPIS_LAZULI)
.addCatalyst(7, Items.LAPIS_LAZULI)
.setGroup("enchantment")
.setTime(300)
.build();
InfusionRecipe.Builder.create("knockback_book")
.setInput(Items.BOOK)
.setOutput(createEnchantedBook(Enchantments.KNOCKBACK, 1))
.addCatalyst(0, EndItems.ENCHANTED_PETAL)
.addCatalyst(2, Items.REDSTONE)
.addCatalyst(4, Blocks.PISTON)
.addCatalyst(6, Items.REDSTONE)
.addCatalyst(1, Items.LAPIS_LAZULI)
.addCatalyst(3, Items.LAPIS_LAZULI)
.addCatalyst(5, Items.LAPIS_LAZULI)
.addCatalyst(7, Items.LAPIS_LAZULI)
.setGroup("enchantment")
.setTime(300)
.build();
InfusionRecipe.Builder.create("fire_aspect_book")
.setInput(Items.BOOK)
.setOutput(createEnchantedBook(Enchantments.FIRE_ASPECT, 1))
.addCatalyst(0, EndItems.ENCHANTED_PETAL)
.addCatalyst(2, Items.BLAZE_POWDER)
.addCatalyst(4, Items.MAGMA_CREAM)
.addCatalyst(6, Items.BLAZE_POWDER)
.addCatalyst(1, Items.LAPIS_LAZULI)
.addCatalyst(3, Items.LAPIS_LAZULI)
.addCatalyst(5, Items.LAPIS_LAZULI)
.addCatalyst(7, Items.LAPIS_LAZULI)
.setGroup("enchantment")
.setTime(300)
.build();
InfusionRecipe.Builder.create("looting_book")
.setInput(Items.BOOK)
.setOutput(createEnchantedBook(Enchantments.LOOTING, 1))
.addCatalyst(0, EndItems.ENCHANTED_PETAL)
.addCatalyst(2, Items.EMERALD)
.addCatalyst(4, Items.GOLD_INGOT)
.addCatalyst(6, Items.EMERALD)
.addCatalyst(1, Items.LAPIS_LAZULI)
.addCatalyst(3, Items.LAPIS_LAZULI)
.addCatalyst(5, Items.LAPIS_LAZULI)
.addCatalyst(7, Items.LAPIS_LAZULI)
.setGroup("enchantment")
.setTime(300)
.build();
InfusionRecipe.Builder.create("sweeping_book")
.setInput(Items.BOOK)
.setOutput(createEnchantedBook(Enchantments.SWEEPING, 1))
.addCatalyst(0, EndItems.ENCHANTED_PETAL)
.addCatalyst(2, Items.GOLDEN_SWORD)
.addCatalyst(4, Items.IRON_SWORD)
.addCatalyst(6, Items.GOLDEN_SWORD)
.addCatalyst(1, Items.LAPIS_LAZULI)
.addCatalyst(3, Items.LAPIS_LAZULI)
.addCatalyst(5, Items.LAPIS_LAZULI)
.addCatalyst(7, Items.LAPIS_LAZULI)
.setGroup("enchantment")
.setTime(300)
.build();
InfusionRecipe.Builder.create("efficiency_book")
.setInput(Items.BOOK)
.setOutput(createEnchantedBook(Enchantments.EFFICIENCY, 1))
.addCatalyst(0, EndItems.ENCHANTED_PETAL)
.addCatalyst(2, EndItems.AMBER_GEM)
.addCatalyst(4, EndItems.AMBER_GEM)
.addCatalyst(6, EndItems.AMBER_GEM)
.addCatalyst(1, Items.LAPIS_LAZULI)
.addCatalyst(3, Items.LAPIS_LAZULI)
.addCatalyst(5, Items.LAPIS_LAZULI)
.addCatalyst(7, Items.LAPIS_LAZULI)
.setGroup("enchantment")
.setTime(300)
.build();
InfusionRecipe.Builder.create("silk_touch_book")
.setInput(Items.BOOK)
.setOutput(createEnchantedBook(Enchantments.SILK_TOUCH, 1))
.addCatalyst(0, EndItems.ENCHANTED_PETAL)
.addCatalyst(2, Blocks.COBWEB)
.addCatalyst(4, Blocks.COBWEB)
.addCatalyst(6, Blocks.COBWEB)
.addCatalyst(1, Items.LAPIS_LAZULI)
.addCatalyst(3, Items.LAPIS_LAZULI)
.addCatalyst(5, Items.LAPIS_LAZULI)
.addCatalyst(7, Items.LAPIS_LAZULI)
.setGroup("enchantment")
.setTime(375)
.build();
InfusionRecipe.Builder.create("unbreaking_book")
.setInput(Items.BOOK)
.setOutput(createEnchantedBook(Enchantments.UNBREAKING, 1))
.addCatalyst(0, EndItems.ENCHANTED_PETAL)
.addCatalyst(2, Items.DIAMOND)
.addCatalyst(4, Items.DIAMOND)
.addCatalyst(6, Items.DIAMOND)
.addCatalyst(1, Items.LAPIS_LAZULI)
.addCatalyst(3, Items.LAPIS_LAZULI)
.addCatalyst(5, Items.LAPIS_LAZULI)
.addCatalyst(7, Items.LAPIS_LAZULI)
.setGroup("enchantment")
.setTime(300)
.build();
InfusionRecipe.Builder.create("fortune_book")
.setInput(Items.BOOK)
.setOutput(createEnchantedBook(Enchantments.FORTUNE, 1))
.addCatalyst(0, EndItems.ENCHANTED_PETAL)
.addCatalyst(2, Items.EMERALD)
.addCatalyst(4, Items.RABBIT_FOOT)
.addCatalyst(6, Items.EMERALD)
.addCatalyst(1, Items.LAPIS_LAZULI)
.addCatalyst(3, Items.LAPIS_LAZULI)
.addCatalyst(5, Items.LAPIS_LAZULI)
.addCatalyst(7, Items.LAPIS_LAZULI)
.setGroup("enchantment")
.setTime(300)
.build();
InfusionRecipe.Builder.create("power_book")
.setInput(Items.BOOK)
.setOutput(createEnchantedBook(Enchantments.POWER, 1))
.addCatalyst(0, EndItems.ENCHANTED_PETAL)
.addCatalyst(2, EndItems.AMBER_GEM)
.addCatalyst(4, Items.DIAMOND_SWORD)
.addCatalyst(6, EndItems.AMBER_GEM)
.addCatalyst(1, Items.LAPIS_LAZULI)
.addCatalyst(3, Items.LAPIS_LAZULI)
.addCatalyst(5, Items.LAPIS_LAZULI)
.addCatalyst(7, Items.LAPIS_LAZULI)
.setGroup("enchantment")
.setTime(300)
.build();
InfusionRecipe.Builder.create("punch_book")
.setInput(Items.BOOK)
.setOutput(createEnchantedBook(Enchantments.PUNCH, 1))
.addCatalyst(0, EndItems.ENCHANTED_PETAL)
.addCatalyst(2, Items.POPPED_CHORUS_FRUIT)
.addCatalyst(4, Items.SPECTRAL_ARROW)
.addCatalyst(6, Items.POPPED_CHORUS_FRUIT)
.addCatalyst(1, Items.LAPIS_LAZULI)
.addCatalyst(3, Items.LAPIS_LAZULI)
.addCatalyst(5, Items.LAPIS_LAZULI)
.addCatalyst(7, Items.LAPIS_LAZULI)
.setGroup("enchantment")
.setTime(300)
.build();
InfusionRecipe.Builder.create("flame_book")
.setInput(Items.BOOK)
.setOutput(createEnchantedBook(Enchantments.FLAME, 1))
.addCatalyst(0, EndItems.ENCHANTED_PETAL)
.addCatalyst(2, Items.BLAZE_POWDER)
.addCatalyst(4, Items.SPECTRAL_ARROW)
.addCatalyst(6, Items.BLAZE_POWDER)
.addCatalyst(1, Items.LAPIS_LAZULI)
.addCatalyst(3, Items.LAPIS_LAZULI)
.addCatalyst(5, Items.LAPIS_LAZULI)
.addCatalyst(7, Items.LAPIS_LAZULI)
.setGroup("enchantment")
.setTime(300)
.build();
InfusionRecipe.Builder.create("infinity_book")
.setInput(Items.BOOK)
.setOutput(createEnchantedBook(Enchantments.INFINITY, 1))
.addCatalyst(0, EndItems.ENCHANTED_PETAL)
.addCatalyst(2, Items.SPECTRAL_ARROW)
.addCatalyst(4, EndItems.ETERNAL_CRYSTAL)
.addCatalyst(6, Items.SPECTRAL_ARROW)
.addCatalyst(1, Items.LAPIS_LAZULI)
.addCatalyst(3, Items.LAPIS_LAZULI)
.addCatalyst(5, Items.LAPIS_LAZULI)
.addCatalyst(7, Items.LAPIS_LAZULI)
.setGroup("enchantment")
.setTime(375)
.build();
InfusionRecipe.Builder.create("luck_of_sea_book")
.setInput(Items.BOOK)
.setOutput(createEnchantedBook(Enchantments.LUCK_OF_THE_SEA, 1))
.addCatalyst(0, EndItems.ENCHANTED_PETAL)
.addCatalyst(2, Items.EMERALD)
.addCatalyst(4, Items.FISHING_ROD)
.addCatalyst(6, Items.EMERALD)
.addCatalyst(1, Items.LAPIS_LAZULI)
.addCatalyst(3, Items.LAPIS_LAZULI)
.addCatalyst(5, Items.LAPIS_LAZULI)
.addCatalyst(7, Items.LAPIS_LAZULI)
.setGroup("enchantment")
.setTime(300)
.build();
InfusionRecipe.Builder.create("lure_book")
.setInput(Items.BOOK)
.setOutput(createEnchantedBook(Enchantments.LURE, 1))
.addCatalyst(0, EndItems.ENCHANTED_PETAL)
.addCatalyst(2, Items.GOLD_NUGGET)
.addCatalyst(4, Items.FISHING_ROD)
.addCatalyst(6, Items.GOLD_NUGGET)
.addCatalyst(1, Items.LAPIS_LAZULI)
.addCatalyst(3, Items.LAPIS_LAZULI)
.addCatalyst(5, Items.LAPIS_LAZULI)
.addCatalyst(7, Items.LAPIS_LAZULI)
.setGroup("enchantment")
.setTime(300)
.build();
InfusionRecipe.Builder.create("loyalty_book")
.setInput(Items.BOOK)
.setOutput(createEnchantedBook(Enchantments.LOYALTY, 1))
.addCatalyst(0, EndItems.ENCHANTED_PETAL)
.addCatalyst(2, Items.ENDER_EYE)
.addCatalyst(4, Items.HEART_OF_THE_SEA)
.addCatalyst(6, Items.ENDER_EYE)
.addCatalyst(1, Items.LAPIS_LAZULI)
.addCatalyst(3, Items.LAPIS_LAZULI)
.addCatalyst(5, Items.LAPIS_LAZULI)
.addCatalyst(7, Items.LAPIS_LAZULI)
.setGroup("enchantment")
.setTime(375)
.build();
InfusionRecipe.Builder.create("impaling_book")
.setInput(Items.BOOK)
.setOutput(createEnchantedBook(Enchantments.IMPALING, 1))
.addCatalyst(0, EndItems.ENCHANTED_PETAL)
.addCatalyst(2, Items.PRISMARINE_SHARD)
.addCatalyst(4, Items.IRON_SWORD)
.addCatalyst(6, Items.PRISMARINE_SHARD)
.addCatalyst(1, Items.LAPIS_LAZULI)
.addCatalyst(3, Items.LAPIS_LAZULI)
.addCatalyst(5, Items.LAPIS_LAZULI)
.addCatalyst(7, Items.LAPIS_LAZULI)
.setGroup("enchantment")
.setTime(300)
.build();
InfusionRecipe.Builder.create("riptide_book")
.setInput(Items.BOOK)
.setOutput(createEnchantedBook(Enchantments.RIPTIDE, 1))
.addCatalyst(0, EndItems.ENCHANTED_PETAL)
.addCatalyst(2, Items.LEAD)
.addCatalyst(4, Items.HEART_OF_THE_SEA)
.addCatalyst(6, Items.LEAD)
.addCatalyst(1, Items.LAPIS_LAZULI)
.addCatalyst(3, Items.LAPIS_LAZULI)
.addCatalyst(5, Items.LAPIS_LAZULI)
.addCatalyst(7, Items.LAPIS_LAZULI)
.setGroup("enchantment")
.setTime(375)
.build();
InfusionRecipe.Builder.create("channeling_book")
.setInput(Items.BOOK)
.setOutput(createEnchantedBook(Enchantments.CHANNELING, 1))
.addCatalyst(0, EndItems.ENCHANTED_PETAL)
.addCatalyst(2, Items.CHAIN)
.addCatalyst(4, Items.HEART_OF_THE_SEA)
.addCatalyst(6, Items.CHAIN)
.addCatalyst(1, Items.LAPIS_LAZULI)
.addCatalyst(3, Items.LAPIS_LAZULI)
.addCatalyst(5, Items.LAPIS_LAZULI)
.addCatalyst(7, Items.LAPIS_LAZULI)
.setGroup("enchantment")
.setTime(375)
.build();
InfusionRecipe.Builder.create("multishot_book")
.setInput(Items.BOOK)
.setOutput(createEnchantedBook(Enchantments.MULTISHOT, 1))
.addCatalyst(0, EndItems.ENCHANTED_PETAL)
.addCatalyst(2, Items.ARROW)
.addCatalyst(4, Items.SPECTRAL_ARROW)
.addCatalyst(6, Items.ARROW)
.addCatalyst(1, Items.LAPIS_LAZULI)
.addCatalyst(3, Items.LAPIS_LAZULI)
.addCatalyst(5, Items.LAPIS_LAZULI)
.addCatalyst(7, Items.LAPIS_LAZULI)
.setGroup("enchantment")
.setTime(300)
.build();
InfusionRecipe.Builder.create("quick_charge_book")
.setInput(Items.BOOK)
.setOutput(createEnchantedBook(Enchantments.QUICK_CHARGE, 1))
.addCatalyst(0, EndItems.ENCHANTED_PETAL)
.addCatalyst(2, Items.QUARTZ)
.addCatalyst(4, Items.GLOWSTONE_DUST)
.addCatalyst(6, Items.QUARTZ)
.addCatalyst(1, Items.LAPIS_LAZULI)
.addCatalyst(3, Items.LAPIS_LAZULI)
.addCatalyst(5, Items.LAPIS_LAZULI)
.addCatalyst(7, Items.LAPIS_LAZULI)
.setGroup("enchantment")
.setTime(300)
.build();
InfusionRecipe.Builder.create("piercing_book")
.setInput(Items.BOOK)
.setOutput(createEnchantedBook(Enchantments.PIERCING, 1))
.addCatalyst(0, EndItems.ENCHANTED_PETAL)
.addCatalyst(2, Items.GLOWSTONE_DUST)
.addCatalyst(4, Items.SPECTRAL_ARROW)
.addCatalyst(6, Items.GLOWSTONE_DUST)
.addCatalyst(1, Items.LAPIS_LAZULI)
.addCatalyst(3, Items.LAPIS_LAZULI)
.addCatalyst(5, Items.LAPIS_LAZULI)
.addCatalyst(7, Items.LAPIS_LAZULI)
.setGroup("enchantment")
.setTime(300)
.build();
InfusionRecipe.Builder.create("mending_book")
.setInput(Items.BOOK)
.setOutput(createEnchantedBook(Enchantments.MENDING, 1))
.addCatalyst(0, EndItems.ENCHANTED_PETAL)
.addCatalyst(2, Items.EXPERIENCE_BOTTLE)
.addCatalyst(4, Blocks.ANVIL)
.addCatalyst(6, Items.EXPERIENCE_BOTTLE)
.addCatalyst(1, Items.LAPIS_LAZULI)
.addCatalyst(3, Items.LAPIS_LAZULI)
.addCatalyst(5, Items.LAPIS_LAZULI)
.addCatalyst(7, Items.LAPIS_LAZULI)
.setGroup("enchantment")
.setTime(375)
.build();
}
private static ItemStack createEnchantedBook(Enchantment enchantment, int level) {
ItemStack book = new ItemStack(Items.ENCHANTED_BOOK);
EnchantedBookItem.addEnchantment(book, new EnchantmentLevelEntry(enchantment, level));
return book;
} }
} }

View file

@ -4,6 +4,8 @@ import java.util.Arrays;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.item.ItemConvertible; import net.minecraft.item.ItemConvertible;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.network.PacketByteBuf; import net.minecraft.network.PacketByteBuf;
@ -15,6 +17,7 @@ import net.minecraft.util.Identifier;
import net.minecraft.util.JsonHelper; import net.minecraft.util.JsonHelper;
import net.minecraft.util.collection.DefaultedList; import net.minecraft.util.collection.DefaultedList;
import net.minecraft.world.World; import net.minecraft.world.World;
import ru.betterend.BetterEnd; import ru.betterend.BetterEnd;
import ru.betterend.recipe.EndRecipeManager; import ru.betterend.recipe.EndRecipeManager;
import ru.betterend.rituals.InfusionRitual; import ru.betterend.rituals.InfusionRitual;
@ -32,6 +35,7 @@ public class InfusionRecipe implements Recipe<InfusionRitual> {
private ItemStack output; private ItemStack output;
private int time = 1; private int time = 1;
private Ingredient[] catalysts = new Ingredient[8]; private Ingredient[] catalysts = new Ingredient[8];
private String group;
private InfusionRecipe(Identifier id) { private InfusionRecipe(Identifier id) {
this(id, null, null); this(id, null, null);
@ -87,6 +91,12 @@ public class InfusionRecipe implements Recipe<InfusionRitual> {
public Identifier getId() { public Identifier getId() {
return this.id; return this.id;
} }
@Override
@Environment(EnvType.CLIENT)
public String getGroup() {
return this.group;
}
@Override @Override
public RecipeSerializer<?> getSerializer() { public RecipeSerializer<?> getSerializer() {
@ -119,6 +129,7 @@ public class InfusionRecipe implements Recipe<InfusionRitual> {
private Identifier id; private Identifier id;
private Ingredient input; private Ingredient input;
private ItemStack output; private ItemStack output;
private String group;
private int time = 1; private int time = 1;
private Ingredient[] catalysts = new Ingredient[8]; private Ingredient[] catalysts = new Ingredient[8];
@ -126,6 +137,11 @@ public class InfusionRecipe implements Recipe<InfusionRitual> {
Arrays.fill(catalysts, Ingredient.EMPTY); Arrays.fill(catalysts, Ingredient.EMPTY);
} }
public Builder setGroup(String group) {
this.group = group;
return this;
}
public Builder setInput(ItemConvertible input) { public Builder setInput(ItemConvertible input) {
this.input = Ingredient.ofItems(input); this.input = Ingredient.ofItems(input);
return this; return this;
@ -137,14 +153,20 @@ public class InfusionRecipe implements Recipe<InfusionRitual> {
return this; return this;
} }
public Builder setOutput(ItemStack output) {
this.output = output;
this.output.setCount(1);
return this;
}
public Builder setTime(int time) { public Builder setTime(int time) {
this.time = time; this.time = time;
return this; return this;
} }
public Builder addCatalyst(int slot, ItemConvertible item) { public Builder addCatalyst(int slot, ItemConvertible... items) {
if (slot > 7) return this; if (slot > 7) return this;
this.catalysts[slot] = Ingredient.ofItems(item); this.catalysts[slot] = Ingredient.ofItems(items);
return this; return this;
} }
@ -158,6 +180,7 @@ public class InfusionRecipe implements Recipe<InfusionRitual> {
return; return;
} }
InfusionRecipe recipe = new InfusionRecipe(id, input, output); InfusionRecipe recipe = new InfusionRecipe(id, input, output);
recipe.group = group != null ? group : GROUP;
recipe.time = time; recipe.time = time;
int empty = 0; int empty = 0;
for (int i = 0; i < catalysts.length; i++) { for (int i = 0; i < catalysts.length; i++) {
@ -182,6 +205,7 @@ public class InfusionRecipe implements Recipe<InfusionRitual> {
if (recipe.output == null) { if (recipe.output == null) {
throw new IllegalStateException("Output item does not exists!"); throw new IllegalStateException("Output item does not exists!");
} }
recipe.group = JsonHelper.getString(json, "group", GROUP);
recipe.time = JsonHelper.getInt(json, "time", 1); recipe.time = JsonHelper.getInt(json, "time", 1);
JsonObject catalysts = JsonHelper.asObject(json, "catalysts"); JsonObject catalysts = JsonHelper.asObject(json, "catalysts");
@ -210,6 +234,7 @@ public class InfusionRecipe implements Recipe<InfusionRitual> {
InfusionRecipe recipe = new InfusionRecipe(id); InfusionRecipe recipe = new InfusionRecipe(id);
recipe.input = Ingredient.fromPacket(buffer); recipe.input = Ingredient.fromPacket(buffer);
recipe.output = buffer.readItemStack(); recipe.output = buffer.readItemStack();
recipe.group = buffer.readString();
recipe.time = buffer.readVarInt(); recipe.time = buffer.readVarInt();
for (int i = 0; i < 8; i++) { for (int i = 0; i < 8; i++) {
recipe.catalysts[i] = Ingredient.fromPacket(buffer); recipe.catalysts[i] = Ingredient.fromPacket(buffer);
@ -221,6 +246,7 @@ public class InfusionRecipe implements Recipe<InfusionRitual> {
public void write(PacketByteBuf buffer, InfusionRecipe recipe) { public void write(PacketByteBuf buffer, InfusionRecipe recipe) {
recipe.input.write(buffer); recipe.input.write(buffer);
buffer.writeItemStack(recipe.output); buffer.writeItemStack(recipe.output);
buffer.writeString(recipe.group);
buffer.writeVarInt(recipe.time); buffer.writeVarInt(recipe.time);
for (int i = 0; i < 8; i++) { for (int i = 0; i < 8; i++) {
recipe.catalysts[i].write(buffer); recipe.catalysts[i].write(buffer);

View file

@ -28,11 +28,13 @@ import net.minecraft.item.ToolItem;
import net.minecraft.item.ToolMaterials; import net.minecraft.item.ToolMaterials;
import net.minecraft.tag.Tag; import net.minecraft.tag.Tag;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
import net.minecraft.util.Rarity;
import net.minecraft.util.math.BlockPointer; import net.minecraft.util.math.BlockPointer;
import net.minecraft.util.math.Direction; import net.minecraft.util.math.Direction;
import net.minecraft.util.registry.Registry; import net.minecraft.util.registry.Registry;
import ru.betterend.BetterEnd; import ru.betterend.BetterEnd;
import ru.betterend.config.Configs; import ru.betterend.config.Configs;
import ru.betterend.item.EnchantedPetal;
import ru.betterend.item.EndArmorMaterial; import ru.betterend.item.EndArmorMaterial;
import ru.betterend.item.EndAxe; import ru.betterend.item.EndAxe;
import ru.betterend.item.EndHammer; import ru.betterend.item.EndHammer;
@ -64,6 +66,8 @@ public class EndItems {
public final static Item CRYSTALLINE_SULPHUR = registerItem("crystalline_sulphur"); public final static Item CRYSTALLINE_SULPHUR = registerItem("crystalline_sulphur");
public final static Item HYDRALUX_PETAL = registerItem("hydralux_petal"); public final static Item HYDRALUX_PETAL = registerItem("hydralux_petal");
public final static Item GELATINE = registerItem("gelatine"); public final static Item GELATINE = registerItem("gelatine");
public static final Item ETERNAL_CRYSTAL = registerItem("eternal_crystal", new EternalCrystal());
public final static Item ENCHANTED_PETAL = registerItem("enchanted_petal", new EnchantedPetal());
// Armor // // Armor //
public static final Item TERMINITE_HELMET = registerItem("terminite_helmet", new ArmorItem(EndArmorMaterial.TERMINITE, EquipmentSlot.HEAD, makeItemSettings())); public static final Item TERMINITE_HELMET = registerItem("terminite_helmet", new ArmorItem(EndArmorMaterial.TERMINITE, EquipmentSlot.HEAD, makeItemSettings()));
@ -74,10 +78,10 @@ public class EndItems {
public static final Item AETERNIUM_CHESTPLATE = registerItem("aeternium_chestplate", new ArmorItem(EndArmorMaterial.AETERNIUM, EquipmentSlot.CHEST, makeItemSettings())); public static final Item AETERNIUM_CHESTPLATE = registerItem("aeternium_chestplate", new ArmorItem(EndArmorMaterial.AETERNIUM, EquipmentSlot.CHEST, makeItemSettings()));
public static final Item AETERNIUM_LEGGINGS = registerItem("aeternium_leggings", new ArmorItem(EndArmorMaterial.AETERNIUM, EquipmentSlot.LEGS, makeItemSettings())); public static final Item AETERNIUM_LEGGINGS = registerItem("aeternium_leggings", new ArmorItem(EndArmorMaterial.AETERNIUM, EquipmentSlot.LEGS, makeItemSettings()));
public static final Item AETERNIUM_BOOTS = registerItem("aeternium_boots", new ArmorItem(EndArmorMaterial.AETERNIUM, EquipmentSlot.FEET, makeItemSettings())); public static final Item AETERNIUM_BOOTS = registerItem("aeternium_boots", new ArmorItem(EndArmorMaterial.AETERNIUM, EquipmentSlot.FEET, makeItemSettings()));
public static final Item CRYSTALITE_HELMET = registerItem("crystalite_helmet", new ArmorItem(EndArmorMaterial.CRYSTALITE, EquipmentSlot.HEAD, makeItemSettings())); public static final Item CRYSTALITE_HELMET = registerItem("crystalite_helmet", new ArmorItem(EndArmorMaterial.CRYSTALITE, EquipmentSlot.HEAD, makeItemSettings().rarity(Rarity.UNCOMMON)));
public static final Item CRYSTALITE_CHESTPLATE = registerItem("crystalite_chestplate", new ArmorItem(EndArmorMaterial.CRYSTALITE, EquipmentSlot.CHEST, makeItemSettings())); public static final Item CRYSTALITE_CHESTPLATE = registerItem("crystalite_chestplate", new ArmorItem(EndArmorMaterial.CRYSTALITE, EquipmentSlot.CHEST, makeItemSettings().rarity(Rarity.UNCOMMON)));
public static final Item CRYSTALITE_LEGGINGS = registerItem("crystalite_leggings", new ArmorItem(EndArmorMaterial.CRYSTALITE, EquipmentSlot.LEGS, makeItemSettings())); public static final Item CRYSTALITE_LEGGINGS = registerItem("crystalite_leggings", new ArmorItem(EndArmorMaterial.CRYSTALITE, EquipmentSlot.LEGS, makeItemSettings().rarity(Rarity.UNCOMMON)));
public static final Item CRYSTALITE_BOOTS = registerItem("crystalite_boots", new ArmorItem(EndArmorMaterial.CRYSTALITE, EquipmentSlot.FEET, makeItemSettings())); public static final Item CRYSTALITE_BOOTS = registerItem("crystalite_boots", new ArmorItem(EndArmorMaterial.CRYSTALITE, EquipmentSlot.FEET, makeItemSettings().rarity(Rarity.UNCOMMON)));
// Tools // // Tools //
public static final ToolItem TERMINITE_SHOVEL = registerTool("terminite_shovel", new ShovelItem(EndToolMaterial.TERMINITE, 1.5F, -3.0F, makeItemSettings())); public static final ToolItem TERMINITE_SHOVEL = registerTool("terminite_shovel", new ShovelItem(EndToolMaterial.TERMINITE, 1.5F, -3.0F, makeItemSettings()));
@ -109,9 +113,6 @@ public class EndItems {
// Drinks // Drinks
public final static Item UMBRELLA_CLUSTER_JUICE = registerDrink("umbrella_cluster_juice"); public final static Item UMBRELLA_CLUSTER_JUICE = registerDrink("umbrella_cluster_juice");
// Other //
public static final Item ETERNAL_CRYSTAL = registerItem("eternal_crystal", new EternalCrystal());
protected static Item registerItem(String name) { protected static Item registerItem(String name) {
return registerItem(BetterEnd.makeID(name), new PatternedItem(makeItemSettings())); return registerItem(BetterEnd.makeID(name), new PatternedItem(makeItemSettings()));
} }

View file

@ -412,6 +412,7 @@
"block.betterend.hydralux_sapling": "Hydralux Sapling", "block.betterend.hydralux_sapling": "Hydralux Sapling",
"block.betterend.hydrothermal_vent": "Hydrothermal Vent", "block.betterend.hydrothermal_vent": "Hydrothermal Vent",
"item.betterend.hydralux_petal": "Hydralux Petal", "item.betterend.hydralux_petal": "Hydralux Petal",
"item.betterend.enchanted_petal": "Enchanted Petal",
"block.betterend.menger_sponge": "Menger Sponge", "block.betterend.menger_sponge": "Menger Sponge",
"block.betterend.menger_sponge_wet": "Wet Menger Sponge", "block.betterend.menger_sponge_wet": "Wet Menger Sponge",

View file

@ -414,6 +414,7 @@
"block.betterend.hydralux_sapling": "Саженец гидралюкса", "block.betterend.hydralux_sapling": "Саженец гидралюкса",
"block.betterend.hydrothermal_vent": "Гидротермальный источник", "block.betterend.hydrothermal_vent": "Гидротермальный источник",
"item.betterend.hydralux_petal": "Лепесток гидралюкса", "item.betterend.hydralux_petal": "Лепесток гидралюкса",
"item.betterend.enchanted_petal": "Зачарованный лепесток",
"block.betterend.menger_sponge": "Губка Менгера", "block.betterend.menger_sponge": "Губка Менгера",
"block.betterend.menger_sponge_wet": "Мокрая губка Менгера", "block.betterend.menger_sponge_wet": "Мокрая губка Менгера",