Fixed charging \ discharging items items. Closes #1547

This commit is contained in:
drcrazy 2018-06-20 18:27:25 +03:00
parent ca9a2c9b38
commit 30302e241b
16 changed files with 37 additions and 61 deletions

View file

@ -33,6 +33,7 @@ import reborncore.client.multiblock.Multiblock;
import reborncore.client.multiblock.MultiblockRenderEvent; import reborncore.client.multiblock.MultiblockRenderEvent;
import reborncore.client.multiblock.MultiblockSet; import reborncore.client.multiblock.MultiblockSet;
import reborncore.common.network.NetworkManager; import reborncore.common.network.NetworkManager;
import reborncore.common.powerSystem.PowerSystem;
import reborncore.common.util.Torus; import reborncore.common.util.Torus;
import techreborn.client.gui.widget.GuiButtonHologram; import techreborn.client.gui.widget.GuiButtonHologram;
import techreborn.client.gui.widget.GuiButtonUpDown; import techreborn.client.gui.widget.GuiButtonUpDown;
@ -85,7 +86,7 @@ public class GuiFusionReactor extends GuiBase {
builder.drawHologramButton(this, 6, 4, mouseX, mouseY, layer); builder.drawHologramButton(this, 6, 4, mouseX, mouseY, layer);
drawCentredString(tile.getStateString(), 20, Color.BLUE.darker().getRGB(), layer); drawCentredString(tile.getStateString(), 20, Color.BLUE.darker().getRGB(), layer);
if(tile.state == 2){ if(tile.state == 2){
drawCentredString( tile.getLocaliszedPowerFormatted((int) tile.getPowerChange()) + "/t", 30, Color.GREEN.darker().getRGB(), layer); drawCentredString( PowerSystem.getLocaliszedPowerFormatted((int) tile.getPowerChange()) + "/t", 30, Color.GREEN.darker().getRGB(), layer);
} }
} else { } else {
builder.drawMultiblockMissingBar(this, layer); builder.drawMultiblockMissingBar(this, layer);

View file

@ -56,12 +56,11 @@ public class ItemAdvancedChainsaw extends ItemChainsaw {
return; return;
} }
ItemStack stack = new ItemStack(ModItems.ADVANCED_CHAINSAW); ItemStack stack = new ItemStack(ModItems.ADVANCED_CHAINSAW);
ItemStack uncharged = stack.copy();
ItemStack charged = stack.copy(); ItemStack charged = stack.copy();
ForgePowerItemManager capEnergy = (ForgePowerItemManager) charged.getCapability(CapabilityEnergy.ENERGY, null); ForgePowerItemManager capEnergy = (ForgePowerItemManager) charged.getCapability(CapabilityEnergy.ENERGY, null);
capEnergy.setEnergyStored(capEnergy.getMaxEnergyStored()); capEnergy.setEnergyStored(capEnergy.getMaxEnergyStored());
itemList.add(uncharged); itemList.add(stack);
itemList.add(charged); itemList.add(charged);
} }

View file

@ -151,12 +151,11 @@ public class ItemAdvancedDrill extends ItemDrill {
return; return;
} }
ItemStack stack = new ItemStack(ModItems.ADVANCED_DRILL); ItemStack stack = new ItemStack(ModItems.ADVANCED_DRILL);
ItemStack uncharged = stack.copy();
ItemStack charged = stack.copy(); ItemStack charged = stack.copy();
ForgePowerItemManager capEnergy = (ForgePowerItemManager) charged.getCapability(CapabilityEnergy.ENERGY, null); ForgePowerItemManager capEnergy = (ForgePowerItemManager) charged.getCapability(CapabilityEnergy.ENERGY, null);
capEnergy.setEnergyStored(capEnergy.getMaxEnergyStored()); capEnergy.setEnergyStored(capEnergy.getMaxEnergyStored());
itemList.add(uncharged); itemList.add(stack);
itemList.add(charged); itemList.add(charged);
} }
} }

View file

@ -50,12 +50,11 @@ public class ItemAdvancedJackhammer extends ItemJackhammer {
return; return;
} }
ItemStack stack = new ItemStack(ModItems.ADVANCED_JACKHAMMER); ItemStack stack = new ItemStack(ModItems.ADVANCED_JACKHAMMER);
ItemStack uncharged = stack.copy();
ItemStack charged = stack.copy(); ItemStack charged = stack.copy();
ForgePowerItemManager capEnergy = (ForgePowerItemManager) charged.getCapability(CapabilityEnergy.ENERGY, null); ForgePowerItemManager capEnergy = (ForgePowerItemManager) charged.getCapability(CapabilityEnergy.ENERGY, null);
capEnergy.setEnergyStored(capEnergy.getMaxEnergyStored()); capEnergy.setEnergyStored(capEnergy.getMaxEnergyStored());
itemList.add(uncharged); itemList.add(stack);
itemList.add(charged); itemList.add(charged);
} }
} }

View file

@ -57,7 +57,7 @@ import javax.annotation.Nullable;
@RebornRegistry(modID = ModInfo.MOD_ID) @RebornRegistry(modID = ModInfo.MOD_ID)
public class ItemCloakingDevice extends ItemTRArmour implements IEnergyItemInfo { public class ItemCloakingDevice extends ItemTRArmour implements IEnergyItemInfo {
@ConfigRegistry(config = "items", category = "cloacking_device", key = "ClockingDeviceEnergyUsage", comment = "Cloacking device energy usesage (Value in EU)") @ConfigRegistry(config = "items", category = "cloacking_device", key = "ClockingDeviceEnergyUsage", comment = "Cloacking device energy usesage (Value in FE)")
public static int usage = 10; public static int usage = 10;
public static int MaxCharge = ConfigTechReborn.CloakingDeviceCharge; public static int MaxCharge = ConfigTechReborn.CloakingDeviceCharge;

View file

@ -39,8 +39,7 @@ import techreborn.init.ModItems;
public class ItemDiamondChainsaw extends ItemChainsaw { public class ItemDiamondChainsaw extends ItemChainsaw {
public ItemDiamondChainsaw() { public ItemDiamondChainsaw() {
super(ToolMaterial.DIAMOND, "techreborn.diamondChainsaw", ConfigTechReborn.DiamondChainsawCharge, super(ToolMaterial.DIAMOND, "techreborn.diamondChainsaw", ConfigTechReborn.DiamondChainsawCharge, 1.0F);
1.0F);
this.cost = 250; this.cost = 250;
} }
@ -51,12 +50,11 @@ public class ItemDiamondChainsaw extends ItemChainsaw {
return; return;
} }
ItemStack stack = new ItemStack(ModItems.DIAMOND_CHAINSAW); ItemStack stack = new ItemStack(ModItems.DIAMOND_CHAINSAW);
ItemStack uncharged = stack.copy();
ItemStack charged = stack.copy(); ItemStack charged = stack.copy();
ForgePowerItemManager capEnergy = (ForgePowerItemManager) charged.getCapability(CapabilityEnergy.ENERGY, null); ForgePowerItemManager capEnergy = (ForgePowerItemManager) charged.getCapability(CapabilityEnergy.ENERGY, null);
capEnergy.setEnergyStored(capEnergy.getMaxEnergyStored()); capEnergy.setEnergyStored(capEnergy.getMaxEnergyStored());
itemList.add(uncharged); itemList.add(stack);
itemList.add(charged); itemList.add(charged);
} }

View file

@ -39,8 +39,7 @@ import techreborn.init.ModItems;
public class ItemDiamondDrill extends ItemDrill { public class ItemDiamondDrill extends ItemDrill {
public ItemDiamondDrill() { public ItemDiamondDrill() {
super(ToolMaterial.DIAMOND, "techreborn.diamondDrill", ConfigTechReborn.DiamondDrillCharge, super(ToolMaterial.DIAMOND, "techreborn.diamondDrill", ConfigTechReborn.DiamondDrillCharge, 0.5F, 15F);
0.5F, 15F);
this.cost = 250; this.cost = 250;
} }
@ -51,12 +50,11 @@ public class ItemDiamondDrill extends ItemDrill {
return; return;
} }
ItemStack stack = new ItemStack(ModItems.DIAMOND_DRILL); ItemStack stack = new ItemStack(ModItems.DIAMOND_DRILL);
ItemStack uncharged = stack.copy();
ItemStack charged = stack.copy(); ItemStack charged = stack.copy();
ForgePowerItemManager capEnergy = (ForgePowerItemManager) charged.getCapability(CapabilityEnergy.ENERGY, null); ForgePowerItemManager capEnergy = (ForgePowerItemManager) charged.getCapability(CapabilityEnergy.ENERGY, null);
capEnergy.setEnergyStored(capEnergy.getMaxEnergyStored()); capEnergy.setEnergyStored(capEnergy.getMaxEnergyStored());
itemList.add(uncharged); itemList.add(stack);
itemList.add(charged); itemList.add(charged);
} }

View file

@ -49,12 +49,11 @@ public class ItemDiamondJackhammer extends ItemJackhammer {
return; return;
} }
ItemStack stack = new ItemStack(ModItems.DIAMOND_JACKHAMMER); ItemStack stack = new ItemStack(ModItems.DIAMOND_JACKHAMMER);
ItemStack uncharged = stack.copy();
ItemStack charged = stack.copy(); ItemStack charged = stack.copy();
ForgePowerItemManager capEnergy = (ForgePowerItemManager) charged.getCapability(CapabilityEnergy.ENERGY, null); ForgePowerItemManager capEnergy = (ForgePowerItemManager) charged.getCapability(CapabilityEnergy.ENERGY, null);
capEnergy.setEnergyStored(capEnergy.getMaxEnergyStored()); capEnergy.setEnergyStored(capEnergy.getMaxEnergyStored());
itemList.add(uncharged); itemList.add(stack);
itemList.add(charged); itemList.add(charged);
} }
} }

View file

@ -59,7 +59,7 @@ import javax.annotation.Nullable;
*/ */
public class ItemElectricTreetap extends ItemTR implements IEnergyItemInfo { public class ItemElectricTreetap extends ItemTR implements IEnergyItemInfo {
public static final int maxCharge = 10000; public static final int maxCharge = 10_000;
public static final int tier = 1; public static final int tier = 1;
public int cost = 20; public int cost = 20;

View file

@ -95,12 +95,7 @@ public class ItemRockCutter extends ItemPickaxe implements IEnergyItemInfo {
} }
@Override @Override
public int getHarvestLevel(ItemStack stack, public int getHarvestLevel(ItemStack stack, String toolClass, @Nullable EntityPlayer player, @Nullable IBlockState blockState) {
String toolClass,
@Nullable
EntityPlayer player,
@Nullable
IBlockState blockState) {
if (!stack.isItemEnchanted()) { if (!stack.isItemEnchanted()) {
stack.addEnchantment(Enchantments.SILK_TOUCH, 1); stack.addEnchantment(Enchantments.SILK_TOUCH, 1);
} }
@ -135,9 +130,7 @@ public class ItemRockCutter extends ItemPickaxe implements IEnergyItemInfo {
@Override @Override
@Nullable @Nullable
public ICapabilityProvider initCapabilities(ItemStack stack, public ICapabilityProvider initCapabilities(ItemStack stack, @Nullable NBTTagCompound nbt) {
@Nullable
NBTTagCompound nbt) {
return new PoweredItemContainerProvider(stack); return new PoweredItemContainerProvider(stack);
} }

View file

@ -39,8 +39,7 @@ import techreborn.init.ModItems;
public class ItemSteelChainsaw extends ItemChainsaw { public class ItemSteelChainsaw extends ItemChainsaw {
public ItemSteelChainsaw() { public ItemSteelChainsaw() {
super(ToolMaterial.IRON, "techreborn.ironChainsaw", ConfigTechReborn.IronChainsawCharge, super(ToolMaterial.IRON, "techreborn.ironChainsaw", ConfigTechReborn.IronChainsawCharge, 0.5F);
0.5F);
this.cost = 50; this.cost = 50;
} }
@ -52,12 +51,11 @@ public class ItemSteelChainsaw extends ItemChainsaw {
return; return;
} }
ItemStack stack = new ItemStack(ModItems.STEEL_CHAINSAW); ItemStack stack = new ItemStack(ModItems.STEEL_CHAINSAW);
ItemStack uncharged = stack.copy();
ItemStack charged = stack.copy(); ItemStack charged = stack.copy();
ForgePowerItemManager capEnergy = (ForgePowerItemManager) charged.getCapability(CapabilityEnergy.ENERGY, null); ForgePowerItemManager capEnergy = (ForgePowerItemManager) charged.getCapability(CapabilityEnergy.ENERGY, null);
capEnergy.setEnergyStored(capEnergy.getMaxEnergyStored()); capEnergy.setEnergyStored(capEnergy.getMaxEnergyStored());
itemList.add(uncharged); itemList.add(stack);
itemList.add(charged); itemList.add(charged);
} }

View file

@ -39,8 +39,7 @@ import techreborn.init.ModItems;
public class ItemSteelDrill extends ItemDrill { public class ItemSteelDrill extends ItemDrill {
public ItemSteelDrill() { public ItemSteelDrill() {
super(ToolMaterial.IRON, "techreborn.ironDrill", ConfigTechReborn.IronDrillCharge, super(ToolMaterial.IRON, "techreborn.ironDrill", ConfigTechReborn.IronDrillCharge, 0.5F, 10F);
0.5F, 10F);
this.cost = 50; this.cost = 50;
} }
@ -52,12 +51,11 @@ public class ItemSteelDrill extends ItemDrill {
return; return;
} }
ItemStack stack = new ItemStack(ModItems.STEEL_DRILL); ItemStack stack = new ItemStack(ModItems.STEEL_DRILL);
ItemStack uncharged = stack.copy();
ItemStack charged = stack.copy(); ItemStack charged = stack.copy();
ForgePowerItemManager capEnergy = (ForgePowerItemManager) charged.getCapability(CapabilityEnergy.ENERGY, null); ForgePowerItemManager capEnergy = (ForgePowerItemManager) charged.getCapability(CapabilityEnergy.ENERGY, null);
capEnergy.setEnergyStored(capEnergy.getMaxEnergyStored()); capEnergy.setEnergyStored(capEnergy.getMaxEnergyStored());
itemList.add(uncharged); itemList.add(stack);
itemList.add(charged); itemList.add(charged);
} }

View file

@ -44,18 +44,16 @@ public class ItemSteelJackhammer extends ItemJackhammer {
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
@Override @Override
public void getSubItems( public void getSubItems( CreativeTabs par2CreativeTabs, NonNullList<ItemStack> itemList) {
CreativeTabs par2CreativeTabs, NonNullList<ItemStack> itemList) {
if (!isInCreativeTab(par2CreativeTabs)) { if (!isInCreativeTab(par2CreativeTabs)) {
return; return;
} }
ItemStack stack = new ItemStack(ModItems.STEEL_JACKHAMMER); ItemStack stack = new ItemStack(ModItems.STEEL_JACKHAMMER);
ItemStack uncharged = stack.copy();
ItemStack charged = stack.copy(); ItemStack charged = stack.copy();
ForgePowerItemManager capEnergy = (ForgePowerItemManager) charged.getCapability(CapabilityEnergy.ENERGY, null); ForgePowerItemManager capEnergy = (ForgePowerItemManager) charged.getCapability(CapabilityEnergy.ENERGY, null);
capEnergy.setEnergyStored(capEnergy.getMaxEnergyStored()); capEnergy.setEnergyStored(capEnergy.getMaxEnergyStored());
itemList.add(uncharged); itemList.add(stack);
itemList.add(charged); itemList.add(charged);
} }
} }

View file

@ -32,6 +32,7 @@ import net.minecraft.util.Rotation;
import net.minecraft.util.text.TextFormatting; import net.minecraft.util.text.TextFormatting;
import reborncore.api.IToolDrop; import reborncore.api.IToolDrop;
import reborncore.api.power.EnumPowerTier; import reborncore.api.power.EnumPowerTier;
import reborncore.common.powerSystem.PowerSystem;
import reborncore.common.powerSystem.TilePowerAcceptor; import reborncore.common.powerSystem.TilePowerAcceptor;
import reborncore.common.util.StringUtils; import reborncore.common.util.StringUtils;
import techreborn.Core; import techreborn.Core;
@ -157,13 +158,13 @@ public class TileSolarPanel extends TilePowerAcceptor implements IToolDrop {
@Override @Override
public void addInfo(List<String> info, boolean isRealTile) { public void addInfo(List<String> info, boolean isRealTile) {
info.add(TextFormatting.GRAY + "Internal Energy Storage: " + TextFormatting.GOLD info.add(TextFormatting.GRAY + "Internal Energy Storage: " + TextFormatting.GOLD
+ getLocaliszedPowerFormatted((int) getMaxPower())); + PowerSystem.getLocaliszedPowerFormatted((int) getMaxPower()));
info.add(TextFormatting.GRAY + "Generation Rate Day: " + TextFormatting.GOLD info.add(TextFormatting.GRAY + "Generation Rate Day: " + TextFormatting.GOLD
+ getLocaliszedPowerFormatted(panel.generationRateD)); + PowerSystem.getLocaliszedPowerFormatted(panel.generationRateD));
info.add(TextFormatting.GRAY + "Generation Rate Night: " + TextFormatting.GOLD info.add(TextFormatting.GRAY + "Generation Rate Night: " + TextFormatting.GOLD
+ getLocaliszedPowerFormatted(panel.generationRateN)); + PowerSystem.getLocaliszedPowerFormatted(panel.generationRateN));
info.add(TextFormatting.GRAY + "Tier: " + TextFormatting.GOLD + StringUtils.toFirstCapitalAllLowercase(getTier().toString())); info.add(TextFormatting.GRAY + "Tier: " + TextFormatting.GOLD + StringUtils.toFirstCapitalAllLowercase(getTier().toString()));
} }

View file

@ -32,6 +32,7 @@ import net.minecraftforge.energy.CapabilityEnergy;
import net.minecraftforge.energy.IEnergyStorage; import net.minecraftforge.energy.IEnergyStorage;
import reborncore.api.IToolDrop; import reborncore.api.IToolDrop;
import reborncore.api.power.EnumPowerTier; import reborncore.api.power.EnumPowerTier;
import reborncore.api.power.IEnergyItemInfo;
import reborncore.api.tile.IInventoryProvider; import reborncore.api.tile.IInventoryProvider;
import reborncore.common.RebornCoreConfig; import reborncore.common.RebornCoreConfig;
import reborncore.common.powerSystem.TilePowerAcceptor; import reborncore.common.powerSystem.TilePowerAcceptor;
@ -72,26 +73,19 @@ public class TileEnergyStorage extends TilePowerAcceptor
if (!inventory.getStackInSlot(0).isEmpty()) { if (!inventory.getStackInSlot(0).isEmpty()) {
ItemStack stack = inventory.getStackInSlot(0); ItemStack stack = inventory.getStackInSlot(0);
if (stack.hasCapability(CapabilityEnergy.ENERGY, null)) { if (stack.hasCapability(CapabilityEnergy.ENERGY, null)) {
IEnergyStorage energyStorage = stack.getCapability(CapabilityEnergy.ENERGY, null); IEnergyStorage powerItem = stack.getCapability(CapabilityEnergy.ENERGY, null);
if(getEnergy() > 0 && energyStorage.getEnergyStored() < energyStorage.getMaxEnergyStored()){ int maxReceive = Math.min((powerItem.getMaxEnergyStored() - powerItem.getEnergyStored()),
energyStorage.receiveEnergy((int) useEnergy(getMaxOutput()) * RebornCoreConfig.euPerFU, false); (int) ((IEnergyItemInfo) stack.getItem()).getMaxTransfer(stack));
double maxUse = Math.min((double) (maxReceive / RebornCoreConfig.euPerFU), getMaxOutput());
if (getEnergy() >= 0.0 && maxReceive > 0) {
powerItem.receiveEnergy((int) useEnergy(maxUse) * RebornCoreConfig.euPerFU, false);
} }
} } else if (CompatManager.isIC2Loaded) {
if(CompatManager.isIC2Loaded){
IC2ItemCharger.chargeIc2Item(this, stack); IC2ItemCharger.chargeIc2Item(this, stack);
} }
} }
if (!inventory.getStackInSlot(1).isEmpty()) { if (!inventory.getStackInSlot(1).isEmpty()) {
ItemStack stack = inventory.getStackInSlot(1); charge(1);
if(stack.hasCapability(CapabilityEnergy.ENERGY, null)){
IEnergyStorage energyStorage = stack.getCapability(CapabilityEnergy.ENERGY, null);
if(getEnergy() != getMaxPower() && energyStorage.getEnergyStored() > 0){
addEnergy(energyStorage.extractEnergy((int) (getMaxInput() * RebornCoreConfig.euPerFU), false) / RebornCoreConfig.euPerFU);
}
}
if(CompatManager.isIC2Loaded){
IC2ItemCharger.dischargeIc2Item(this, stack);
}
} }
} }

View file

@ -32,6 +32,7 @@ import net.minecraft.util.text.TextFormatting;
import reborncore.api.IListInfoProvider; import reborncore.api.IListInfoProvider;
import reborncore.api.IToolDrop; import reborncore.api.IToolDrop;
import reborncore.api.power.EnumPowerTier; import reborncore.api.power.EnumPowerTier;
import reborncore.common.powerSystem.PowerSystem;
import reborncore.common.powerSystem.TilePowerAcceptor; import reborncore.common.powerSystem.TilePowerAcceptor;
import reborncore.common.registration.RebornRegistry; import reborncore.common.registration.RebornRegistry;
import reborncore.common.registration.impl.ConfigRegistry; import reborncore.common.registration.impl.ConfigRegistry;
@ -140,9 +141,9 @@ public class TileTransformer extends TilePowerAcceptor
// IListInfoProvider // IListInfoProvider
@Override @Override
public void addInfo(List<String> info, boolean isRealTile) { public void addInfo(List<String> info, boolean isRealTile) {
info.add(TextFormatting.GRAY + "Input Rate: " + TextFormatting.GOLD + getLocaliszedPowerFormatted((int) getMaxInput())); info.add(TextFormatting.GRAY + "Input Rate: " + TextFormatting.GOLD + PowerSystem.getLocaliszedPowerFormatted((int) getMaxInput()));
info.add(TextFormatting.GRAY + "Input Tier: " + TextFormatting.GOLD + StringUtils.toFirstCapitalAllLowercase(inputTier.toString())); info.add(TextFormatting.GRAY + "Input Tier: " + TextFormatting.GOLD + StringUtils.toFirstCapitalAllLowercase(inputTier.toString()));
info.add(TextFormatting.GRAY + "Output Rate: " + TextFormatting.GOLD + getLocaliszedPowerFormatted((int) getMaxOutput())); info.add(TextFormatting.GRAY + "Output Rate: " + TextFormatting.GOLD + PowerSystem.getLocaliszedPowerFormatted((int) getMaxOutput()));
info.add(TextFormatting.GRAY + "Output Tier: " + TextFormatting.GOLD + StringUtils.toFirstCapitalAllLowercase(ouputTier.toString())); info.add(TextFormatting.GRAY + "Output Tier: " + TextFormatting.GOLD + StringUtils.toFirstCapitalAllLowercase(ouputTier.toString()));
} }