Bound tools

Fix errors

Fix

Fix

Patch

Patch
This commit is contained in:
Arcaratus 2015-12-29 14:32:35 -05:00
parent 6c6d8067bf
commit aa0f7d81a0
33 changed files with 880 additions and 31 deletions

View file

@ -20,7 +20,7 @@ public class ItemActivationCrystal extends ItemBindable {
setUnlocalizedName(Constants.Mod.MODID + ".activationCrystal.");
setHasSubtypes(true);
setEnergyUsed(100);
setLPUsed(100);
}
@Override

View file

@ -25,7 +25,7 @@ import java.util.List;
public class ItemBindable extends Item implements IBindable {
private int energyUsed;
private int lpUsed;
public ItemBindable() {
super();
@ -119,12 +119,12 @@ public class ItemBindable extends Item implements IBindable {
}
}
public int getEnergyUsed() {
return this.energyUsed;
public int getLPUsed() {
return this.lpUsed;
}
protected void setEnergyUsed(int energyUsed) {
this.energyUsed = energyUsed;
protected void setLPUsed(int lpUsed) {
this.lpUsed = lpUsed;
}
public String getBindableOwner(ItemStack stack) {

View file

@ -0,0 +1,36 @@
package WayofTime.bloodmagic.item;
import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.api.Constants;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import java.util.List;
public class ItemBloodShard extends Item {
public String[] names = { "weak", "demon" };
public ItemBloodShard() {
super();
setCreativeTab(BloodMagic.tabBloodMagic);
setUnlocalizedName(Constants.Mod.MODID + ".bloodShard.");
setHasSubtypes(true);
}
@Override
@SideOnly(Side.CLIENT)
public void getSubItems(Item id, CreativeTabs creativeTab, List<ItemStack> list) {
for (int i = 0; i < names.length; i++)
list.add(new ItemStack(id, 1, i));
}
@Override
public String getUnlocalizedName(ItemStack stack) {
return super.getUnlocalizedName(stack) + names[stack.getItemDamage()];
}
}

View file

@ -0,0 +1,83 @@
package WayofTime.bloodmagic.item;
import WayofTime.bloodmagic.api.ItemStackWrapper;
import com.google.common.collect.HashMultiset;
import com.google.common.collect.Multimap;
import com.google.common.collect.Sets;
import net.minecraft.block.Block;
import net.minecraft.block.BlockLeavesBase;
import net.minecraft.block.material.Material;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.ai.attributes.AttributeModifier;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.util.BlockPos;
import net.minecraft.world.World;
import java.util.List;
import java.util.Set;
public class ItemBoundAxe extends ItemBoundTool {
private static final Set<Block> EFFECTIVE_ON = Sets.newHashSet(Blocks.planks, Blocks.bookshelf, Blocks.log, Blocks.log2, Blocks.chest, Blocks.pumpkin, Blocks.lit_pumpkin, Blocks.melon_block, Blocks.ladder);
public ItemBoundAxe() {
super("axe", 5, EFFECTIVE_ON);
}
@Override
public float getStrVsBlock(ItemStack stack, Block block) {
return block.getMaterial() != Material.wood && block.getMaterial() != Material.plants && block.getMaterial() != Material.vine ? super.getStrVsBlock(stack, block) : 12F;
}
@Override
protected void onBoundRelease(ItemStack stack, World world, EntityPlayer player, int charge) {
boolean silkTouch = EnchantmentHelper.getSilkTouchModifier(player);
int fortuneLvl = EnchantmentHelper.getFortuneModifier(player);
int range = (int) (charge * 0.25);
HashMultiset<ItemStackWrapper> drops = HashMultiset.create();
BlockPos playerPos = player.getPosition().add(0, -1, 0);
for (int i = -range; i <= range; i++) {
for (int j = -range; j <= range; j++) {
for (int k = -range; k <= range; k++) {
BlockPos blockPos = playerPos.add(i, j, k);
Block block = world.getBlockState(blockPos).getBlock();
int blockMeta = block.getMetaFromState(world.getBlockState(blockPos));
if (block != null && block.getBlockHardness(world, blockPos) != -1) {
float strengthVsBlock = getStrVsBlock(stack, block);
if (strengthVsBlock > 1.1F || block instanceof BlockLeavesBase && world.canMineBlockBody(player, blockPos)) {
if (silkTouch && block.canSilkHarvest(world, blockPos, world.getBlockState(blockPos), player))
drops.add(new ItemStackWrapper(block, 1, blockMeta));
else {
List<ItemStack> itemDrops = block.getDrops(world, blockPos, world.getBlockState(blockPos), fortuneLvl);
if (itemDrops != null)
for (ItemStack stacks : itemDrops)
drops.add(ItemStackWrapper.getHolder(stacks));
}
world.setBlockToAir(blockPos);
}
}
}
}
}
world.createExplosion(player, playerPos.getX(), playerPos.getY(), playerPos.getZ(), 0.5F, false);
dropStacks(drops, world, playerPos.add(0, 1, 0));
}
@Override
public Multimap<String, AttributeModifier> getAttributeModifiers(ItemStack stack) {
Multimap<String, AttributeModifier> multimap = super.getAttributeModifiers(stack);
multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), new AttributeModifier(itemModifierUUID, "Weapon modifier", 7, 0));
return multimap;
}
}

View file

@ -0,0 +1,89 @@
package WayofTime.bloodmagic.item;
import WayofTime.bloodmagic.api.ItemStackWrapper;
import com.google.common.collect.HashMultiset;
import com.google.common.collect.Multimap;
import com.google.common.collect.Multiset;
import com.google.common.collect.Sets;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.ai.attributes.AttributeModifier;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.util.BlockPos;
import net.minecraft.world.World;
import java.util.List;
import java.util.Set;
public class ItemBoundPickaxe extends ItemBoundTool {
private static final Set<Block> EFFECTIVE_ON = Sets.newHashSet(Blocks.activator_rail, Blocks.coal_ore, Blocks.cobblestone, Blocks.detector_rail, Blocks.diamond_block, Blocks.diamond_ore, Blocks.double_stone_slab, Blocks.golden_rail, Blocks.gold_block, Blocks.gold_ore, Blocks.ice, Blocks.iron_block, Blocks.iron_ore, Blocks.lapis_block, Blocks.lapis_ore, Blocks.lit_redstone_ore, Blocks.mossy_cobblestone, Blocks.netherrack, Blocks.packed_ice, Blocks.rail, Blocks.redstone_ore, Blocks.sandstone, Blocks.red_sandstone, Blocks.stone, Blocks.stone_slab);
public ItemBoundPickaxe() {
super("pickaxe", 5, EFFECTIVE_ON);
}
@Override
public boolean canHarvestBlock(Block blockIn) {
return true;
}
@Override
public float getStrVsBlock(ItemStack stack, Block block) {
return block.getMaterial() != Material.iron && block.getMaterial() != Material.anvil && block.getMaterial() != Material.rock ? super.getStrVsBlock(stack, block) : 12F;
}
@Override
protected void onBoundRelease(ItemStack stack, World world, EntityPlayer player, int charge) {
boolean silkTouch = EnchantmentHelper.getSilkTouchModifier(player);
int fortuneLvl = EnchantmentHelper.getFortuneModifier(player);
int range = (int) (charge * 0.25);
HashMultiset<ItemStackWrapper> drops = HashMultiset.create();
BlockPos playerPos = player.getPosition().add(0, -1, 0);
for (int i = -range; i <= range; i++) {
for (int j = -range; j <= range; j++) {
for (int k = -range; k <= range; k++) {
BlockPos blockPos = playerPos.add(i, j, k);
Block block = world.getBlockState(blockPos).getBlock();
int blockMeta = block.getMetaFromState(world.getBlockState(blockPos));
if (block != null && block.getBlockHardness(world, blockPos) != -1) {
float strengthVsBlock = getStrVsBlock(stack, block);
if (strengthVsBlock > 1.1F && world.canMineBlockBody(player, blockPos)) {
if (silkTouch && block.canSilkHarvest(world, blockPos, world.getBlockState(blockPos), player))
drops.add(new ItemStackWrapper(block, 1, blockMeta));
else {
List<ItemStack> itemDrops = block.getDrops(world, blockPos, world.getBlockState(blockPos), fortuneLvl);
if (itemDrops != null)
for (ItemStack stacks : itemDrops)
drops.add(ItemStackWrapper.getHolder(stacks));
}
world.setBlockToAir(blockPos);
}
}
}
}
}
world.createExplosion(player, playerPos.getX(), playerPos.getY(), playerPos.getZ(), 0.5F, false);
dropStacks(drops, world, playerPos.add(0, 1, 0));
}
@Override
public Multimap<String, AttributeModifier> getAttributeModifiers(ItemStack stack) {
Multimap<String, AttributeModifier> multimap = super.getAttributeModifiers(stack);
multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), new AttributeModifier(itemModifierUUID, "Weapon modifier", 5, 0));
return multimap;
}
}

View file

@ -0,0 +1,81 @@
package WayofTime.bloodmagic.item;
import WayofTime.bloodmagic.api.ItemStackWrapper;
import com.google.common.collect.HashMultiset;
import com.google.common.collect.Multimap;
import com.google.common.collect.Sets;
import net.minecraft.block.Block;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.ai.attributes.AttributeModifier;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.util.BlockPos;
import net.minecraft.world.World;
import java.util.List;
import java.util.Set;
public class ItemBoundShovel extends ItemBoundTool {
private static final Set<Block> EFFECTIVE_ON = Sets.newHashSet(Blocks.clay, Blocks.dirt, Blocks.farmland, Blocks.grass, Blocks.gravel, Blocks.mycelium, Blocks.sand, Blocks.snow, Blocks.snow_layer, Blocks.soul_sand);
public ItemBoundShovel() {
super("shovel", 5, EFFECTIVE_ON);
}
@Override
public boolean canHarvestBlock(Block blockIn) {
return blockIn == Blocks.snow_layer || blockIn == Blocks.snow;
}
@Override
protected void onBoundRelease(ItemStack stack, World world, EntityPlayer player, int charge) {
boolean silkTouch = EnchantmentHelper.getSilkTouchModifier(player);
int fortuneLvl = EnchantmentHelper.getFortuneModifier(player);
int range = (int) (charge * 0.25);
HashMultiset<ItemStackWrapper> drops = HashMultiset.create();
BlockPos playerPos = player.getPosition().add(0, -1, 0);
for (int i = -range; i <= range; i++) {
for (int j = -range; j <= range; j++) {
for (int k = -range; k <= range; k++) {
BlockPos blockPos = playerPos.add(i, j, k);
Block block = world.getBlockState(blockPos).getBlock();
int blockMeta = block.getMetaFromState(world.getBlockState(blockPos));
if (block != null && block.getBlockHardness(world, blockPos) != -1) {
float strengthVsBlock = getStrVsBlock(stack, block);
if (strengthVsBlock > 1.1F && world.canMineBlockBody(player, blockPos)) {
if (silkTouch && block.canSilkHarvest(world, blockPos, world.getBlockState(blockPos), player))
drops.add(new ItemStackWrapper(block, 1, blockMeta));
else {
List<ItemStack> itemDrops = block.getDrops(world, blockPos, world.getBlockState(blockPos), fortuneLvl);
if (itemDrops != null)
for (ItemStack stacks : itemDrops)
drops.add(ItemStackWrapper.getHolder(stacks));
}
world.setBlockToAir(blockPos);
}
}
}
}
}
world.createExplosion(player, playerPos.getX(), playerPos.getY(), playerPos.getZ(), 0.5F, false);
dropStacks(drops, world, playerPos.add(0, 1, 0));
}
@Override
public Multimap<String, AttributeModifier> getAttributeModifiers(ItemStack stack) {
Multimap<String, AttributeModifier> multimap = super.getAttributeModifiers(stack);
multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), new AttributeModifier(itemModifierUUID, "Weapon modifier", 1, 0));
return multimap;
}
}

View file

@ -0,0 +1,137 @@
package WayofTime.bloodmagic.item;
import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.event.BoundToolEvent;
import WayofTime.bloodmagic.api.util.helper.BindableHelper;
import WayofTime.bloodmagic.api.util.helper.NBTHelper;
import WayofTime.bloodmagic.registry.ModItems;
import WayofTime.bloodmagic.util.helper.TextHelper;
import com.google.common.base.Strings;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumAction;
import net.minecraft.item.ItemStack;
import net.minecraft.item.ItemSword;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.util.StatCollector;
import net.minecraft.world.Explosion;
import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import java.util.List;
public class ItemBoundSword extends ItemSword {
private int lpUsed;
public ItemBoundSword() {
super(ModItems.boundToolMaterial);
setUnlocalizedName(Constants.Mod.MODID + ".bound.sword");
setHasSubtypes(true);
setNoRepair();
setCreativeTab(BloodMagic.tabBloodMagic);
this.lpUsed = 50;
}
@Override
public void onPlayerStoppedUsing(ItemStack stack, World worldIn, EntityPlayer playerIn, int timeLeft) {
if (!playerIn.isSneaking() && getActivated(stack)) {
int i = this.getMaxItemUseDuration(stack) - timeLeft;
BoundToolEvent.Release event = new BoundToolEvent.Release(playerIn, stack, i);
if (MinecraftForge.EVENT_BUS.post(event))
return;
i = event.charge;
//TODO Make conical charge blast
Explosion explosion = new Explosion(worldIn, playerIn, playerIn.posX, playerIn.posY, playerIn.posZ, (float) (i * 0.5), true, true);
if (net.minecraftforge.event.ForgeEventFactory.onExplosionStart(worldIn, explosion)) return;
explosion.doExplosionA();
explosion.doExplosionB(true);
}
}
@Override
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) {
BindableHelper.checkAndSetItemOwner(stack, player);
// if (!world.isRemote)
{
if (player.isSneaking())
setActivated(stack, !getActivated(stack));
if (getActivated(stack) && ItemBindable.syphonBatteries(stack, player, lpUsed))
return stack;
if (!player.isSneaking() && getActivated(stack)) {
BoundToolEvent.Charge event = new BoundToolEvent.Charge(player, stack);
if (MinecraftForge.EVENT_BUS.post(event))
return event.result;
player.setItemInUse(stack, this.getMaxItemUseDuration(stack));
}
}
return stack;
}
@Override
public boolean hitEntity(ItemStack stack, EntityLivingBase target, EntityLivingBase attacker) {
if (getActivated(stack)) {
if (target != null || attacker != null) {
if (target instanceof EntityLiving) {
if (!target.isPotionActive(Potion.weakness))
target.addPotionEffect(new PotionEffect(Potion.weakness.id, 60, 2));
}
}
return true;
}
return false;
}
@Override
public ItemStack onItemUseFinish(ItemStack stack, World worldIn, EntityPlayer playerIn)
{
return stack;
}
@Override
public EnumAction getItemUseAction(ItemStack stack) {
return EnumAction.BLOCK;
}
@Override
@SideOnly(Side.CLIENT)
public void addInformation(ItemStack stack, EntityPlayer player, List<String> tooltip, boolean advanced) {
NBTHelper.checkNBT(stack);
if (StatCollector.canTranslate("tooltip.BloodMagic.bound.sword.desc"))
tooltip.add(TextHelper.localizeEffect("tooltip.BloodMagic.bound.sword.desc"));
if (getActivated(stack))
tooltip.add(TextHelper.localize("tooltip.BloodMagic.activated"));
else
tooltip.add(TextHelper.localize("tooltip.BloodMagic.deactivated"));
if (!Strings.isNullOrEmpty(stack.getTagCompound().getString(Constants.NBT.OWNER_UUID)))
tooltip.add(TextHelper.getFormattedText(String.format(StatCollector.translateToLocal("tooltip.BloodMagic.currentOwner"), stack.getTagCompound().getString(Constants.NBT.OWNER_UUID))));
}
private boolean getActivated(ItemStack stack) {
return stack.getItemDamage() > 0;
}
private ItemStack setActivated(ItemStack stack, boolean activated) {
stack.setItemDamage(activated ? 1 : 0);
return stack;
}
}

View file

@ -0,0 +1,196 @@
package WayofTime.bloodmagic.item;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.ItemStackWrapper;
import WayofTime.bloodmagic.api.event.BoundToolEvent;
import WayofTime.bloodmagic.api.util.helper.BindableHelper;
import WayofTime.bloodmagic.util.helper.TextHelper;
import com.google.common.collect.Multiset;
import lombok.Getter;
import net.minecraft.block.Block;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumAction;
import net.minecraft.item.ItemStack;
import net.minecraft.util.BlockPos;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.StatCollector;
import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import java.util.List;
import java.util.Set;
@Getter
public class ItemBoundTool extends ItemBindable {
private Set<Block> effectiveBlocks;
protected final String tooltipBase;
private final String name;
public boolean beingHeldDown;
private int heldDownCount;
public final int chargeTime = 30;
public ItemBoundTool(String name, int lpUsed, Set<Block> effectiveBlocks) {
super();
setUnlocalizedName(Constants.Mod.MODID + ".bound." + name);
setHasSubtypes(true);
setLPUsed(lpUsed);
setFull3D();
this.name = name;
this.tooltipBase = "tooltip.BloodMagic.bound." + name + ".";
this.effectiveBlocks = effectiveBlocks;
}
public ItemBoundTool(String name, int lpUsed) {
this(name, lpUsed, null);
}
@Override
public float getStrVsBlock(ItemStack stack, Block block) {
return this.effectiveBlocks.contains(block) ? 8.0F : 1.0F;
}
@Override
public void onUpdate(ItemStack stack, World worldIn, Entity entityIn, int itemSlot, boolean isSelected) {
if (entityIn instanceof EntityPlayer && getActivated(stack) && isSelected && isBeingHeldDown() && stack == ((EntityPlayer) entityIn).getCurrentEquippedItem()) {
EntityPlayer player = (EntityPlayer) entityIn;
heldDownCount = Math.min(player.getItemInUseDuration(), chargeTime);
}
}
@Override
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) {
BindableHelper.checkAndSetItemOwner(stack, player);
// if (!world.isRemote)
{
if (player.isSneaking())
setActivated(stack, !getActivated(stack));
// if (getActivated(stack) && ItemBindable.syphonBatteries(stack, player, getLPUsed()))
// return stack;
if (!player.isSneaking() && getActivated(stack)) {
BoundToolEvent.Charge event = new BoundToolEvent.Charge(player, stack);
if (MinecraftForge.EVENT_BUS.post(event))
return event.result;
player.setItemInUse(stack, this.getMaxItemUseDuration(stack));
beingHeldDown = true;
}
}
return stack;
}
@Override
public boolean onItemUseFirst(ItemStack stack, EntityPlayer player, World world, BlockPos blockPos, EnumFacing side, float hitX, float hitY, float hitZ) {
if (BindableHelper.checkAndSetItemOwner(stack, player) && ItemBindable.syphonBatteries(stack, player, getLPUsed()))
return false;
return false;
}
@Override
public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, BlockPos pos, EnumFacing side, float hitX, float hitY, float hitZ) {
this.onItemRightClick(stack, world, player);
return false;
}
@Override
public void onPlayerStoppedUsing(ItemStack stack, World worldIn, EntityPlayer playerIn, int timeLeft) {
if (!playerIn.isSneaking() && getActivated(stack)) {
int i = this.getMaxItemUseDuration(stack) - timeLeft;
BoundToolEvent.Release event = new BoundToolEvent.Release(playerIn, stack, i);
if (MinecraftForge.EVENT_BUS.post(event))
return;
i = event.charge;
onBoundRelease(stack, worldIn, playerIn, Math.min(i, chargeTime));
beingHeldDown = false;
}
}
protected void onBoundRelease(ItemStack stack, World world, EntityPlayer player, int charge) {
}
@Override
public ItemStack onItemUseFinish(ItemStack stack, World worldIn, EntityPlayer playerIn) {
return stack;
}
@Override
public int getMaxItemUseDuration(ItemStack stack) {
return 72000;
}
@Override
public EnumAction getItemUseAction(ItemStack stack) {
return EnumAction.BOW;
}
@Override
public int getItemEnchantability() {
return 50;
}
@Override
@SideOnly(Side.CLIENT)
public void addInformation(ItemStack stack, EntityPlayer player, List<String> tooltip, boolean advanced) {
if (StatCollector.canTranslate(tooltipBase + "desc"))
tooltip.add(TextHelper.localizeEffect(tooltipBase + "desc"));
if (getActivated(stack))
tooltip.add(TextHelper.localize("tooltip.BloodMagic.activated"));
else
tooltip.add(TextHelper.localize("tooltip.BloodMagic.deactivated"));
super.addInformation(stack, player, tooltip, advanced);
}
@Override
public boolean showDurabilityBar(ItemStack stack) {
return getActivated(stack) && beingHeldDown;
}
@Override
public double getDurabilityForDisplay(ItemStack stack) {
return ((double) -Math.min(getHeldDownCount(), chargeTime) / chargeTime) + 1;
}
protected static void dropStacks(Multiset<ItemStackWrapper> drops, World world, BlockPos posToDrop) {
for (Multiset.Entry<ItemStackWrapper> entry : drops.entrySet()) {
int count = entry.getCount();
ItemStackWrapper stack = entry.getElement();
int maxStackSize = stack.item.getItemStackLimit(stack.toStack(1));
while (count >= maxStackSize) {
world.spawnEntityInWorld(new EntityItem(world, posToDrop.getX(), posToDrop.getY(), posToDrop.getZ(), stack.toStack(maxStackSize)));
count -= maxStackSize;
}
if (count > 0)
world.spawnEntityInWorld(new EntityItem(world, posToDrop.getX(), posToDrop.getY(), posToDrop.getZ(), stack.toStack(count)));
}
}
public boolean getActivated(ItemStack stack) {
return stack.getItemDamage() > 0;
}
public ItemStack setActivated(ItemStack stack, boolean activated) {
stack.setItemDamage(activated ? 1 : 0);
return stack;
}
}

View file

@ -24,7 +24,7 @@ public class ItemInscriptionTool extends ItemBindable {
public ItemInscriptionTool() {
super();
setEnergyUsed(100);
setLPUsed(100);
setUnlocalizedName(Constants.Mod.MODID + ".scribe.");
setHasSubtypes(true);
}

View file

@ -31,7 +31,7 @@ public class ItemSigilAir extends ItemSigilBase {
player.fallDistance = 0;
if (!player.capabilities.isCreativeMode)
this.setUnusable(stack, !syphonBatteries(stack, player, getEnergyUsed()));
this.setUnusable(stack, !syphonBatteries(stack, player, getLPUsed()));
}
return super.onItemRightClick(stack, world, player);

View file

@ -24,11 +24,11 @@ public class ItemSigilBase extends ItemBindable implements ISigil {
private final String name;
private boolean toggleable;
public ItemSigilBase(String name, int energyUsed) {
public ItemSigilBase(String name, int lpUsed) {
super();
setUnlocalizedName(Constants.Mod.MODID + ".sigil." + name);
setEnergyUsed(energyUsed);
setLPUsed(lpUsed);
this.name = name;
this.tooltipBase = "tooltip.BloodMagic.sigil." + name + ".";

View file

@ -9,7 +9,6 @@ import net.minecraft.item.ItemStack;
import net.minecraft.util.BlockPos;
import net.minecraft.util.EnumFacing;
import net.minecraft.world.World;
import org.lwjgl.Sys;
public class ItemSigilBloodLight extends ItemSigilBase {
@ -19,7 +18,7 @@ public class ItemSigilBloodLight extends ItemSigilBase {
@Override
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) {
if (BindableHelper.checkAndSetItemOwner(stack, player) && ItemBindable.syphonBatteries(stack, player, getEnergyUsed() * 5) && !world.isRemote)
if (BindableHelper.checkAndSetItemOwner(stack, player) && ItemBindable.syphonBatteries(stack, player, getLPUsed() * 5) && !world.isRemote)
world.spawnEntityInWorld(new EntityBloodLight(world, player));
return stack;
@ -29,7 +28,7 @@ public class ItemSigilBloodLight extends ItemSigilBase {
public boolean onItemUseFirst(ItemStack stack, EntityPlayer player, World world, BlockPos blockPos, EnumFacing side, float hitX, float hitY, float hitZ) {
if (world.isRemote) return false;
if (BindableHelper.checkAndSetItemOwner(stack, player) && ItemBindable.syphonBatteries(stack, player, getEnergyUsed())) {
if (BindableHelper.checkAndSetItemOwner(stack, player) && ItemBindable.syphonBatteries(stack, player, getLPUsed())) {
BlockPos newPos = blockPos.offset(side);
if (world.isAirBlock(newPos)) {

View file

@ -47,14 +47,14 @@ public class ItemSigilLava extends ItemSigilBase {
return stack;
}
if (this.canPlaceLava(world, blockpos1) && syphonBatteries(stack, player, getEnergyUsed()) && this.tryPlaceLava(world, blockpos1)) {
if (this.canPlaceLava(world, blockpos1) && syphonBatteries(stack, player, getLPUsed()) && this.tryPlaceLava(world, blockpos1)) {
return stack;
}
}
}
if (!player.capabilities.isCreativeMode)
this.setUnusable(stack, !syphonBatteries(stack, player, getEnergyUsed()));
this.setUnusable(stack, !syphonBatteries(stack, player, getLPUsed()));
}
return stack;
@ -74,7 +74,7 @@ public class ItemSigilLava extends ItemSigilBase {
FluidStack fluid = new FluidStack(FluidRegistry.LAVA, 1000);
int amount = ((IFluidHandler) tile).fill(side, fluid, false);
if (amount > 0 && syphonBatteries(stack, player, getEnergyUsed())) {
if (amount > 0 && syphonBatteries(stack, player, getLPUsed())) {
((IFluidHandler) tile).fill(side, fluid, true);
}
@ -90,7 +90,7 @@ public class ItemSigilLava extends ItemSigilBase {
return false;
}
if (this.canPlaceLava(world, newPos) && syphonBatteries(stack, player, getEnergyUsed())) {
if (this.canPlaceLava(world, newPos) && syphonBatteries(stack, player, getLPUsed())) {
return this.tryPlaceLava(world, newPos);
}

View file

@ -37,7 +37,7 @@ public class ItemSigilToggleable extends ItemSigilBase {
if (!world.isRemote && !isUnusable(stack)) {
if (player.isSneaking())
setActivated(stack, !getActivated(stack));
if (getActivated(stack) && ItemBindable.syphonBatteries(stack, player, getEnergyUsed()))
if (getActivated(stack) && ItemBindable.syphonBatteries(stack, player, getLPUsed()))
return stack;
}
@ -46,7 +46,7 @@ public class ItemSigilToggleable extends ItemSigilBase {
@Override
public boolean onItemUseFirst(ItemStack stack, EntityPlayer player, World world, BlockPos blockPos, EnumFacing side, float hitX, float hitY, float hitZ) {
if (BindableHelper.checkAndSetItemOwner(stack, player) && ItemBindable.syphonBatteries(stack, player, getEnergyUsed()))
if (BindableHelper.checkAndSetItemOwner(stack, player) && ItemBindable.syphonBatteries(stack, player, getLPUsed()))
return onSigilUseFirst(stack, player, world, blockPos, side, hitX, hitY, hitZ);
return false;
@ -60,7 +60,7 @@ public class ItemSigilToggleable extends ItemSigilBase {
public void onUpdate(ItemStack stack, World worldIn, Entity entityIn, int itemSlot, boolean isSelected) {
if (!worldIn.isRemote && entityIn instanceof EntityPlayerMP && getActivated(stack)) {
if (worldIn.getWorldTime() % 100 == 0) {
if (!ItemBindable.syphonBatteries(stack, (EntityPlayer) entityIn, getEnergyUsed())) {
if (!ItemBindable.syphonBatteries(stack, (EntityPlayer) entityIn, getLPUsed())) {
setActivated(stack, false);
}
}

View file

@ -42,7 +42,7 @@ public class ItemSigilVoid extends ItemSigilBase {
return stack;
}
if (world.getBlockState(blockpos).getBlock().getMaterial().isLiquid() && syphonBatteries(stack, player, getEnergyUsed())) {
if (world.getBlockState(blockpos).getBlock().getMaterial().isLiquid() && syphonBatteries(stack, player, getLPUsed())) {
world.setBlockToAir(blockpos);
return stack;
}
@ -52,7 +52,7 @@ public class ItemSigilVoid extends ItemSigilBase {
}
if (!player.capabilities.isCreativeMode)
this.setUnusable(stack, !syphonBatteries(stack, player, getEnergyUsed()));
this.setUnusable(stack, !syphonBatteries(stack, player, getLPUsed()));
}
return stack;
@ -72,7 +72,7 @@ public class ItemSigilVoid extends ItemSigilBase {
if (tile instanceof IFluidHandler) {
FluidStack amount = ((IFluidHandler) tile).drain(side, 1000, false);
if (amount != null && amount.amount > 0 && syphonBatteries(stack, player, getEnergyUsed())) {
if (amount != null && amount.amount > 0 && syphonBatteries(stack, player, getLPUsed())) {
((IFluidHandler) tile).drain(side, 1000, true);
return true;
}
@ -86,7 +86,7 @@ public class ItemSigilVoid extends ItemSigilBase {
return false;
}
if (world.getBlockState(newPos).getBlock() instanceof IFluidBlock && syphonBatteries(stack, player, getEnergyUsed())) {
if (world.getBlockState(newPos).getBlock() instanceof IFluidBlock && syphonBatteries(stack, player, getLPUsed())) {
world.setBlockToAir(newPos);
return true;
}

View file

@ -47,14 +47,14 @@ public class ItemSigilWater extends ItemSigilBase {
return stack;
}
if (this.canPlaceWater(world, blockpos1) && syphonBatteries(stack, player, getEnergyUsed()) && this.tryPlaceWater(world, blockpos1)) {
if (this.canPlaceWater(world, blockpos1) && syphonBatteries(stack, player, getLPUsed()) && this.tryPlaceWater(world, blockpos1)) {
return stack;
}
}
}
if (!player.capabilities.isCreativeMode)
this.setUnusable(stack, !syphonBatteries(stack, player, getEnergyUsed()));
this.setUnusable(stack, !syphonBatteries(stack, player, getLPUsed()));
}
return stack;
@ -75,7 +75,7 @@ public class ItemSigilWater extends ItemSigilBase {
FluidStack fluid = new FluidStack(FluidRegistry.WATER, 1000);
int amount = ((IFluidHandler) tile).fill(side, fluid, false);
if (amount > 0 && syphonBatteries(stack, player, getEnergyUsed())) {
if (amount > 0 && syphonBatteries(stack, player, getLPUsed())) {
((IFluidHandler) tile).fill(side, fluid, true);
}
@ -91,7 +91,7 @@ public class ItemSigilWater extends ItemSigilBase {
return false;
}
if (this.canPlaceWater(world, newPos) && syphonBatteries(stack, player, getEnergyUsed())) {
if (this.canPlaceWater(world, newPos) && syphonBatteries(stack, player, getLPUsed())) {
return this.tryPlaceWater(world, newPos);
}