From 61c44a831bcda61adac287741c6b285a51e9619b Mon Sep 17 00:00:00 2001 From: Nicholas Ignoffo Date: Tue, 15 Aug 2017 21:24:59 -0700 Subject: [PATCH] Fix some things that went missing --- .../java/WayofTime/bloodmagic/BloodMagic.java | 2 +- .../bloodmagic/block/BlockAltar.java | 8 +- .../bloodmagic/block/BlockDemonCrucible.java | 8 +- .../block/BlockDemonCrystallizer.java | 8 +- .../bloodmagic/block/BlockIncenseAltar.java | 8 +- .../bloodmagic/block/BlockSoulForge.java | 8 +- .../bloodmagic/block/BlockTeleposer.java | 8 +- .../core/RegistrarBloodMagicItems.java | 64 +++++++------- .../core/recipe/IngredientBloodOrb.java | 82 ++++++++++++++++++ .../recipe/IngredientBloodOrbFactory.java | 21 +++++ .../ItemLivingArmourPointsUpgrade.java | 2 +- .../bloodmagic/registry/ModRecipes.java | 12 +++ .../assets/bloodmagic/recipes/_factories.json | 5 ++ .../creative_inventory/tab_upgrade_tomes.png | Bin 1107 -> 0 bytes 14 files changed, 199 insertions(+), 37 deletions(-) create mode 100644 src/main/java/WayofTime/bloodmagic/core/recipe/IngredientBloodOrb.java create mode 100644 src/main/java/WayofTime/bloodmagic/core/recipe/IngredientBloodOrbFactory.java create mode 100644 src/main/resources/assets/bloodmagic/recipes/_factories.json delete mode 100644 src/main/resources/assets/minecraft/textures/gui/container/creative_inventory/tab_upgrade_tomes.png diff --git a/src/main/java/WayofTime/bloodmagic/BloodMagic.java b/src/main/java/WayofTime/bloodmagic/BloodMagic.java index 1ff629aa..25cb1a75 100644 --- a/src/main/java/WayofTime/bloodmagic/BloodMagic.java +++ b/src/main/java/WayofTime/bloodmagic/BloodMagic.java @@ -63,7 +63,7 @@ public class BloodMagic { return true; } - }.setNoTitle().setBackgroundImageName("items_search.png"); + }.setNoTitle().setBackgroundImageName("item_search.png"); public static final boolean IS_DEV = (Boolean) Launch.blackboard.get("fml.deobfuscatedEnvironment"); public static final List> PLUGINS = Lists.newArrayList(); diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockAltar.java b/src/main/java/WayofTime/bloodmagic/block/BlockAltar.java index 32106390..53907ba8 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockAltar.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockAltar.java @@ -12,6 +12,7 @@ import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumBlockRenderType; @@ -41,7 +42,7 @@ import com.google.common.base.Strings; import javax.annotation.Nullable; -public class BlockAltar extends Block implements IVariantProvider, IDocumentedBlock +public class BlockAltar extends Block implements IVariantProvider, IDocumentedBlock, IBMBlock { public BlockAltar() { @@ -204,4 +205,9 @@ public class BlockAltar extends Block implements IVariantProvider, IDocumentedBl return docs; } + + @Override + public ItemBlock getItem() { + return new ItemBlock(this); + } } diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockDemonCrucible.java b/src/main/java/WayofTime/bloodmagic/block/BlockDemonCrucible.java index 612c73d5..986aec2e 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockDemonCrucible.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockDemonCrucible.java @@ -7,6 +7,7 @@ import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumBlockRenderType; @@ -28,7 +29,7 @@ import WayofTime.bloodmagic.util.Utils; import javax.annotation.Nullable; -public class BlockDemonCrucible extends Block implements IVariantProvider +public class BlockDemonCrucible extends Block implements IVariantProvider, IBMBlock { public BlockDemonCrucible() { @@ -118,4 +119,9 @@ public class BlockDemonCrucible extends Block implements IVariantProvider ret.add(new ImmutablePair(0, "normal")); return ret; } + + @Override + public ItemBlock getItem() { + return new ItemBlock(this); + } } diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockDemonCrystallizer.java b/src/main/java/WayofTime/bloodmagic/block/BlockDemonCrystallizer.java index f2251c90..b5b60903 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockDemonCrystallizer.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockDemonCrystallizer.java @@ -6,6 +6,7 @@ import java.util.List; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; +import net.minecraft.item.ItemBlock; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumBlockRenderType; import net.minecraft.util.EnumFacing; @@ -20,7 +21,7 @@ import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.tile.TileDemonCrystallizer; -public class BlockDemonCrystallizer extends BlockContainer implements IVariantProvider +public class BlockDemonCrystallizer extends BlockContainer implements IVariantProvider, IBMBlock { public BlockDemonCrystallizer() { @@ -84,4 +85,9 @@ public class BlockDemonCrystallizer extends BlockContainer implements IVariantPr ret.add(new ImmutablePair(0, "normal")); return ret; } + + @Override + public ItemBlock getItem() { + return new ItemBlock(this); + } } diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockIncenseAltar.java b/src/main/java/WayofTime/bloodmagic/block/BlockIncenseAltar.java index edc30df5..17d8693b 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockIncenseAltar.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockIncenseAltar.java @@ -6,6 +6,7 @@ import java.util.List; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; +import net.minecraft.item.ItemBlock; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumBlockRenderType; import net.minecraft.util.math.AxisAlignedBB; @@ -22,7 +23,7 @@ import WayofTime.bloodmagic.tile.TileIncenseAltar; import javax.annotation.Nullable; -public class BlockIncenseAltar extends Block implements IVariantProvider +public class BlockIncenseAltar extends Block implements IVariantProvider, IBMBlock { protected static final AxisAlignedBB AABB = new AxisAlignedBB(0.3F, 0F, 0.3F, 0.72F, 1F, 0.72F); @@ -101,4 +102,9 @@ public class BlockIncenseAltar extends Block implements IVariantProvider ret.add(new ImmutablePair(0, "normal")); return ret; } + + @Override + public ItemBlock getItem() { + return new ItemBlock(this); + } } diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockSoulForge.java b/src/main/java/WayofTime/bloodmagic/block/BlockSoulForge.java index 129edaaa..afece925 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockSoulForge.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockSoulForge.java @@ -8,6 +8,7 @@ import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemBlock; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumBlockRenderType; import net.minecraft.util.EnumFacing; @@ -27,7 +28,7 @@ import WayofTime.bloodmagic.tile.TileSoulForge; import javax.annotation.Nullable; -public class BlockSoulForge extends Block implements IVariantProvider +public class BlockSoulForge extends Block implements IVariantProvider, IBMBlock { protected static final AxisAlignedBB AABB = new AxisAlignedBB(0.06F, 0.0F, 0.06F, 0.94F, 0.75F, 0.94F); @@ -116,4 +117,9 @@ public class BlockSoulForge extends Block implements IVariantProvider ret.add(new ImmutablePair(0, "normal")); return ret; } + + @Override + public ItemBlock getItem() { + return new ItemBlock(this); + } } diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockTeleposer.java b/src/main/java/WayofTime/bloodmagic/block/BlockTeleposer.java index 4c764482..0c374de0 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockTeleposer.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockTeleposer.java @@ -7,6 +7,7 @@ import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumBlockRenderType; @@ -24,7 +25,7 @@ import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.item.ItemTelepositionFocus; import WayofTime.bloodmagic.tile.TileTeleposer; -public class BlockTeleposer extends BlockContainer implements IVariantProvider +public class BlockTeleposer extends BlockContainer implements IVariantProvider, IBMBlock { public BlockTeleposer() { @@ -78,4 +79,9 @@ public class BlockTeleposer extends BlockContainer implements IVariantProvider ret.add(new ImmutablePair(0, "normal")); return ret; } + + @Override + public ItemBlock getItem() { + return new ItemBlock(this); + } } diff --git a/src/main/java/WayofTime/bloodmagic/core/RegistrarBloodMagicItems.java b/src/main/java/WayofTime/bloodmagic/core/RegistrarBloodMagicItems.java index 8af50e57..644c7b1a 100644 --- a/src/main/java/WayofTime/bloodmagic/core/RegistrarBloodMagicItems.java +++ b/src/main/java/WayofTime/bloodmagic/core/RegistrarBloodMagicItems.java @@ -2,11 +2,13 @@ package WayofTime.bloodmagic.core; import WayofTime.bloodmagic.block.IBMBlock; import WayofTime.bloodmagic.client.IVariantProvider; +import com.google.common.collect.Lists; import com.google.common.collect.Sets; import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.init.Items; import net.minecraft.inventory.EntityEquipmentSlot; import net.minecraft.item.Item; +import net.minecraft.item.ItemBlock; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.event.ModelRegistryEvent; import net.minecraftforge.client.model.ModelLoader; @@ -32,6 +34,8 @@ import WayofTime.bloodmagic.item.sigil.*; import WayofTime.bloodmagic.item.soul.*; import org.apache.commons.lang3.tuple.Pair; +import java.util.Comparator; +import java.util.List; import java.util.Set; @Mod.EventBusSubscriber(modid = BloodMagic.MODID) @@ -108,26 +112,33 @@ public class RegistrarBloodMagicItems public static final Item BASE_FLUID_FILTER = Items.AIR; public static final Item CUTTING_FLUID = Items.AIR; public static final Item SANGUINE_BOOK = Items.AIR; - public static final Item ITEM_POINTS_UPGRADE = Items.AIR; + public static final Item POINTS_UPGRADE = Items.AIR; public static final Item DEMON_WILL_GAUGE = Items.AIR; public static final Item POTION_FLASK = Items.AIR; public static Item.ToolMaterial BOUND_TOOL_MATERIAL = EnumHelper.addToolMaterial("bound", 4, 1, 10, 8, 50); public static Item.ToolMaterial SOUL_TOOL_MATERIAL = EnumHelper.addToolMaterial("demonic", 4, 520, 7, 8, 50); - private static Set items; + public static List items; @SubscribeEvent public static void registerItems(RegistryEvent.Register event) { - items = Sets.newHashSet( + items = Lists.newArrayList(); + + RegistrarBloodMagicBlocks.blocks.stream().filter(block -> block instanceof IBMBlock && ((IBMBlock) block).getItem() != null).forEach(block -> { + IBMBlock bmBlock = (IBMBlock) block; + items.add(bmBlock.getItem().setRegistryName(block.getRegistryName())); + }); + + items.addAll(Lists.newArrayList( new ItemBloodOrb().setRegistryName("blood_orb"), new ItemActivationCrystal().setRegistryName("activation_crystal"), new ItemSlate().setRegistryName("slate"), new ItemInscriptionTool().setRegistryName("inscription_tool"), new ItemSacrificialDagger().setRegistryName("sacrificial_dagger"), - new ItemPackSacrifice().setRegistryName("sacrificial_pack"), - new ItemPackSelfSacrifice().setRegistryName("pack_of_sacrifice"), + new ItemPackSacrifice().setRegistryName("pack_sacrifice"), + new ItemPackSelfSacrifice().setRegistryName("pack_self_sacrifice"), new ItemDaggerOfSacrifice().setRegistryName("dagger_of_sacrifice"), new ItemRitualDiviner().setRegistryName("ritual_diviner"), new ItemRitualReader().setRegistryName("ritual_reader"), @@ -141,18 +152,18 @@ public class RegistrarBloodMagicItems new ItemSigilWater().setRegistryName("sigil_water"), new ItemSigilLava().setRegistryName("sigil_lava"), new ItemSigilVoid().setRegistryName("sigil_void"), - new ItemSigilGreenGrove().setRegistryName("sigil_growth"), - new ItemSigilBloodLight().setRegistryName("sigil_light"), - new ItemSigilElementalAffinity().setRegistryName("sigil_elemental"), + new ItemSigilGreenGrove().setRegistryName("sigil_green_grove"), + new ItemSigilBloodLight().setRegistryName("sigil_blood_light"), + new ItemSigilElementalAffinity().setRegistryName("sigil_elemental_affinity"), new ItemSigilMagnetism().setRegistryName("sigil_magnetism"), new ItemSigilSuppression().setRegistryName("sigil_suppression"), new ItemSigilHaste().setRegistryName("sigil_haste"), new ItemSigilFastMiner().setRegistryName("sigil_fast_miner"), new ItemSigilSeer().setRegistryName("sigil_seer"), - new ItemSigilPhantomBridge().setRegistryName("sigil_bridge"), + new ItemSigilPhantomBridge().setRegistryName("sigil_phantom_bridge"), new ItemSigilWhirlwind().setRegistryName("sigil_whirlwind"), new ItemSigilCompression().setRegistryName("sigil_compression"), - new ItemSigilEnderSeverance().setRegistryName("sigil_severance"), + new ItemSigilEnderSeverance().setRegistryName("sigil_ender_severance"), new ItemSigilHolding().setRegistryName("sigil_holding"), new ItemSigilTeleposition().setRegistryName("sigil_teleposition"), new ItemSigilTransposition().setRegistryName("sigil_transposition"), @@ -162,16 +173,16 @@ public class RegistrarBloodMagicItems new ItemComponent().setRegistryName("component"), new ItemDemonCrystal().setRegistryName("item_demon_crystal"), new ItemTelepositionFocus().setRegistryName("teleposition_focus"), - new ItemExperienceBook().setRegistryName("experience_book"), + new ItemExperienceBook().setRegistryName("experience_tome"), new ItemBloodShard().setRegistryName("blood_shard"), - new ItemLivingArmour(EntityEquipmentSlot.HEAD).setRegistryName("living_helm"), - new ItemLivingArmour(EntityEquipmentSlot.CHEST).setRegistryName("living_chest"), - new ItemLivingArmour(EntityEquipmentSlot.LEGS).setRegistryName("living_leggings"), - new ItemLivingArmour(EntityEquipmentSlot.FEET).setRegistryName("living_boots"), - new ItemSentientArmour(EntityEquipmentSlot.HEAD).setRegistryName("sentient_helm"), - new ItemSentientArmour(EntityEquipmentSlot.CHEST).setRegistryName("sentient_chest"), - new ItemSentientArmour(EntityEquipmentSlot.LEGS).setRegistryName("sentient_leggings"), - new ItemSentientArmour(EntityEquipmentSlot.FEET).setRegistryName("sentient_boots"), + new ItemLivingArmour(EntityEquipmentSlot.HEAD).setRegistryName("living_armour_helm"), + new ItemLivingArmour(EntityEquipmentSlot.CHEST).setRegistryName("living_armour_chest"), + new ItemLivingArmour(EntityEquipmentSlot.LEGS).setRegistryName("living_armour_leggings"), + new ItemLivingArmour(EntityEquipmentSlot.FEET).setRegistryName("living_armour_boots"), + new ItemSentientArmour(EntityEquipmentSlot.HEAD).setRegistryName("sentient_armour_helm"), + new ItemSentientArmour(EntityEquipmentSlot.CHEST).setRegistryName("sentient_armour_chest"), + new ItemSentientArmour(EntityEquipmentSlot.LEGS).setRegistryName("sentient_armour_leggings"), + new ItemSentientArmour(EntityEquipmentSlot.FEET).setRegistryName("sentient_armour_boots"), new ItemAltarMaker().setRegistryName("altar_maker"), new ItemUpgradeTome().setRegistryName("upgrade_tome"), new ItemUpgradeTrainer().setRegistryName("upgrade_trainer"), @@ -181,24 +192,19 @@ public class RegistrarBloodMagicItems new ItemSoulSnare().setRegistryName("soul_snare"), new ItemSentientSword().setRegistryName("sentient_sword"), new ItemSentientBow().setRegistryName("sentient_bow"), - new ItemSentientArmourGem().setRegistryName("armour_gem"), + new ItemSentientArmourGem().setRegistryName("sentient_armour_gem"), new ItemSentientAxe().setRegistryName("sentient_axe"), new ItemSentientPickaxe().setRegistryName("sentient_pickaxe"), new ItemSentientShovel().setRegistryName("sentient_shovel"), new ItemNodeRouter().setRegistryName("node_router"), - new ItemRouterFilter().setRegistryName("router_filter"), - new ItemFluidRouterFilter().setRegistryName("fluid_router_filter"), + new ItemRouterFilter().setRegistryName("base_item_filter"), + new ItemFluidRouterFilter().setRegistryName("base_fluid_filter"), new ItemCuttingFluid().setRegistryName("cutting_fluid"), new ItemSanguineBook().setRegistryName("sanguine_book"), - new ItemLivingArmourPointsUpgrade().setRegistryName("living_armor_point_upgrade"), + new ItemLivingArmourPointsUpgrade().setRegistryName("points_upgrade"), new ItemDemonWillGauge().setRegistryName("demon_will_gauge"), new ItemPotionFlask().setRegistryName("potion_flask") - ); - - RegistrarBloodMagicBlocks.blocks.stream().filter(block -> block instanceof IBMBlock && ((IBMBlock) block).getItem() != null).forEach(block -> { - IBMBlock bmBlock = (IBMBlock) block; - items.add(bmBlock.getItem().setRegistryName(block.getRegistryName())); - }); + )); event.getRegistry().registerAll(items.toArray(new Item[0])); } diff --git a/src/main/java/WayofTime/bloodmagic/core/recipe/IngredientBloodOrb.java b/src/main/java/WayofTime/bloodmagic/core/recipe/IngredientBloodOrb.java new file mode 100644 index 00000000..99d8b83d --- /dev/null +++ b/src/main/java/WayofTime/bloodmagic/core/recipe/IngredientBloodOrb.java @@ -0,0 +1,82 @@ +package WayofTime.bloodmagic.core.recipe; + +import WayofTime.bloodmagic.api.orb.BloodOrb; +import WayofTime.bloodmagic.api.orb.IBloodOrb; +import WayofTime.bloodmagic.api.registry.OrbRegistry; +import it.unimi.dsi.fastutil.ints.IntArrayList; +import it.unimi.dsi.fastutil.ints.IntComparators; +import it.unimi.dsi.fastutil.ints.IntList; +import net.minecraft.client.util.RecipeItemHelper; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.Ingredient; +import net.minecraft.util.NonNullList; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; + +import javax.annotation.Nonnull; +import javax.annotation.Nullable; +import java.util.List; + +public class IngredientBloodOrb extends Ingredient { + + private final BloodOrb orb; + private NonNullList orbs; + private IntList itemIds = null; + private ItemStack[] items; + + public IngredientBloodOrb(BloodOrb orb) { + super(); + + this.orb = orb; + + List orbGet = OrbRegistry.getOrbsDownToTier(orb.getTier()); + orbs = NonNullList.withSize(orbGet.size(), ItemStack.EMPTY); + + for (int i = 0; i < orbGet.size(); i++) + orbs.set(i, orbGet.get(i)); + } + + @Override + @Nonnull + public ItemStack[] getMatchingStacks() { + if (items == null) + items = orbs.toArray(new ItemStack[0]); + return items; + } + + @Override + @Nonnull + @SideOnly(Side.CLIENT) + public IntList getValidItemStacksPacked() { + if (this.itemIds == null || itemIds.size() != orbs.size()) { + this.itemIds = new IntArrayList(orbs.size()); + + for (ItemStack itemstack : orbs) + this.itemIds.add(RecipeItemHelper.pack(itemstack)); + + this.itemIds.sort(IntComparators.NATURAL_COMPARATOR); + } + + return this.itemIds; + } + + @Override + public boolean apply(@Nullable ItemStack input) { + if (input == null || input.isEmpty()) + return false; + + if (!input.hasTagCompound()) + return false; + + if (!(input.getItem() instanceof IBloodOrb)) + return false; + + BloodOrb orb = ((IBloodOrb) input.getItem()).getOrb(input); + return orb != null && orb.getTier() >= this.orb.getTier(); + } + + @Override + protected void invalidate() { + this.itemIds = null; + } +} diff --git a/src/main/java/WayofTime/bloodmagic/core/recipe/IngredientBloodOrbFactory.java b/src/main/java/WayofTime/bloodmagic/core/recipe/IngredientBloodOrbFactory.java new file mode 100644 index 00000000..bd7060ee --- /dev/null +++ b/src/main/java/WayofTime/bloodmagic/core/recipe/IngredientBloodOrbFactory.java @@ -0,0 +1,21 @@ +package WayofTime.bloodmagic.core.recipe; + +import WayofTime.bloodmagic.core.RegistrarBloodMagic; +import com.google.gson.JsonObject; +import net.minecraft.item.crafting.Ingredient; +import net.minecraft.util.JsonUtils; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.common.crafting.IIngredientFactory; +import net.minecraftforge.common.crafting.JsonContext; + +import javax.annotation.Nonnull; + +public class IngredientBloodOrbFactory implements IIngredientFactory { + + @Nonnull + @Override + public Ingredient parse(JsonContext context, JsonObject json) { + ResourceLocation orb = new ResourceLocation(JsonUtils.getString(json, "orb")); + return new IngredientBloodOrb(RegistrarBloodMagic.BLOOD_ORBS.getValue(orb)); + } +} diff --git a/src/main/java/WayofTime/bloodmagic/item/alchemy/ItemLivingArmourPointsUpgrade.java b/src/main/java/WayofTime/bloodmagic/item/alchemy/ItemLivingArmourPointsUpgrade.java index 4bbd166c..7c366b96 100644 --- a/src/main/java/WayofTime/bloodmagic/item/alchemy/ItemLivingArmourPointsUpgrade.java +++ b/src/main/java/WayofTime/bloodmagic/item/alchemy/ItemLivingArmourPointsUpgrade.java @@ -138,7 +138,7 @@ public class ItemLivingArmourPointsUpgrade extends Item implements IVariantProvi public static ItemStack getStack(String name) { - return new ItemStack(RegistrarBloodMagicItems.ITEM_POINTS_UPGRADE, 1, names.indexOf(name)); + return new ItemStack(RegistrarBloodMagicItems.POINTS_UPGRADE, 1, names.indexOf(name)); } @Override diff --git a/src/main/java/WayofTime/bloodmagic/registry/ModRecipes.java b/src/main/java/WayofTime/bloodmagic/registry/ModRecipes.java index 446d1472..be432487 100644 --- a/src/main/java/WayofTime/bloodmagic/registry/ModRecipes.java +++ b/src/main/java/WayofTime/bloodmagic/registry/ModRecipes.java @@ -7,6 +7,8 @@ import java.util.*; import java.util.Map.Entry; import WayofTime.bloodmagic.ConfigHandler; +import WayofTime.bloodmagic.api.orb.BloodOrb; +import WayofTime.bloodmagic.api.orb.IBloodOrb; import WayofTime.bloodmagic.block.enums.EnumBloodRune; import WayofTime.bloodmagic.core.RegistrarBloodMagic; import WayofTime.bloodmagic.core.RegistrarBloodMagicBlocks; @@ -229,6 +231,8 @@ public class ModRecipes GameRegistry.addSmelting(baseStoneStack, polishedStoneStack, 0.15f); } + + generateConstants(); } public static void addAltarRecipes() @@ -718,6 +722,14 @@ public class ModRecipes } if (thing instanceof ItemStack) { ItemStack stack = (ItemStack) thing; + + if (stack.getItem() instanceof IBloodOrb) { + Map ret = new HashMap<>(); + BloodOrb orb = ((IBloodOrb) stack.getItem()).getOrb(stack); + ret.put("orb", orb == null ? RegistrarBloodMagic.ORB_WEAK.getRegistryName().toString() : orb.getRegistryName().toString()); + return ret; + } + Map ret = new HashMap<>(); ret.put("item", stack.getItem().getRegistryName().toString()); if (stack.getItem().getHasSubtypes() || stack.getItemDamage() != 0) { diff --git a/src/main/resources/assets/bloodmagic/recipes/_factories.json b/src/main/resources/assets/bloodmagic/recipes/_factories.json new file mode 100644 index 00000000..70d84b40 --- /dev/null +++ b/src/main/resources/assets/bloodmagic/recipes/_factories.json @@ -0,0 +1,5 @@ +{ + "ingredients": { + "orb": "WayofTime.bloodmagic.core.recipe.IngredientBloodOrbFactory" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/textures/gui/container/creative_inventory/tab_upgrade_tomes.png b/src/main/resources/assets/minecraft/textures/gui/container/creative_inventory/tab_upgrade_tomes.png deleted file mode 100644 index 7cd035e025f7804e7db595a451c5b33cca9fe7b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1107 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|G$6&6|H(?D8gCb z5n0T@z;_UY8Fx&~ehU<2FY)wsWq-iU$iS|V&v7%Gfr0sfr;B4q#jUq@0`pb{h_GJp zzHInY@p6Ka%9-ZI6BaKvRLJW;`KY1Mw4&mg*RP9h@1nlut-CT$=kI0J4)xEcmtQHJ z`_=yd>x9&W-VaVcQs1;K*ZFtUk4A&##}xIzMNoM*jQ7(Da7k*V>B6Y1^J| zC};e_z1IFRpZMJ$Z*I$*m;U*1V`b0Bqc@fI_%$-_bdy`84e#cj(Jeb zo&M^_$BmDBcD|1<+P1&!&yFe2@_t{r?#Q^tf}5{@e$<2F`^I{W>GAmz_t{b#m}cD6 z>lZ(LN%qL4qkm5vHJ@raz5e_;X1iq!>*oHQrZ;Wr&Fp=3xr+CypUpe{{nvc|ulKDP z-~Wt$eJ9f3R?^DXw|+B}ZF~NkVUO^KgX{m#l~p`p%J6R=_l8wk`}p)Svl)lAUiob?kQUzVyP z4g$fA;&u$tGb)tRv->>l*5NP&YA)E8gEKf(o(ovMIqaff*?z)M@P(^&!#~CwhmJ^F zMi=|A6!Btn1>9j^XL1|^>rIqbV>)T+(%0#re~a-8{{b-YXjp+@z0YJ}! z{OMo-*30+X0O%XVA|IBji+l^}8MYaGbUSxVMz}GC87&-;4bXr%vB?mu_r~$Foem%R zd{{mSLB!vceO6kq@<7o&#dI6d8S0`A{~2-;U#*?9)>1E^niEf02S6f&C0T339OoxC z+U8Qhjhtsg5)POGqsL*#+xnFInoD&~Z(5fdUCzOBmoeq}=bL*SJp%O^{Qh2=yPWwN eD8~*2aR10|@iaGFYN@9-$a+s#KbLh*2~7a(j(;Zr