Remove reminents of core mod + fix powered items
This commit is contained in:
parent
68b40927c8
commit
0e8505b072
14 changed files with 1165 additions and 126 deletions
|
@ -31,17 +31,24 @@ import net.minecraft.inventory.EntityEquipmentSlot;
|
|||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemArmor;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.NonNullList;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.capabilities.ICapabilityProvider;
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
import reborncore.api.power.IEnergyInterfaceItem;
|
||||
import reborncore.api.power.IEnergyItemInfo;
|
||||
import reborncore.common.powerSystem.PowerSystem;
|
||||
import reborncore.common.powerSystem.PoweredItem;
|
||||
import reborncore.common.powerSystem.PoweredItemContainerProvider;
|
||||
import techreborn.client.TechRebornCreativeTab;
|
||||
import techreborn.config.ConfigTechReborn;
|
||||
import techreborn.init.ModItems;
|
||||
|
||||
public class ItemLapotronPack extends ItemArmor implements IEnergyItemInfo {
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
public class ItemLapotronPack extends ItemArmor implements IEnergyItemInfo, IEnergyInterfaceItem {
|
||||
|
||||
public static final int maxCharge = ConfigTechReborn.LapotronPackCharge;
|
||||
public double transferLimit = 100000;
|
||||
|
@ -112,4 +119,103 @@ public class ItemLapotronPack extends ItemArmor implements IEnergyItemInfo {
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getEnergy(ItemStack stack) {
|
||||
NBTTagCompound tagCompound = getOrCreateNbtData(stack);
|
||||
if (tagCompound.hasKey("charge")) {
|
||||
return tagCompound.getDouble("charge");
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setEnergy(double energy, ItemStack stack) {
|
||||
NBTTagCompound tagCompound = getOrCreateNbtData(stack);
|
||||
tagCompound.setDouble("charge", energy);
|
||||
|
||||
if (this.getEnergy(stack) > getMaxPower(stack)) {
|
||||
this.setEnergy(getMaxPower(stack), stack);
|
||||
} else if (this.getEnergy(stack) < 0) {
|
||||
this.setEnergy(0, stack);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public double addEnergy(double energy, ItemStack stack) {
|
||||
return addEnergy(energy, false, stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double addEnergy(double energy, boolean simulate, ItemStack stack) {
|
||||
double energyReceived = Math.min(getMaxPower(stack) - energy, Math.min(this.getMaxPower(stack), energy));
|
||||
|
||||
if (!simulate) {
|
||||
setEnergy(energy + energyReceived, stack);
|
||||
}
|
||||
return energyReceived;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean canUseEnergy(double input, ItemStack stack) {
|
||||
return input <= getEnergy(stack);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public double useEnergy(double energy, ItemStack stack) {
|
||||
return useEnergy(energy, false, stack);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public double useEnergy(double extract, boolean simulate, ItemStack stack) {
|
||||
double energyExtracted = Math.min(extract, Math.min(this.getMaxTransfer(stack), extract));
|
||||
|
||||
if (!simulate) {
|
||||
setEnergy(getEnergy(stack) - energyExtracted, stack);
|
||||
}
|
||||
return energyExtracted;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean canAddEnergy(double energy, ItemStack stack) {
|
||||
return this.getEnergy(stack) + energy <= getMaxPower(stack);
|
||||
}
|
||||
|
||||
|
||||
public NBTTagCompound getOrCreateNbtData(ItemStack itemStack) {
|
||||
NBTTagCompound tagCompound = itemStack.getTagCompound();
|
||||
if (tagCompound == null) {
|
||||
tagCompound = new NBTTagCompound();
|
||||
itemStack.setTagCompound(tagCompound);
|
||||
}
|
||||
|
||||
return tagCompound;
|
||||
}
|
||||
|
||||
|
||||
public double getDurabilityForDisplay(ItemStack stack) {
|
||||
double charge = (PoweredItem.getEnergy(stack) / getMaxPower(stack));
|
||||
return 1 - charge;
|
||||
}
|
||||
|
||||
|
||||
public boolean showDurabilityBar(ItemStack stack) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
public int getRGBDurabilityForDisplay(ItemStack stack) {
|
||||
return PowerSystem.getDisplayPower().colour;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public ICapabilityProvider initCapabilities(ItemStack stack,
|
||||
@Nullable
|
||||
NBTTagCompound nbt) {
|
||||
return new PoweredItemContainerProvider(stack);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -30,17 +30,24 @@ import net.minecraft.entity.player.EntityPlayer;
|
|||
import net.minecraft.inventory.EntityEquipmentSlot;
|
||||
import net.minecraft.item.ItemArmor;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.NonNullList;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.capabilities.ICapabilityProvider;
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
import reborncore.api.power.IEnergyInterfaceItem;
|
||||
import reborncore.api.power.IEnergyItemInfo;
|
||||
import reborncore.common.powerSystem.PowerSystem;
|
||||
import reborncore.common.powerSystem.PoweredItem;
|
||||
import reborncore.common.powerSystem.PoweredItemContainerProvider;
|
||||
import techreborn.client.TechRebornCreativeTab;
|
||||
import techreborn.config.ConfigTechReborn;
|
||||
import techreborn.init.ModItems;
|
||||
|
||||
public class ItemLithiumBatpack extends ItemArmor implements IEnergyItemInfo {
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
public class ItemLithiumBatpack extends ItemArmor implements IEnergyItemInfo, IEnergyInterfaceItem {
|
||||
|
||||
public static final int maxCharge = ConfigTechReborn.LithiumBatpackCharge;
|
||||
public double transferLimit = 10000;
|
||||
|
@ -112,4 +119,103 @@ public class ItemLithiumBatpack extends ItemArmor implements IEnergyItemInfo {
|
|||
itemList.add(charged);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getEnergy(ItemStack stack) {
|
||||
NBTTagCompound tagCompound = getOrCreateNbtData(stack);
|
||||
if (tagCompound.hasKey("charge")) {
|
||||
return tagCompound.getDouble("charge");
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setEnergy(double energy, ItemStack stack) {
|
||||
NBTTagCompound tagCompound = getOrCreateNbtData(stack);
|
||||
tagCompound.setDouble("charge", energy);
|
||||
|
||||
if (this.getEnergy(stack) > getMaxPower(stack)) {
|
||||
this.setEnergy(getMaxPower(stack), stack);
|
||||
} else if (this.getEnergy(stack) < 0) {
|
||||
this.setEnergy(0, stack);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public double addEnergy(double energy, ItemStack stack) {
|
||||
return addEnergy(energy, false, stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double addEnergy(double energy, boolean simulate, ItemStack stack) {
|
||||
double energyReceived = Math.min(getMaxPower(stack) - energy, Math.min(this.getMaxPower(stack), energy));
|
||||
|
||||
if (!simulate) {
|
||||
setEnergy(energy + energyReceived, stack);
|
||||
}
|
||||
return energyReceived;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean canUseEnergy(double input, ItemStack stack) {
|
||||
return input <= getEnergy(stack);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public double useEnergy(double energy, ItemStack stack) {
|
||||
return useEnergy(energy, false, stack);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public double useEnergy(double extract, boolean simulate, ItemStack stack) {
|
||||
double energyExtracted = Math.min(extract, Math.min(this.getMaxTransfer(stack), extract));
|
||||
|
||||
if (!simulate) {
|
||||
setEnergy(getEnergy(stack) - energyExtracted, stack);
|
||||
}
|
||||
return energyExtracted;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean canAddEnergy(double energy, ItemStack stack) {
|
||||
return this.getEnergy(stack) + energy <= getMaxPower(stack);
|
||||
}
|
||||
|
||||
|
||||
public NBTTagCompound getOrCreateNbtData(ItemStack itemStack) {
|
||||
NBTTagCompound tagCompound = itemStack.getTagCompound();
|
||||
if (tagCompound == null) {
|
||||
tagCompound = new NBTTagCompound();
|
||||
itemStack.setTagCompound(tagCompound);
|
||||
}
|
||||
|
||||
return tagCompound;
|
||||
}
|
||||
|
||||
|
||||
public double getDurabilityForDisplay(ItemStack stack) {
|
||||
double charge = (PoweredItem.getEnergy(stack) / getMaxPower(stack));
|
||||
return 1 - charge;
|
||||
}
|
||||
|
||||
|
||||
public boolean showDurabilityBar(ItemStack stack) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
public int getRGBDurabilityForDisplay(ItemStack stack) {
|
||||
return PowerSystem.getDisplayPower().colour;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public ICapabilityProvider initCapabilities(ItemStack stack,
|
||||
@Nullable
|
||||
NBTTagCompound nbt) {
|
||||
return new PoweredItemContainerProvider(stack);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -27,17 +27,22 @@ package techreborn.items.battery;
|
|||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.item.IItemPropertyGetter;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.capabilities.ICapabilityProvider;
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
import reborncore.api.power.IEnergyInterfaceItem;
|
||||
import reborncore.api.power.IEnergyItemInfo;
|
||||
import reborncore.common.powerSystem.PowerSystem;
|
||||
import reborncore.common.powerSystem.PoweredItem;
|
||||
import reborncore.common.powerSystem.PoweredItemContainerProvider;
|
||||
import techreborn.items.ItemTR;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
public class ItemBattery extends ItemTR implements IEnergyItemInfo {
|
||||
public class ItemBattery extends ItemTR implements IEnergyItemInfo, IEnergyInterfaceItem {
|
||||
|
||||
String name;
|
||||
int maxEnergy = 0;
|
||||
|
@ -85,4 +90,103 @@ public class ItemBattery extends ItemTR implements IEnergyItemInfo {
|
|||
public double getMaxTransfer(ItemStack stack) {
|
||||
return maxTransfer;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getEnergy(ItemStack stack) {
|
||||
NBTTagCompound tagCompound = getOrCreateNbtData(stack);
|
||||
if (tagCompound.hasKey("charge")) {
|
||||
return tagCompound.getDouble("charge");
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setEnergy(double energy, ItemStack stack) {
|
||||
NBTTagCompound tagCompound = getOrCreateNbtData(stack);
|
||||
tagCompound.setDouble("charge", energy);
|
||||
|
||||
if (this.getEnergy(stack) > getMaxPower(stack)) {
|
||||
this.setEnergy(getMaxPower(stack), stack);
|
||||
} else if (this.getEnergy(stack) < 0) {
|
||||
this.setEnergy(0, stack);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public double addEnergy(double energy, ItemStack stack) {
|
||||
return addEnergy(energy, false, stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double addEnergy(double energy, boolean simulate, ItemStack stack) {
|
||||
double energyReceived = Math.min(getMaxPower(stack) - energy, Math.min(this.getMaxPower(stack), energy));
|
||||
|
||||
if (!simulate) {
|
||||
setEnergy(energy + energyReceived, stack);
|
||||
}
|
||||
return energyReceived;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean canUseEnergy(double input, ItemStack stack) {
|
||||
return input <= getEnergy(stack);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public double useEnergy(double energy, ItemStack stack) {
|
||||
return useEnergy(energy, false, stack);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public double useEnergy(double extract, boolean simulate, ItemStack stack) {
|
||||
double energyExtracted = Math.min(extract, Math.min(this.getMaxTransfer(stack), extract));
|
||||
|
||||
if (!simulate) {
|
||||
setEnergy(getEnergy(stack) - energyExtracted, stack);
|
||||
}
|
||||
return energyExtracted;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean canAddEnergy(double energy, ItemStack stack) {
|
||||
return this.getEnergy(stack) + energy <= getMaxPower(stack);
|
||||
}
|
||||
|
||||
|
||||
public NBTTagCompound getOrCreateNbtData(ItemStack itemStack) {
|
||||
NBTTagCompound tagCompound = itemStack.getTagCompound();
|
||||
if (tagCompound == null) {
|
||||
tagCompound = new NBTTagCompound();
|
||||
itemStack.setTagCompound(tagCompound);
|
||||
}
|
||||
|
||||
return tagCompound;
|
||||
}
|
||||
|
||||
|
||||
public double getDurabilityForDisplay(ItemStack stack) {
|
||||
double charge = (PoweredItem.getEnergy(stack) / getMaxPower(stack));
|
||||
return 1 - charge;
|
||||
}
|
||||
|
||||
|
||||
public boolean showDurabilityBar(ItemStack stack) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
public int getRGBDurabilityForDisplay(ItemStack stack) {
|
||||
return PowerSystem.getDisplayPower().colour;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public ICapabilityProvider initCapabilities(ItemStack stack,
|
||||
@Nullable
|
||||
NBTTagCompound nbt) {
|
||||
return new PoweredItemContainerProvider(stack);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -32,19 +32,24 @@ import net.minecraft.init.Enchantments;
|
|||
import net.minecraft.item.IItemPropertyGetter;
|
||||
import net.minecraft.item.ItemAxe;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.capabilities.ICapabilityProvider;
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
import reborncore.api.power.IEnergyInterfaceItem;
|
||||
import reborncore.api.power.IEnergyItemInfo;
|
||||
import reborncore.common.powerSystem.PowerSystem;
|
||||
import reborncore.common.powerSystem.PoweredItem;
|
||||
import reborncore.common.powerSystem.PoweredItemContainerProvider;
|
||||
import techreborn.client.TechRebornCreativeTab;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.Random;
|
||||
|
||||
public class ItemChainsaw extends ItemAxe implements IEnergyItemInfo {
|
||||
public class ItemChainsaw extends ItemAxe implements IEnergyItemInfo, IEnergyInterfaceItem {
|
||||
|
||||
public int maxCharge = 1;
|
||||
public int cost = 250;
|
||||
|
@ -123,4 +128,103 @@ public class ItemChainsaw extends ItemAxe implements IEnergyItemInfo {
|
|||
return transferLimit;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getEnergy(ItemStack stack) {
|
||||
NBTTagCompound tagCompound = getOrCreateNbtData(stack);
|
||||
if (tagCompound.hasKey("charge")) {
|
||||
return tagCompound.getDouble("charge");
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setEnergy(double energy, ItemStack stack) {
|
||||
NBTTagCompound tagCompound = getOrCreateNbtData(stack);
|
||||
tagCompound.setDouble("charge", energy);
|
||||
|
||||
if (this.getEnergy(stack) > getMaxPower(stack)) {
|
||||
this.setEnergy(getMaxPower(stack), stack);
|
||||
} else if (this.getEnergy(stack) < 0) {
|
||||
this.setEnergy(0, stack);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public double addEnergy(double energy, ItemStack stack) {
|
||||
return addEnergy(energy, false, stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double addEnergy(double energy, boolean simulate, ItemStack stack) {
|
||||
double energyReceived = Math.min(getMaxPower(stack) - energy, Math.min(this.getMaxPower(stack), energy));
|
||||
|
||||
if (!simulate) {
|
||||
setEnergy(energy + energyReceived, stack);
|
||||
}
|
||||
return energyReceived;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean canUseEnergy(double input, ItemStack stack) {
|
||||
return input <= getEnergy(stack);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public double useEnergy(double energy, ItemStack stack) {
|
||||
return useEnergy(energy, false, stack);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public double useEnergy(double extract, boolean simulate, ItemStack stack) {
|
||||
double energyExtracted = Math.min(extract, Math.min(this.getMaxTransfer(stack), extract));
|
||||
|
||||
if (!simulate) {
|
||||
setEnergy(getEnergy(stack) - energyExtracted, stack);
|
||||
}
|
||||
return energyExtracted;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean canAddEnergy(double energy, ItemStack stack) {
|
||||
return this.getEnergy(stack) + energy <= getMaxPower(stack);
|
||||
}
|
||||
|
||||
|
||||
public NBTTagCompound getOrCreateNbtData(ItemStack itemStack) {
|
||||
NBTTagCompound tagCompound = itemStack.getTagCompound();
|
||||
if (tagCompound == null) {
|
||||
tagCompound = new NBTTagCompound();
|
||||
itemStack.setTagCompound(tagCompound);
|
||||
}
|
||||
|
||||
return tagCompound;
|
||||
}
|
||||
|
||||
|
||||
public double getDurabilityForDisplay(ItemStack stack) {
|
||||
double charge = (PoweredItem.getEnergy(stack) / getMaxPower(stack));
|
||||
return 1 - charge;
|
||||
}
|
||||
|
||||
|
||||
public boolean showDurabilityBar(ItemStack stack) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
public int getRGBDurabilityForDisplay(ItemStack stack) {
|
||||
return PowerSystem.getDisplayPower().colour;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public ICapabilityProvider initCapabilities(ItemStack stack,
|
||||
@Nullable
|
||||
NBTTagCompound nbt) {
|
||||
return new PoweredItemContainerProvider(stack);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -29,12 +29,17 @@ import net.minecraft.entity.player.EntityPlayer;
|
|||
import net.minecraft.init.MobEffects;
|
||||
import net.minecraft.inventory.EntityEquipmentSlot;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.NonNullList;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.capabilities.ICapabilityProvider;
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
import reborncore.api.power.IEnergyInterfaceItem;
|
||||
import reborncore.api.power.IEnergyItemInfo;
|
||||
import reborncore.common.powerSystem.PowerSystem;
|
||||
import reborncore.common.powerSystem.PoweredItem;
|
||||
import reborncore.common.powerSystem.PoweredItemContainerProvider;
|
||||
import reborncore.common.registration.RebornRegistry;
|
||||
import reborncore.common.registration.impl.ConfigRegistry;
|
||||
import techreborn.client.TechRebornCreativeTab;
|
||||
|
@ -43,8 +48,10 @@ import techreborn.init.ModItems;
|
|||
import techreborn.items.ItemTR;
|
||||
import techreborn.lib.ModInfo;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
@RebornRegistry(modID = ModInfo.MOD_ID)
|
||||
public class ItemCloakingDevice extends ItemTR implements IEnergyItemInfo {
|
||||
public class ItemCloakingDevice extends ItemTR implements IEnergyItemInfo, IEnergyInterfaceItem {
|
||||
|
||||
@ConfigRegistry(config = "items", category = "cloacking_device", key = "ClockingDeviceEnergyUsage", comment = "Cloacking device energy usesage (Value in EU)")
|
||||
public static int usage = 10;
|
||||
|
@ -118,4 +125,103 @@ public class ItemCloakingDevice extends ItemTR implements IEnergyItemInfo {
|
|||
itemList.add(uncharged);
|
||||
itemList.add(charged);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getEnergy(ItemStack stack) {
|
||||
NBTTagCompound tagCompound = getOrCreateNbtData(stack);
|
||||
if (tagCompound.hasKey("charge")) {
|
||||
return tagCompound.getDouble("charge");
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setEnergy(double energy, ItemStack stack) {
|
||||
NBTTagCompound tagCompound = getOrCreateNbtData(stack);
|
||||
tagCompound.setDouble("charge", energy);
|
||||
|
||||
if (this.getEnergy(stack) > getMaxPower(stack)) {
|
||||
this.setEnergy(getMaxPower(stack), stack);
|
||||
} else if (this.getEnergy(stack) < 0) {
|
||||
this.setEnergy(0, stack);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public double addEnergy(double energy, ItemStack stack) {
|
||||
return addEnergy(energy, false, stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double addEnergy(double energy, boolean simulate, ItemStack stack) {
|
||||
double energyReceived = Math.min(getMaxPower(stack) - energy, Math.min(this.getMaxPower(stack), energy));
|
||||
|
||||
if (!simulate) {
|
||||
setEnergy(energy + energyReceived, stack);
|
||||
}
|
||||
return energyReceived;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean canUseEnergy(double input, ItemStack stack) {
|
||||
return input <= getEnergy(stack);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public double useEnergy(double energy, ItemStack stack) {
|
||||
return useEnergy(energy, false, stack);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public double useEnergy(double extract, boolean simulate, ItemStack stack) {
|
||||
double energyExtracted = Math.min(extract, Math.min(this.getMaxTransfer(stack), extract));
|
||||
|
||||
if (!simulate) {
|
||||
setEnergy(getEnergy(stack) - energyExtracted, stack);
|
||||
}
|
||||
return energyExtracted;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean canAddEnergy(double energy, ItemStack stack) {
|
||||
return this.getEnergy(stack) + energy <= getMaxPower(stack);
|
||||
}
|
||||
|
||||
|
||||
public NBTTagCompound getOrCreateNbtData(ItemStack itemStack) {
|
||||
NBTTagCompound tagCompound = itemStack.getTagCompound();
|
||||
if (tagCompound == null) {
|
||||
tagCompound = new NBTTagCompound();
|
||||
itemStack.setTagCompound(tagCompound);
|
||||
}
|
||||
|
||||
return tagCompound;
|
||||
}
|
||||
|
||||
|
||||
public double getDurabilityForDisplay(ItemStack stack) {
|
||||
double charge = (PoweredItem.getEnergy(stack) / getMaxPower(stack));
|
||||
return 1 - charge;
|
||||
}
|
||||
|
||||
|
||||
public boolean showDurabilityBar(ItemStack stack) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
public int getRGBDurabilityForDisplay(ItemStack stack) {
|
||||
return PowerSystem.getDisplayPower().colour;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public ICapabilityProvider initCapabilities(ItemStack stack,
|
||||
@Nullable
|
||||
NBTTagCompound nbt) {
|
||||
return new PoweredItemContainerProvider(stack);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -31,15 +31,21 @@ import net.minecraft.init.Enchantments;
|
|||
import net.minecraft.init.Items;
|
||||
import net.minecraft.item.ItemPickaxe;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.capabilities.ICapabilityProvider;
|
||||
import reborncore.api.power.IEnergyInterfaceItem;
|
||||
import reborncore.api.power.IEnergyItemInfo;
|
||||
import reborncore.common.powerSystem.PowerSystem;
|
||||
import reborncore.common.powerSystem.PoweredItem;
|
||||
import reborncore.common.powerSystem.PoweredItemContainerProvider;
|
||||
import techreborn.client.TechRebornCreativeTab;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.Random;
|
||||
|
||||
public class ItemDrill extends ItemPickaxe implements IEnergyItemInfo {
|
||||
public class ItemDrill extends ItemPickaxe implements IEnergyItemInfo, IEnergyInterfaceItem {
|
||||
|
||||
public int maxCharge = 1;
|
||||
public int cost = 250;
|
||||
|
@ -110,4 +116,103 @@ public class ItemDrill extends ItemPickaxe implements IEnergyItemInfo {
|
|||
return transferLimit;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getEnergy(ItemStack stack) {
|
||||
NBTTagCompound tagCompound = getOrCreateNbtData(stack);
|
||||
if (tagCompound.hasKey("charge")) {
|
||||
return tagCompound.getDouble("charge");
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setEnergy(double energy, ItemStack stack) {
|
||||
NBTTagCompound tagCompound = getOrCreateNbtData(stack);
|
||||
tagCompound.setDouble("charge", energy);
|
||||
|
||||
if (this.getEnergy(stack) > getMaxPower(stack)) {
|
||||
this.setEnergy(getMaxPower(stack), stack);
|
||||
} else if (this.getEnergy(stack) < 0) {
|
||||
this.setEnergy(0, stack);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public double addEnergy(double energy, ItemStack stack) {
|
||||
return addEnergy(energy, false, stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double addEnergy(double energy, boolean simulate, ItemStack stack) {
|
||||
double energyReceived = Math.min(getMaxPower(stack) - energy, Math.min(this.getMaxPower(stack), energy));
|
||||
|
||||
if (!simulate) {
|
||||
setEnergy(energy + energyReceived, stack);
|
||||
}
|
||||
return energyReceived;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean canUseEnergy(double input, ItemStack stack) {
|
||||
return input <= getEnergy(stack);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public double useEnergy(double energy, ItemStack stack) {
|
||||
return useEnergy(energy, false, stack);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public double useEnergy(double extract, boolean simulate, ItemStack stack) {
|
||||
double energyExtracted = Math.min(extract, Math.min(this.getMaxTransfer(stack), extract));
|
||||
|
||||
if (!simulate) {
|
||||
setEnergy(getEnergy(stack) - energyExtracted, stack);
|
||||
}
|
||||
return energyExtracted;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean canAddEnergy(double energy, ItemStack stack) {
|
||||
return this.getEnergy(stack) + energy <= getMaxPower(stack);
|
||||
}
|
||||
|
||||
|
||||
public NBTTagCompound getOrCreateNbtData(ItemStack itemStack) {
|
||||
NBTTagCompound tagCompound = itemStack.getTagCompound();
|
||||
if (tagCompound == null) {
|
||||
tagCompound = new NBTTagCompound();
|
||||
itemStack.setTagCompound(tagCompound);
|
||||
}
|
||||
|
||||
return tagCompound;
|
||||
}
|
||||
|
||||
|
||||
public double getDurabilityForDisplay(ItemStack stack) {
|
||||
double charge = (PoweredItem.getEnergy(stack) / getMaxPower(stack));
|
||||
return 1 - charge;
|
||||
}
|
||||
|
||||
|
||||
public boolean showDurabilityBar(ItemStack stack) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
public int getRGBDurabilityForDisplay(ItemStack stack) {
|
||||
return PowerSystem.getDisplayPower().colour;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public ICapabilityProvider initCapabilities(ItemStack stack,
|
||||
@Nullable
|
||||
NBTTagCompound nbt) {
|
||||
return new PoweredItemContainerProvider(stack);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -30,25 +30,32 @@ import net.minecraft.block.state.IBlockState;
|
|||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.EnumActionResult;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraft.util.EnumHand;
|
||||
import net.minecraft.util.NonNullList;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.capabilities.ICapabilityProvider;
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
import reborncore.api.power.IEnergyInterfaceItem;
|
||||
import reborncore.api.power.IEnergyItemInfo;
|
||||
import reborncore.common.powerSystem.PowerSystem;
|
||||
import reborncore.common.powerSystem.PoweredItem;
|
||||
import reborncore.common.powerSystem.PoweredItemContainerProvider;
|
||||
import techreborn.client.TechRebornCreativeTab;
|
||||
import techreborn.compat.CompatManager;
|
||||
import techreborn.init.ModItems;
|
||||
import techreborn.items.ItemTR;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
/**
|
||||
* Created by modmuss50 on 05/11/2016.
|
||||
*/
|
||||
public class ItemElectricTreetap extends ItemTR implements IEnergyItemInfo {
|
||||
public class ItemElectricTreetap extends ItemTR implements IEnergyItemInfo, IEnergyInterfaceItem {
|
||||
|
||||
public static final int maxCharge = 5120;
|
||||
public static final int tier = 1;
|
||||
|
@ -107,4 +114,103 @@ public class ItemElectricTreetap extends ItemTR implements IEnergyItemInfo {
|
|||
itemList.add(charged);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getEnergy(ItemStack stack) {
|
||||
NBTTagCompound tagCompound = getOrCreateNbtData(stack);
|
||||
if (tagCompound.hasKey("charge")) {
|
||||
return tagCompound.getDouble("charge");
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setEnergy(double energy, ItemStack stack) {
|
||||
NBTTagCompound tagCompound = getOrCreateNbtData(stack);
|
||||
tagCompound.setDouble("charge", energy);
|
||||
|
||||
if (this.getEnergy(stack) > getMaxPower(stack)) {
|
||||
this.setEnergy(getMaxPower(stack), stack);
|
||||
} else if (this.getEnergy(stack) < 0) {
|
||||
this.setEnergy(0, stack);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public double addEnergy(double energy, ItemStack stack) {
|
||||
return addEnergy(energy, false, stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double addEnergy(double energy, boolean simulate, ItemStack stack) {
|
||||
double energyReceived = Math.min(getMaxPower(stack) - energy, Math.min(this.getMaxPower(stack), energy));
|
||||
|
||||
if (!simulate) {
|
||||
setEnergy(energy + energyReceived, stack);
|
||||
}
|
||||
return energyReceived;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean canUseEnergy(double input, ItemStack stack) {
|
||||
return input <= getEnergy(stack);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public double useEnergy(double energy, ItemStack stack) {
|
||||
return useEnergy(energy, false, stack);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public double useEnergy(double extract, boolean simulate, ItemStack stack) {
|
||||
double energyExtracted = Math.min(extract, Math.min(this.getMaxTransfer(stack), extract));
|
||||
|
||||
if (!simulate) {
|
||||
setEnergy(getEnergy(stack) - energyExtracted, stack);
|
||||
}
|
||||
return energyExtracted;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean canAddEnergy(double energy, ItemStack stack) {
|
||||
return this.getEnergy(stack) + energy <= getMaxPower(stack);
|
||||
}
|
||||
|
||||
|
||||
public NBTTagCompound getOrCreateNbtData(ItemStack itemStack) {
|
||||
NBTTagCompound tagCompound = itemStack.getTagCompound();
|
||||
if (tagCompound == null) {
|
||||
tagCompound = new NBTTagCompound();
|
||||
itemStack.setTagCompound(tagCompound);
|
||||
}
|
||||
|
||||
return tagCompound;
|
||||
}
|
||||
|
||||
|
||||
public double getDurabilityForDisplay(ItemStack stack) {
|
||||
double charge = (PoweredItem.getEnergy(stack) / getMaxPower(stack));
|
||||
return 1 - charge;
|
||||
}
|
||||
|
||||
|
||||
public boolean showDurabilityBar(ItemStack stack) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
public int getRGBDurabilityForDisplay(ItemStack stack) {
|
||||
return PowerSystem.getDisplayPower().colour;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public ICapabilityProvider initCapabilities(ItemStack stack,
|
||||
@Nullable
|
||||
NBTTagCompound nbt) {
|
||||
return new PoweredItemContainerProvider(stack);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -33,19 +33,25 @@ import net.minecraft.init.Blocks;
|
|||
import net.minecraft.init.Enchantments;
|
||||
import net.minecraft.item.ItemPickaxe;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.NonNullList;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.capabilities.ICapabilityProvider;
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
import reborncore.api.power.IEnergyInterfaceItem;
|
||||
import reborncore.api.power.IEnergyItemInfo;
|
||||
import reborncore.common.powerSystem.PowerSystem;
|
||||
import reborncore.common.powerSystem.PoweredItem;
|
||||
import reborncore.common.powerSystem.PoweredItemContainerProvider;
|
||||
import techreborn.client.TechRebornCreativeTab;
|
||||
import techreborn.utils.OreDictUtils;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.Random;
|
||||
|
||||
public class ItemJackhammer extends ItemPickaxe implements IEnergyItemInfo {
|
||||
public class ItemJackhammer extends ItemPickaxe implements IEnergyItemInfo, IEnergyInterfaceItem {
|
||||
|
||||
public int maxCharge = 1;
|
||||
public int cost = 250;
|
||||
|
@ -130,4 +136,103 @@ public class ItemJackhammer extends ItemPickaxe implements IEnergyItemInfo {
|
|||
PoweredItem.setEnergy(getMaxPower(charged), charged);
|
||||
itemList.add(charged);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getEnergy(ItemStack stack) {
|
||||
NBTTagCompound tagCompound = getOrCreateNbtData(stack);
|
||||
if (tagCompound.hasKey("charge")) {
|
||||
return tagCompound.getDouble("charge");
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setEnergy(double energy, ItemStack stack) {
|
||||
NBTTagCompound tagCompound = getOrCreateNbtData(stack);
|
||||
tagCompound.setDouble("charge", energy);
|
||||
|
||||
if (this.getEnergy(stack) > getMaxPower(stack)) {
|
||||
this.setEnergy(getMaxPower(stack), stack);
|
||||
} else if (this.getEnergy(stack) < 0) {
|
||||
this.setEnergy(0, stack);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public double addEnergy(double energy, ItemStack stack) {
|
||||
return addEnergy(energy, false, stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double addEnergy(double energy, boolean simulate, ItemStack stack) {
|
||||
double energyReceived = Math.min(getMaxPower(stack) - energy, Math.min(this.getMaxPower(stack), energy));
|
||||
|
||||
if (!simulate) {
|
||||
setEnergy(energy + energyReceived, stack);
|
||||
}
|
||||
return energyReceived;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean canUseEnergy(double input, ItemStack stack) {
|
||||
return input <= getEnergy(stack);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public double useEnergy(double energy, ItemStack stack) {
|
||||
return useEnergy(energy, false, stack);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public double useEnergy(double extract, boolean simulate, ItemStack stack) {
|
||||
double energyExtracted = Math.min(extract, Math.min(this.getMaxTransfer(stack), extract));
|
||||
|
||||
if (!simulate) {
|
||||
setEnergy(getEnergy(stack) - energyExtracted, stack);
|
||||
}
|
||||
return energyExtracted;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean canAddEnergy(double energy, ItemStack stack) {
|
||||
return this.getEnergy(stack) + energy <= getMaxPower(stack);
|
||||
}
|
||||
|
||||
|
||||
public NBTTagCompound getOrCreateNbtData(ItemStack itemStack) {
|
||||
NBTTagCompound tagCompound = itemStack.getTagCompound();
|
||||
if (tagCompound == null) {
|
||||
tagCompound = new NBTTagCompound();
|
||||
itemStack.setTagCompound(tagCompound);
|
||||
}
|
||||
|
||||
return tagCompound;
|
||||
}
|
||||
|
||||
|
||||
public double getDurabilityForDisplay(ItemStack stack) {
|
||||
double charge = (PoweredItem.getEnergy(stack) / getMaxPower(stack));
|
||||
return 1 - charge;
|
||||
}
|
||||
|
||||
|
||||
public boolean showDurabilityBar(ItemStack stack) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
public int getRGBDurabilityForDisplay(ItemStack stack) {
|
||||
return PowerSystem.getDisplayPower().colour;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public ICapabilityProvider initCapabilities(ItemStack stack,
|
||||
@Nullable
|
||||
NBTTagCompound nbt) {
|
||||
return new PoweredItemContainerProvider(stack);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -42,10 +42,14 @@ import net.minecraft.util.text.TextComponentString;
|
|||
import net.minecraft.util.text.TextFormatting;
|
||||
import net.minecraft.util.text.translation.I18n;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.capabilities.ICapabilityProvider;
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
import reborncore.api.power.IEnergyInterfaceItem;
|
||||
import reborncore.api.power.IEnergyItemInfo;
|
||||
import reborncore.common.powerSystem.PowerSystem;
|
||||
import reborncore.common.powerSystem.PoweredItem;
|
||||
import reborncore.common.powerSystem.PoweredItemContainerProvider;
|
||||
import reborncore.common.util.ChatUtils;
|
||||
import techreborn.client.TechRebornCreativeTab;
|
||||
import techreborn.init.ModItems;
|
||||
|
@ -54,7 +58,7 @@ import techreborn.lib.MessageIDs;
|
|||
import javax.annotation.Nullable;
|
||||
import java.util.List;
|
||||
|
||||
public class ItemNanosaber extends ItemSword implements IEnergyItemInfo {
|
||||
public class ItemNanosaber extends ItemSword implements IEnergyItemInfo, IEnergyInterfaceItem {
|
||||
public int cost = 250;
|
||||
|
||||
public ItemNanosaber() {
|
||||
|
@ -216,4 +220,103 @@ public class ItemNanosaber extends ItemSword implements IEnergyItemInfo {
|
|||
return 512;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getEnergy(ItemStack stack) {
|
||||
NBTTagCompound tagCompound = getOrCreateNbtData(stack);
|
||||
if (tagCompound.hasKey("charge")) {
|
||||
return tagCompound.getDouble("charge");
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setEnergy(double energy, ItemStack stack) {
|
||||
NBTTagCompound tagCompound = getOrCreateNbtData(stack);
|
||||
tagCompound.setDouble("charge", energy);
|
||||
|
||||
if (this.getEnergy(stack) > getMaxPower(stack)) {
|
||||
this.setEnergy(getMaxPower(stack), stack);
|
||||
} else if (this.getEnergy(stack) < 0) {
|
||||
this.setEnergy(0, stack);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public double addEnergy(double energy, ItemStack stack) {
|
||||
return addEnergy(energy, false, stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double addEnergy(double energy, boolean simulate, ItemStack stack) {
|
||||
double energyReceived = Math.min(getMaxPower(stack) - energy, Math.min(this.getMaxPower(stack), energy));
|
||||
|
||||
if (!simulate) {
|
||||
setEnergy(energy + energyReceived, stack);
|
||||
}
|
||||
return energyReceived;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean canUseEnergy(double input, ItemStack stack) {
|
||||
return input <= getEnergy(stack);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public double useEnergy(double energy, ItemStack stack) {
|
||||
return useEnergy(energy, false, stack);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public double useEnergy(double extract, boolean simulate, ItemStack stack) {
|
||||
double energyExtracted = Math.min(extract, Math.min(this.getMaxTransfer(stack), extract));
|
||||
|
||||
if (!simulate) {
|
||||
setEnergy(getEnergy(stack) - energyExtracted, stack);
|
||||
}
|
||||
return energyExtracted;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean canAddEnergy(double energy, ItemStack stack) {
|
||||
return this.getEnergy(stack) + energy <= getMaxPower(stack);
|
||||
}
|
||||
|
||||
|
||||
public NBTTagCompound getOrCreateNbtData(ItemStack itemStack) {
|
||||
NBTTagCompound tagCompound = itemStack.getTagCompound();
|
||||
if (tagCompound == null) {
|
||||
tagCompound = new NBTTagCompound();
|
||||
itemStack.setTagCompound(tagCompound);
|
||||
}
|
||||
|
||||
return tagCompound;
|
||||
}
|
||||
|
||||
|
||||
public double getDurabilityForDisplay(ItemStack stack) {
|
||||
double charge = (PoweredItem.getEnergy(stack) / getMaxPower(stack));
|
||||
return 1 - charge;
|
||||
}
|
||||
|
||||
|
||||
public boolean showDurabilityBar(ItemStack stack) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
public int getRGBDurabilityForDisplay(ItemStack stack) {
|
||||
return PowerSystem.getDisplayPower().colour;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public ICapabilityProvider initCapabilities(ItemStack stack,
|
||||
@Nullable
|
||||
NBTTagCompound nbt) {
|
||||
return new PoweredItemContainerProvider(stack);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -32,22 +32,28 @@ import net.minecraft.entity.player.EntityPlayer;
|
|||
import net.minecraft.init.Items;
|
||||
import net.minecraft.item.ItemPickaxe;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.*;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.text.TextFormatting;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.capabilities.ICapabilityProvider;
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
import reborncore.api.power.IEnergyInterfaceItem;
|
||||
import reborncore.api.power.IEnergyItemInfo;
|
||||
import reborncore.common.powerSystem.PowerSystem;
|
||||
import reborncore.common.powerSystem.PoweredItem;
|
||||
import reborncore.common.powerSystem.PoweredItemContainerProvider;
|
||||
import reborncore.common.util.TorchHelper;
|
||||
import techreborn.client.TechRebornCreativeTab;
|
||||
import techreborn.config.ConfigTechReborn;
|
||||
import techreborn.init.ModItems;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.List;
|
||||
|
||||
public class ItemOmniTool extends ItemPickaxe implements IEnergyItemInfo {
|
||||
public class ItemOmniTool extends ItemPickaxe implements IEnergyItemInfo, IEnergyInterfaceItem {
|
||||
|
||||
public static final int maxCharge = ConfigTechReborn.OmniToolCharge;
|
||||
public int cost = 100;
|
||||
|
@ -154,4 +160,103 @@ public class ItemOmniTool extends ItemPickaxe implements IEnergyItemInfo {
|
|||
public void addInformation(ItemStack stack, World world, List<String> tooltip, ITooltipFlag flag) {
|
||||
tooltip.add(TextFormatting.RED + "WIP Coming Soon");
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getEnergy(ItemStack stack) {
|
||||
NBTTagCompound tagCompound = getOrCreateNbtData(stack);
|
||||
if (tagCompound.hasKey("charge")) {
|
||||
return tagCompound.getDouble("charge");
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setEnergy(double energy, ItemStack stack) {
|
||||
NBTTagCompound tagCompound = getOrCreateNbtData(stack);
|
||||
tagCompound.setDouble("charge", energy);
|
||||
|
||||
if (this.getEnergy(stack) > getMaxPower(stack)) {
|
||||
this.setEnergy(getMaxPower(stack), stack);
|
||||
} else if (this.getEnergy(stack) < 0) {
|
||||
this.setEnergy(0, stack);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public double addEnergy(double energy, ItemStack stack) {
|
||||
return addEnergy(energy, false, stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double addEnergy(double energy, boolean simulate, ItemStack stack) {
|
||||
double energyReceived = Math.min(getMaxPower(stack) - energy, Math.min(this.getMaxPower(stack), energy));
|
||||
|
||||
if (!simulate) {
|
||||
setEnergy(energy + energyReceived, stack);
|
||||
}
|
||||
return energyReceived;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean canUseEnergy(double input, ItemStack stack) {
|
||||
return input <= getEnergy(stack);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public double useEnergy(double energy, ItemStack stack) {
|
||||
return useEnergy(energy, false, stack);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public double useEnergy(double extract, boolean simulate, ItemStack stack) {
|
||||
double energyExtracted = Math.min(extract, Math.min(this.getMaxTransfer(stack), extract));
|
||||
|
||||
if (!simulate) {
|
||||
setEnergy(getEnergy(stack) - energyExtracted, stack);
|
||||
}
|
||||
return energyExtracted;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean canAddEnergy(double energy, ItemStack stack) {
|
||||
return this.getEnergy(stack) + energy <= getMaxPower(stack);
|
||||
}
|
||||
|
||||
|
||||
public NBTTagCompound getOrCreateNbtData(ItemStack itemStack) {
|
||||
NBTTagCompound tagCompound = itemStack.getTagCompound();
|
||||
if (tagCompound == null) {
|
||||
tagCompound = new NBTTagCompound();
|
||||
itemStack.setTagCompound(tagCompound);
|
||||
}
|
||||
|
||||
return tagCompound;
|
||||
}
|
||||
|
||||
|
||||
public double getDurabilityForDisplay(ItemStack stack) {
|
||||
double charge = (PoweredItem.getEnergy(stack) / getMaxPower(stack));
|
||||
return 1 - charge;
|
||||
}
|
||||
|
||||
|
||||
public boolean showDurabilityBar(ItemStack stack) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
public int getRGBDurabilityForDisplay(ItemStack stack) {
|
||||
return PowerSystem.getDisplayPower().colour;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public ICapabilityProvider initCapabilities(ItemStack stack,
|
||||
@Nullable
|
||||
NBTTagCompound nbt) {
|
||||
return new PoweredItemContainerProvider(stack);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -34,13 +34,18 @@ import net.minecraft.init.Enchantments;
|
|||
import net.minecraft.init.Items;
|
||||
import net.minecraft.item.ItemPickaxe;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.NonNullList;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.capabilities.ICapabilityProvider;
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
import reborncore.api.power.IEnergyInterfaceItem;
|
||||
import reborncore.api.power.IEnergyItemInfo;
|
||||
import reborncore.common.powerSystem.PowerSystem;
|
||||
import reborncore.common.powerSystem.PoweredItem;
|
||||
import reborncore.common.powerSystem.PoweredItemContainerProvider;
|
||||
import techreborn.client.TechRebornCreativeTab;
|
||||
import techreborn.config.ConfigTechReborn;
|
||||
import techreborn.init.ModItems;
|
||||
|
@ -48,7 +53,7 @@ import techreborn.init.ModItems;
|
|||
import javax.annotation.Nullable;
|
||||
import java.util.Random;
|
||||
|
||||
public class ItemRockCutter extends ItemPickaxe implements IEnergyItemInfo {
|
||||
public class ItemRockCutter extends ItemPickaxe implements IEnergyItemInfo, IEnergyInterfaceItem {
|
||||
|
||||
public static final int maxCharge = ConfigTechReborn.RockCutterCharge;
|
||||
public int cost = 500;
|
||||
|
@ -147,4 +152,103 @@ public class ItemRockCutter extends ItemPickaxe implements IEnergyItemInfo {
|
|||
itemList.add(charged);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getEnergy(ItemStack stack) {
|
||||
NBTTagCompound tagCompound = getOrCreateNbtData(stack);
|
||||
if (tagCompound.hasKey("charge")) {
|
||||
return tagCompound.getDouble("charge");
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setEnergy(double energy, ItemStack stack) {
|
||||
NBTTagCompound tagCompound = getOrCreateNbtData(stack);
|
||||
tagCompound.setDouble("charge", energy);
|
||||
|
||||
if (this.getEnergy(stack) > getMaxPower(stack)) {
|
||||
this.setEnergy(getMaxPower(stack), stack);
|
||||
} else if (this.getEnergy(stack) < 0) {
|
||||
this.setEnergy(0, stack);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public double addEnergy(double energy, ItemStack stack) {
|
||||
return addEnergy(energy, false, stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double addEnergy(double energy, boolean simulate, ItemStack stack) {
|
||||
double energyReceived = Math.min(getMaxPower(stack) - energy, Math.min(this.getMaxPower(stack), energy));
|
||||
|
||||
if (!simulate) {
|
||||
setEnergy(energy + energyReceived, stack);
|
||||
}
|
||||
return energyReceived;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean canUseEnergy(double input, ItemStack stack) {
|
||||
return input <= getEnergy(stack);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public double useEnergy(double energy, ItemStack stack) {
|
||||
return useEnergy(energy, false, stack);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public double useEnergy(double extract, boolean simulate, ItemStack stack) {
|
||||
double energyExtracted = Math.min(extract, Math.min(this.getMaxTransfer(stack), extract));
|
||||
|
||||
if (!simulate) {
|
||||
setEnergy(getEnergy(stack) - energyExtracted, stack);
|
||||
}
|
||||
return energyExtracted;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean canAddEnergy(double energy, ItemStack stack) {
|
||||
return this.getEnergy(stack) + energy <= getMaxPower(stack);
|
||||
}
|
||||
|
||||
|
||||
public NBTTagCompound getOrCreateNbtData(ItemStack itemStack) {
|
||||
NBTTagCompound tagCompound = itemStack.getTagCompound();
|
||||
if (tagCompound == null) {
|
||||
tagCompound = new NBTTagCompound();
|
||||
itemStack.setTagCompound(tagCompound);
|
||||
}
|
||||
|
||||
return tagCompound;
|
||||
}
|
||||
|
||||
|
||||
public double getDurabilityForDisplay(ItemStack stack) {
|
||||
double charge = (PoweredItem.getEnergy(stack) / getMaxPower(stack));
|
||||
return 1 - charge;
|
||||
}
|
||||
|
||||
|
||||
public boolean showDurabilityBar(ItemStack stack) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
public int getRGBDurabilityForDisplay(ItemStack stack) {
|
||||
return PowerSystem.getDisplayPower().colour;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public ICapabilityProvider initCapabilities(ItemStack stack,
|
||||
@Nullable
|
||||
NBTTagCompound nbt) {
|
||||
return new PoweredItemContainerProvider(stack);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue