2015-11-07 10:12:44 +01:00
|
|
|
package techreborn.events;
|
|
|
|
|
|
|
|
import net.minecraft.block.Block;
|
|
|
|
import net.minecraft.item.Item;
|
|
|
|
import net.minecraft.item.ItemStack;
|
2016-03-13 17:08:30 +01:00
|
|
|
import net.minecraft.util.EnumHand;
|
2015-11-23 20:19:18 +01:00
|
|
|
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
|
|
|
import net.minecraftforge.fml.common.gameevent.TickEvent;
|
2015-11-07 10:12:44 +01:00
|
|
|
import net.minecraftforge.oredict.OreDictionary;
|
2015-11-08 13:34:18 +01:00
|
|
|
import reborncore.common.util.ItemUtils;
|
2015-11-11 18:25:55 +01:00
|
|
|
import techreborn.config.ConfigTechReborn;
|
2015-11-07 10:12:44 +01:00
|
|
|
|
2016-03-28 21:51:23 +02:00
|
|
|
import java.util.HashMap;
|
|
|
|
|
2016-03-25 10:47:34 +01:00
|
|
|
public class OreUnifier
|
|
|
|
{
|
|
|
|
|
2016-04-03 15:34:39 +02:00
|
|
|
public static HashMap<String, ItemStack> oreHash = new HashMap<>();
|
2016-03-25 10:47:34 +01:00
|
|
|
|
|
|
|
public static void registerOre(String name, ItemStack ore)
|
|
|
|
{
|
|
|
|
oreHash.put(name, ore);
|
|
|
|
OreDictionary.registerOre(name, ore);
|
|
|
|
}
|
|
|
|
|
|
|
|
public static void registerOre(String name, Item ore)
|
|
|
|
{
|
|
|
|
registerOre(name, new ItemStack(ore));
|
|
|
|
}
|
2016-03-13 16:37:55 +01:00
|
|
|
|
2016-03-25 10:47:34 +01:00
|
|
|
public static void registerOre(String name, Block ore)
|
|
|
|
{
|
|
|
|
registerOre(name, new ItemStack(ore));
|
|
|
|
}
|
2015-11-07 10:12:44 +01:00
|
|
|
|
2016-03-25 10:47:34 +01:00
|
|
|
@SubscribeEvent
|
|
|
|
public void itemTick(TickEvent.PlayerTickEvent event)
|
|
|
|
{
|
2016-03-28 21:51:23 +02:00
|
|
|
if (ConfigTechReborn.OreUnifer && !event.player.worldObj.isRemote
|
2016-03-25 10:47:34 +01:00
|
|
|
&& event.player.worldObj.getTotalWorldTime() % 10 == 0)
|
|
|
|
{
|
|
|
|
if (event.player.getHeldItem(EnumHand.MAIN_HAND) != null)
|
|
|
|
{
|
|
|
|
int[] oreIds = OreDictionary.getOreIDs(event.player.getHeldItem(EnumHand.MAIN_HAND));
|
|
|
|
for (int id : oreIds)
|
|
|
|
{
|
|
|
|
String oreName = OreDictionary.getOreName(id);
|
|
|
|
if (oreHash.containsKey(oreName))
|
|
|
|
{
|
|
|
|
if (ItemUtils.isItemEqual(event.player.getHeldItem(EnumHand.MAIN_HAND), oreHash.get(oreName),
|
|
|
|
true, true, true)
|
|
|
|
&& !ItemUtils.isItemEqual(event.player.getHeldItem(EnumHand.MAIN_HAND),
|
|
|
|
oreHash.get(oreName), true, true, false))
|
|
|
|
{
|
|
|
|
ItemStack stack = oreHash.get(oreName).copy();
|
|
|
|
stack.stackSize = event.player.getHeldItem(EnumHand.MAIN_HAND).stackSize;
|
|
|
|
stack.setTagCompound(event.player.getHeldItem(EnumHand.MAIN_HAND).getTagCompound());
|
|
|
|
event.player.inventory.setInventorySlotContents(event.player.inventory.currentItem, stack);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2015-11-07 10:12:44 +01:00
|
|
|
|
|
|
|
}
|