Fix some things that went missing

This commit is contained in:
Nicholas Ignoffo 2017-08-15 21:24:59 -07:00
parent 348fee1e2a
commit 61c44a831b
14 changed files with 199 additions and 37 deletions

View file

@ -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<Pair<IBloodMagicPlugin, BloodMagicPlugin>> PLUGINS = Lists.newArrayList();

View file

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

View file

@ -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<Integer, String>(0, "normal"));
return ret;
}
@Override
public ItemBlock getItem() {
return new ItemBlock(this);
}
}

View file

@ -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<Integer, String>(0, "normal"));
return ret;
}
@Override
public ItemBlock getItem() {
return new ItemBlock(this);
}
}

View file

@ -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<Integer, String>(0, "normal"));
return ret;
}
@Override
public ItemBlock getItem() {
return new ItemBlock(this);
}
}

View file

@ -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<Integer, String>(0, "normal"));
return ret;
}
@Override
public ItemBlock getItem() {
return new ItemBlock(this);
}
}

View file

@ -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<Integer, String>(0, "normal"));
return ret;
}
@Override
public ItemBlock getItem() {
return new ItemBlock(this);
}
}

View file

@ -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<Item> items;
public static List<Item> items;
@SubscribeEvent
public static void registerItems(RegistryEvent.Register<Item> 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]));
}

View file

@ -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<ItemStack> orbs;
private IntList itemIds = null;
private ItemStack[] items;
public IngredientBloodOrb(BloodOrb orb) {
super();
this.orb = orb;
List<ItemStack> 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;
}
}

View file

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

View file

@ -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

View file

@ -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<String, Object> 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<String, Object> ret = new HashMap<>();
ret.put("item", stack.getItem().getRegistryName().toString());
if (stack.getItem().getHasSubtypes() || stack.getItemDamage() != 0) {

View file

@ -0,0 +1,5 @@
{
"ingredients": {
"orb": "WayofTime.bloodmagic.core.recipe.IngredientBloodOrbFactory"
}
}