Energy storages item charging fixes, transformers fixes, electric items fixes.

This commit is contained in:
Dragon2488 2016-07-25 15:10:55 +07:00
parent b42b5274b5
commit be4f10b975
63 changed files with 2154 additions and 2123 deletions

View file

@ -1,6 +1,9 @@
package techreborn.items.armor;
import cofh.api.energy.IEnergyContainerItem;
import ic2.api.item.IElectricItem;
import me.modmuss50.jsonDestroyer.api.ITexturedItem;
import net.darkhax.tesla.capability.TeslaCapabilities;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
@ -13,128 +16,137 @@ import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import reborncore.RebornCore;
import reborncore.api.power.EnumPowerTier;
import reborncore.api.power.IEnergyInterfaceItem;
import reborncore.api.power.IEnergyInterfaceTile;
import reborncore.api.power.IEnergyItemInfo;
import reborncore.common.powerSystem.PoweredItem;
import techreborn.client.TechRebornCreativeTab;
import techreborn.config.ConfigTechReborn;
import techreborn.lib.ModInfo;
import techreborn.power.EnergyItem;
import java.util.List;
public class ItemLapotronPack extends ItemArmor implements IEnergyItemInfo, ITexturedItem
{
public class ItemLapotronPack extends ItemArmor implements IEnergyItemInfo, ITexturedItem {
public static final int maxCharge = ConfigTechReborn.LapotronPackCharge;
public static final int tier = ConfigTechReborn.LapotronPackTier;
public double transferLimit = 100000;
public static final int MAX_CHARGE = ConfigTechReborn.LapotronPackCharge;
public static final int TIER = ConfigTechReborn.LapotronPackTier;
public static final double TRANSFER_LIMIT = 100000;
public ItemLapotronPack()
{
super(ItemArmor.ArmorMaterial.DIAMOND, 7, EntityEquipmentSlot.CHEST);
setCreativeTab(TechRebornCreativeTab.instance);
setUnlocalizedName("techreborn.lapotronpack");
setMaxStackSize(1);
RebornCore.jsonDestroyer.registerObject(this);
}
public ItemLapotronPack() {
super(ItemArmor.ArmorMaterial.DIAMOND, 7, EntityEquipmentSlot.CHEST);
setCreativeTab(TechRebornCreativeTab.instance);
setUnlocalizedName("techreborn.lapotronpack");
setMaxStackSize(1);
RebornCore.jsonDestroyer.registerObject(this);
}
@Override
@SideOnly(Side.CLIENT)
public String getArmorTexture(ItemStack stack, Entity entity, EntityEquipmentSlot slot, String type)
{
return "techreborn:" + "textures/models/lapotronpack.png";
}
@Override
@SideOnly(Side.CLIENT)
public String getArmorTexture(ItemStack stack, Entity entity, EntityEquipmentSlot slot, String type) {
return "techreborn:" + "textures/models/lapotronpack.png";
}
@Override
public double getMaxPower(ItemStack stack)
{
return maxCharge;
}
@Override
public double getMaxPower(ItemStack stack) {
return MAX_CHARGE;
}
@Override
public boolean canAcceptEnergy(ItemStack stack)
{
return true;
}
@Override
public double getMaxTransfer(ItemStack stack) {
return TRANSFER_LIMIT;
}
@Override
public boolean canProvideEnergy(ItemStack itemStack)
{
return true;
}
@Override
public int getStackTier(ItemStack stack) {
return TIER;
}
@Override
public double getMaxTransfer(ItemStack stack)
{
return transferLimit;
}
@Override
public boolean canAcceptEnergy(ItemStack stack) {
return true;
}
@Override
public int getStackTier(ItemStack stack)
{
return tier;
}
@Override
public boolean canProvideEnergy(ItemStack itemStack) {
return true;
}
@SuppressWarnings({ "rawtypes", "unchecked" })
@SideOnly(Side.CLIENT)
public void getSubItems(Item item, CreativeTabs par2CreativeTabs, List itemList)
{
ItemStack itemStack = new ItemStack(this, 1);
itemList.add(itemStack);
@SideOnly(Side.CLIENT)
public void getSubItems(Item item, CreativeTabs tab, List<ItemStack> itemList) {
ItemStack itemStack = new ItemStack(this, 1);
itemList.add(itemStack);
ItemStack charged = new ItemStack(this, 1);
PoweredItem.setEnergy(getMaxPower(charged), charged);
itemList.add(charged);
}
ItemStack charged = new ItemStack(this, 1);
EnergyItem.setEnergy(getMaxPower(charged), charged);
itemList.add(charged);
}
@Override
public double getDurabilityForDisplay(ItemStack stack)
{
double charge = (PoweredItem.getEnergy(stack) / getMaxPower(stack));
return 1 - charge;
@Override
public double getDurabilityForDisplay(ItemStack stack) {
double charge = (EnergyItem.getEnergy(stack) / getMaxPower(stack));
return 1 - charge;
}
@Override public void onArmorTick(World world, EntityPlayer player, ItemStack itemStack)
{
for(int i = 0; i < player.inventory.getSizeInventory(); i++){
if(player.inventory.getStackInSlot(i) != null){
ItemStack item = player.inventory.getStackInSlot(i);
if(item.getItem() instanceof IEnergyItemInfo){
IEnergyItemInfo energyItemInfo = (IEnergyItemInfo) item.getItem();
if(energyItemInfo.getMaxPower(item) != PoweredItem.getEnergy(item)){
if(PoweredItem.canUseEnergy(energyItemInfo.getMaxPower(item), itemStack)){
PoweredItem.useEnergy(energyItemInfo.getMaxTransfer(item), itemStack);
PoweredItem.setEnergy(PoweredItem.getEnergy(item) + energyItemInfo.getMaxTransfer(item), item);
}
}
}
}
}
}
}
@Override
public boolean showDurabilityBar(ItemStack stack)
{
return true;
}
@Override
public void onArmorTick(World world, EntityPlayer player, ItemStack itemStack) {
for (int i = 0; i < player.inventory.getSizeInventory(); i++) {
if (player.inventory.getStackInSlot(i) != null) {
ItemStack itemStack1 = player.inventory.getStackInSlot(i);
if (itemStack1 != null) {
Item item1 = itemStack1.getItem();
if (item1 instanceof IEnergyInterfaceItem ||
item1 instanceof IEnergyContainerItem ||
item1 instanceof IElectricItem ||
itemStack1.hasCapability(TeslaCapabilities.CAPABILITY_CONSUMER, null)) {
EnergyItem.charge(itemStack1, new IEnergyInterfaceTile() {
@Override
public double getEnergy() {
return EnergyItem.getEnergy(itemStack);
}
@Override
public String getTextureName(int damage)
{
return "techreborn:items/tool/lapotronicPack";
}
@Override
public void setEnergy(double energy) {
EnergyItem.setEnergy(energy, itemStack);
}
@Override
public int getMaxMeta()
{
return 1;
}
@Override
public double getMaxPower() {
return MAX_CHARGE;
}
@Override
public EnumPowerTier getTier() {
return EnumPowerTier.EXTREME;
}
});
}
}
}
}
}
@Override
public boolean showDurabilityBar(ItemStack stack) {
return true;
}
@Override
public String getTextureName(int damage) {
return "techreborn:items/tool/lapotronicPack";
}
@Override
public int getMaxMeta() {
return 1;
}
@Override
@SideOnly(Side.CLIENT)
public ModelResourceLocation getModel(ItemStack stack, EntityPlayer player, int useRemaining)
{
return new ModelResourceLocation(ModInfo.MOD_ID + ":" + getUnlocalizedName(stack).substring(5), "inventory");
}
@Override
@SideOnly(Side.CLIENT)
public ModelResourceLocation getModel(ItemStack stack, EntityPlayer player, int useRemaining) {
return new ModelResourceLocation(ModInfo.MOD_ID + ":" + getUnlocalizedName(stack).substring(5), "inventory");
}
}

View file

@ -1,6 +1,9 @@
package techreborn.items.armor;
import cofh.api.energy.IEnergyContainerItem;
import ic2.api.item.IElectricItem;
import me.modmuss50.jsonDestroyer.api.ITexturedItem;
import net.darkhax.tesla.capability.TeslaCapabilities;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
@ -13,127 +16,135 @@ import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import reborncore.RebornCore;
import reborncore.api.power.EnumPowerTier;
import reborncore.api.power.IEnergyInterfaceItem;
import reborncore.api.power.IEnergyInterfaceTile;
import reborncore.api.power.IEnergyItemInfo;
import reborncore.common.powerSystem.PoweredItem;
import techreborn.client.TechRebornCreativeTab;
import techreborn.config.ConfigTechReborn;
import techreborn.lib.ModInfo;
import techreborn.power.EnergyItem;
import java.util.List;
public class ItemLithiumBatpack extends ItemArmor implements IEnergyItemInfo, ITexturedItem
{
public class ItemLithiumBatpack extends ItemArmor implements IEnergyItemInfo, ITexturedItem {
public static final int maxCharge = ConfigTechReborn.LithiumBatpackCharge;
public static final int tier = ConfigTechReborn.LithiumBatpackTier;
public double transferLimit = 10000;
public static final int maxCharge = ConfigTechReborn.LithiumBatpackCharge;
public static final int tier = ConfigTechReborn.LithiumBatpackTier;
public double transferLimit = 10000;
public ItemLithiumBatpack()
{
super(ItemArmor.ArmorMaterial.DIAMOND, 7, EntityEquipmentSlot.CHEST);
setMaxStackSize(1);
setUnlocalizedName("techreborn.lithiumbatpack");
setCreativeTab(TechRebornCreativeTab.instance);
RebornCore.jsonDestroyer.registerObject(this);
}
@Override public void onArmorTick(World world, EntityPlayer player, ItemStack itemStack)
{
for(int i = 0; i < player.inventory.getSizeInventory(); i++){
if(player.inventory.getStackInSlot(i) != null){
ItemStack item = player.inventory.getStackInSlot(i);
if(item.getItem() instanceof IEnergyItemInfo){
IEnergyItemInfo energyItemInfo = (IEnergyItemInfo) item.getItem();
if(energyItemInfo.getMaxPower(item) != PoweredItem.getEnergy(item)){
if(PoweredItem.canUseEnergy(energyItemInfo.getMaxPower(item), itemStack)){
PoweredItem.useEnergy(energyItemInfo.getMaxTransfer(item), itemStack);
PoweredItem.setEnergy(PoweredItem.getEnergy(item) + energyItemInfo.getMaxTransfer(item), item);
}
}
}
}
}
}
@Override
@SideOnly(Side.CLIENT)
public String getArmorTexture(ItemStack stack, Entity entity, EntityEquipmentSlot slot, String type)
{
return "techreborn:" + "textures/models/lithiumbatpack.png";
}
public ItemLithiumBatpack() {
super(ItemArmor.ArmorMaterial.DIAMOND, 7, EntityEquipmentSlot.CHEST);
setMaxStackSize(1);
setUnlocalizedName("techreborn.lithiumbatpack");
setCreativeTab(TechRebornCreativeTab.instance);
RebornCore.jsonDestroyer.registerObject(this);
}
@Override
public double getMaxPower(ItemStack stack)
{
return maxCharge;
}
@Override
public void onArmorTick(World world, EntityPlayer player, ItemStack itemStack) {
for (int i = 0; i < player.inventory.getSizeInventory(); i++) {
if (player.inventory.getStackInSlot(i) != null) {
ItemStack itemStack1 = player.inventory.getStackInSlot(i);
Item item1 = itemStack1.getItem();
if (item1 instanceof IEnergyInterfaceItem ||
item1 instanceof IEnergyContainerItem ||
item1 instanceof IElectricItem ||
itemStack1.hasCapability(TeslaCapabilities.CAPABILITY_CONSUMER, null)) {
EnergyItem.charge(itemStack1, new IEnergyInterfaceTile() {
@Override
public double getEnergy() {
return EnergyItem.getEnergy(itemStack);
}
@Override
public boolean canAcceptEnergy(ItemStack stack)
{
return true;
}
@Override
public void setEnergy(double energy) {
EnergyItem.setEnergy(energy, itemStack);
}
@Override
public boolean canProvideEnergy(ItemStack stack)
{
return true;
}
@Override
public double getMaxPower() {
return maxCharge;
}
@Override
public double getMaxTransfer(ItemStack stack)
{
return transferLimit;
}
@Override
public EnumPowerTier getTier() {
return EnumPowerTier.MEDIUM;
}
});
}
}
}
}
@Override
public int getStackTier(ItemStack stack)
{
return tier;
}
@Override
@SideOnly(Side.CLIENT)
public String getArmorTexture(ItemStack stack, Entity entity, EntityEquipmentSlot slot, String type) {
return "techreborn:" + "textures/models/lithiumbatpack.png";
}
@SuppressWarnings({ "rawtypes", "unchecked" })
@SideOnly(Side.CLIENT)
public void getSubItems(Item item, CreativeTabs par2CreativeTabs, List itemList)
{
ItemStack itemStack = new ItemStack(this, 1);
itemList.add(itemStack);
@Override
public double getMaxPower(ItemStack stack) {
return maxCharge;
}
ItemStack charged = new ItemStack(this, 1);
PoweredItem.setEnergy(getMaxPower(charged), charged);
itemList.add(charged);
}
@Override
public boolean canAcceptEnergy(ItemStack stack) {
return true;
}
@Override
public double getDurabilityForDisplay(ItemStack stack)
{
double charge = (PoweredItem.getEnergy(stack) / getMaxPower(stack));
return 1 - charge;
@Override
public boolean canProvideEnergy(ItemStack stack) {
return true;
}
}
@Override
public double getMaxTransfer(ItemStack stack) {
return transferLimit;
}
@Override
public boolean showDurabilityBar(ItemStack stack)
{
return true;
}
@Override
public int getStackTier(ItemStack stack) {
return tier;
}
@Override
public String getTextureName(int damage)
{
return "techreborn:items/tool/lithiumBatpack";
}
@SuppressWarnings({"rawtypes", "unchecked"})
@SideOnly(Side.CLIENT)
public void getSubItems(Item item, CreativeTabs par2CreativeTabs, List itemList) {
ItemStack itemStack = new ItemStack(this, 1);
itemList.add(itemStack);
@Override
public int getMaxMeta()
{
return 1;
}
ItemStack charged = new ItemStack(this, 1);
EnergyItem.setEnergy(getMaxPower(charged), charged);
itemList.add(charged);
}
@Override
@SideOnly(Side.CLIENT)
public ModelResourceLocation getModel(ItemStack stack, EntityPlayer player, int useRemaining)
{
return new ModelResourceLocation(ModInfo.MOD_ID + ":" + getUnlocalizedName(stack).substring(5), "inventory");
}
@Override
public double getDurabilityForDisplay(ItemStack stack) {
double charge = (EnergyItem.getEnergy(stack) / getMaxPower(stack));
return 1 - charge;
}
@Override
public boolean showDurabilityBar(ItemStack stack) {
return true;
}
@Override
public String getTextureName(int damage) {
return "techreborn:items/tool/lithiumBatpack";
}
@Override
public int getMaxMeta() {
return 1;
}
@Override
@SideOnly(Side.CLIENT)
public ModelResourceLocation getModel(ItemStack stack, EntityPlayer player, int useRemaining) {
return new ModelResourceLocation(ModInfo.MOD_ID + ":" + getUnlocalizedName(stack).substring(5), "inventory");
}
}

View file

@ -16,51 +16,52 @@ import techreborn.lib.ModInfo;
*/
public class ItemTRArmour extends ItemArmor implements ITexturedItem {
private ArmorMaterial material = ArmorMaterial.LEATHER;
private EntityEquipmentSlot slot = EntityEquipmentSlot.HEAD;
private ArmorMaterial material = ArmorMaterial.LEATHER;
private EntityEquipmentSlot slot = EntityEquipmentSlot.HEAD;
public ItemTRArmour(ArmorMaterial material, EntityEquipmentSlot slot) {
super(material, material.getDamageReductionAmount(slot), slot);
if (slot == EntityEquipmentSlot.HEAD)
setUnlocalizedName(material.name().toLowerCase()+"Helmet");
if (slot == EntityEquipmentSlot.CHEST)
setUnlocalizedName(material.name().toLowerCase()+"Chestplate");
if (slot == EntityEquipmentSlot.LEGS)
setUnlocalizedName(material.name().toLowerCase()+"Leggings");
if (slot == EntityEquipmentSlot.FEET)
setUnlocalizedName(material.name().toLowerCase()+"Boots");
setCreativeTab(TechRebornCreativeTabMisc.instance);
RebornCore.jsonDestroyer.registerObject(this);
this.material = material;
this.slot = slot;
}
public ItemTRArmour(ArmorMaterial material, EntityEquipmentSlot slot) {
super(material, material.getDamageReductionAmount(slot), slot);
if (slot == EntityEquipmentSlot.HEAD)
setUnlocalizedName(material.name().toLowerCase() + "Helmet");
if (slot == EntityEquipmentSlot.CHEST)
setUnlocalizedName(material.name().toLowerCase() + "Chestplate");
if (slot == EntityEquipmentSlot.LEGS)
setUnlocalizedName(material.name().toLowerCase() + "Leggings");
if (slot == EntityEquipmentSlot.FEET)
setUnlocalizedName(material.name().toLowerCase() + "Boots");
setCreativeTab(TechRebornCreativeTabMisc.instance);
RebornCore.jsonDestroyer.registerObject(this);
this.material = material;
this.slot = slot;
}
@Override
public String getTextureName(int damage) {
if (slot == EntityEquipmentSlot.HEAD)
return "techreborn:items/tool/" + material.name().toLowerCase() + "_helmet";
if (slot == EntityEquipmentSlot.CHEST)
return "techreborn:items/tool/" + material.name().toLowerCase() + "_chestplate";
if (slot == EntityEquipmentSlot.LEGS)
return "techreborn:items/tool/" + material.name().toLowerCase() + "_leggings";
if (slot == EntityEquipmentSlot.FEET)
return "techreborn:items/tool/" + material.name().toLowerCase() + "_boots";
return "techreborn:items/tool/" + material.name().toLowerCase() + "_error";
}
@Override
public String getTextureName(int damage) {
if (slot == EntityEquipmentSlot.HEAD)
return "techreborn:items/tool/" + material.name().toLowerCase() + "_helmet";
if (slot == EntityEquipmentSlot.CHEST)
return "techreborn:items/tool/" + material.name().toLowerCase() + "_chestplate";
if (slot == EntityEquipmentSlot.LEGS)
return "techreborn:items/tool/" + material.name().toLowerCase() + "_leggings";
if (slot == EntityEquipmentSlot.FEET)
return "techreborn:items/tool/" + material.name().toLowerCase() + "_boots";
return "techreborn:items/tool/" + material.name().toLowerCase() + "_error";
}
@Override
public int getMaxMeta() {
return 1;
}
@Override
public int getMaxMeta() {
return 1;
}
@Override
@SideOnly(Side.CLIENT)
public ModelResourceLocation getModel(ItemStack stack, EntityPlayer player, int useRemaining) {
return new ModelResourceLocation(ModInfo.MOD_ID + ":" + getUnlocalizedName(stack).substring(5), "inventory");
}
@Override
@SideOnly(Side.CLIENT)
public ModelResourceLocation getModel(ItemStack stack, EntityPlayer player, int useRemaining) {
return new ModelResourceLocation(ModInfo.MOD_ID + ":" + getUnlocalizedName(stack).substring(5), "inventory");
}
@SideOnly(Side.CLIENT)
public boolean isFull3D() {
return true;
}
@SideOnly(Side.CLIENT)
public boolean isFull3D() {
return true;
}
}