Posted May 25, 201510 yr Hi =) I made block, which should store energy, but i have problem. Energy arrives in storage, but if I want to extract energy from storage, the energy doesn't extract. Help me please =) TileEntity: public class TileEntityRainbowBatteryBox extends TileEntityRainbowElectricity implements IInventory, IEnergyHandler { protected EnergyStorage storage; public static int MAX_RECEIVE = 32000; public static int CAPACITY = 10000000; public TileEntityRainbowBatteryBox(){ storage = new EnergyStorage(CAPACITY, MAX_RECEIVE); } @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); storage.readFromNBT(nbt); } @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); storage.writeToNBT(nbt); } @Override public boolean canConnectEnergy(ForgeDirection from) { return true; } @Override public int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate) { return storage.receiveEnergy(maxReceive, simulate); } @Override public int extractEnergy(ForgeDirection from, int maxExtract, boolean simulate) { return storage.extractEnergy(maxExtract, simulate); } @Override public int getEnergyStored(ForgeDirection from){ return storage.getEnergyStored(); } @Override public int getMaxEnergyStored(ForgeDirection from){ return storage.getMaxEnergyStored(); } P.S. I wanted to put the code in the spoiler, but for some reason the spoiler does not work, and everything else too
May 25, 201510 yr How do you know that energy is not being extracted? What are you using for testing? Check out my mods: BTAM Armor sets Avoid Exploding Creepers Tools compressor Anti Id Conflict Key bindings overhaul Colourfull blocks Invisi Zones
May 25, 201510 yr I did it like this: I created a map with TileEntities around the block, witch is updated with onNeighborBlockChange and then if the TileEntity is IEnergyReceiver I try to push energy to it. shareEnergyWithNeighbors pushEnergy getTileEntityNeighborMap
May 25, 201510 yr I did it like this: I created a map with TileEntities around the block, witch is updated with onNeighborBlockChange and then if the TileEntity is IEnergyReceiver I try to push energy to it. shareEnergyWithNeighbors pushEnergy getTileEntityNeighborMap If you used YOUR OWN THINGS to test, there's a chance of bug being in these things. Try to extract energy suing bc or vluxducts, and come back with result... Check out my mods: BTAM Armor sets Avoid Exploding Creepers Tools compressor Anti Id Conflict Key bindings overhaul Colourfull blocks Invisi Zones
May 25, 201510 yr Author How do you know that energy is not being extracted? What are you using for testing? I use Fluxducts from Thermal Dynamics for testing.
May 25, 201510 yr You shouldn't have to 'push' energy to the Fluxducts. Let the Fluxducts do the work of 'pushing' and 'pulling' energy to and from your TileEntity. Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support. 1.12 -> 1.13 primer by williewillus. 1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support. http://www.howoldisminecraft1710.today/
May 25, 201510 yr Author Screenshots: Energy Storage receive energy from Resonant Energy Cell: But energy doesn't extract from Energy Storage to Resonant Energy Cell:
May 25, 201510 yr Show your TileEntity code. Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support. 1.12 -> 1.13 primer by williewillus. 1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support. http://www.howoldisminecraft1710.today/
May 25, 201510 yr Author Show your TileEntity code. public class TileEntityRainbowBatteryBox extends TileEntityRainbowElectricity implements IInventory, IEnergyHandler{ protected EnergyStorage storage; public static int MAX_RECEIVE = 32000; public static int CAPACITY = 10000000; public TileEntityRainbowBatteryBox(){ storage = new EnergyStorage(CAPACITY, MAX_RECEIVE); } public int getChargeLevelPercent(){ return (int)Math.floor((double)storage.getEnergyStored() / (double)storage.getMaxEnergyStored() * 100); } @SideOnly(Side.CLIENT) public int getChargeLevelScaled(int width){ return storage.getEnergyStored() * width / storage.getMaxEnergyStored(); } @Override public void readFromNBT(NBTTagCompound nbt){ super.readFromNBT(nbt); storage.readFromNBT(nbt); } @Override public void writeToNBT(NBTTagCompound nbt){ super.writeToNBT(nbt); storage.writeToNBT(nbt); } @Override public boolean isUseableByPlayer(EntityPlayer player){ return worldObj.getTileEntity(xCoord, yCoord, zCoord) != this ? false : player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 64.0D; } @Override public int getSizeInventory(){ return 0; } @Override public ItemStack getStackInSlot(int p_70301_1_){ return null; } @Override public ItemStack decrStackSize(int p_70298_1_, int p_70298_2_){ return null; } @Override public ItemStack getStackInSlotOnClosing(int p_70304_1_){ return null; } @Override public void setInventorySlotContents(int p_70299_1_, ItemStack p_70299_2_){} @Override public String getInventoryName(){ return ModBlocks.rainbowBatteryBox.getUnlocalizedName() + ".name"; } @Override public boolean hasCustomInventoryName(){ return false; } @Override public int getInventoryStackLimit(){ return 0; } @Override public void openInventory(){} @Override public void closeInventory(){} @Override public boolean isItemValidForSlot(int p_94041_1_, ItemStack p_94041_2_){ return false; } @Override public boolean canConnectEnergy(ForgeDirection from){ return true; } @Override public int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate){ return storage.receiveEnergy(maxReceive, simulate); } @Override public int extractEnergy(ForgeDirection from, int maxExtract, boolean simulate){ return storage.extractEnergy(maxExtract, simulate); } @Override public int getEnergyStored(ForgeDirection from){ return storage.getEnergyStored(); } @Override public int getMaxEnergyStored(ForgeDirection from){ return storage.getMaxEnergyStored(); } }
May 25, 201510 yr 1) Why do you implement IInventory when you always return null in getStackInSlot ? 2) If ThermalDynamics is doing things only server side, it might be because server<->client desynch. Try marking the block for update after the extractEnergy method. Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support. 1.12 -> 1.13 primer by williewillus. 1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support. http://www.howoldisminecraft1710.today/
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.