IC2 (EU) support.

This commit is contained in:
Raoul Van den Berge
2016-07-04 00:25:31 +02:00
parent 589ba06758
commit 3e1482fae8
4 changed files with 84 additions and 1 deletions

View File

@@ -9,6 +9,7 @@
- Added a debug storage disk - Added a debug storage disk
- Added tooltip to solderer progress bar that shows progress percentage - Added tooltip to solderer progress bar that shows progress percentage
- Added support for the Tesla energy system - Added support for the Tesla energy system
- Added support for the IC2 (EU) energy system
- Tweaked grid GUI - Tweaked grid GUI
### 0.8.3 ### 0.8.3

View File

@@ -30,11 +30,16 @@ repositories {
maven { maven {
url "http://maven.epoxide.xyz" url "http://maven.epoxide.xyz"
} }
maven {
name = "ic2"
url = "http://maven.ic2.player.to/"
}
} }
dependencies { dependencies {
deobfCompile "mezz.jei:jei_1.10:3.7.+" deobfCompile "mezz.jei:jei_1.10:3.7.+"
compile "net.darkhax.tesla:Tesla:1.9.4-1.1.0.24" compile "net.darkhax.tesla:Tesla:1.9.4-1.1.0.24"
compile "net.industrial-craft:industrialcraft-2:2.6.7-ex110:api"
} }
processResources { processResources {

View File

@@ -1,6 +1,8 @@
package refinedstorage.item; package refinedstorage.item;
import cofh.api.energy.ItemEnergyContainer; import cofh.api.energy.ItemEnergyContainer;
import ic2.api.item.IElectricItemManager;
import ic2.api.item.ISpecialElectricItem;
import net.darkhax.tesla.api.ITeslaConsumer; import net.darkhax.tesla.api.ITeslaConsumer;
import net.darkhax.tesla.api.ITeslaHolder; import net.darkhax.tesla.api.ITeslaHolder;
import net.darkhax.tesla.capability.TeslaCapabilities; import net.darkhax.tesla.capability.TeslaCapabilities;
@@ -28,7 +30,7 @@ import refinedstorage.tile.grid.TileGrid;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import java.util.List; import java.util.List;
public class ItemWirelessGrid extends ItemEnergyContainer { public class ItemWirelessGrid extends ItemEnergyContainer implements ISpecialElectricItem, IElectricItemManager {
public static final int TYPE_NORMAL = 0; public static final int TYPE_NORMAL = 0;
public static final int TYPE_CREATIVE = 1; public static final int TYPE_CREATIVE = 1;
@@ -220,6 +222,56 @@ public class ItemWirelessGrid extends ItemEnergyContainer {
return getUnlocalizedName() + "." + stack.getItemDamage(); return getUnlocalizedName() + "." + stack.getItemDamage();
} }
@Override
public IElectricItemManager getManager(ItemStack stack) {
return this;
}
@Override
public double charge(ItemStack stack, double amount, int tier, boolean ignoreTransferLimit, boolean simulate) {
return receiveEnergy(stack, (int) amount, simulate);
}
@Override
public double discharge(ItemStack stack, double amount, int tier, boolean ignoreTransferLimit, boolean externally, boolean simulate) {
return extractEnergy(stack, (int) amount, simulate);
}
@Override
public double getCharge(ItemStack stack) {
return getEnergyStored(stack);
}
@Override
public double getMaxCharge(ItemStack stack) {
return getMaxEnergyStored(stack);
}
@Override
public boolean canUse(ItemStack stack, double amount) {
return true;
}
@Override
public boolean use(ItemStack stack, double amount, EntityLivingBase entity) {
return true;
}
@Override
public void chargeFromArmor(ItemStack stack, EntityLivingBase entity) {
// NO OP
}
@Override
public String getToolTip(ItemStack stack) {
return null;
}
@Override
public int getTier(ItemStack stack) {
return Integer.MAX_VALUE;
}
class TeslaEnergy implements ITeslaHolder, ITeslaConsumer { class TeslaEnergy implements ITeslaHolder, ITeslaConsumer {
private ItemStack stack; private ItemStack stack;

View File

@@ -2,6 +2,7 @@ package refinedstorage.tile.controller;
import cofh.api.energy.EnergyStorage; import cofh.api.energy.EnergyStorage;
import cofh.api.energy.IEnergyReceiver; import cofh.api.energy.IEnergyReceiver;
import ic2.api.energy.prefab.BasicSink;
import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBuf;
import net.darkhax.tesla.api.ITeslaConsumer; import net.darkhax.tesla.api.ITeslaConsumer;
import net.darkhax.tesla.api.ITeslaHolder; import net.darkhax.tesla.api.ITeslaHolder;
@@ -97,6 +98,19 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
private List<ICraftingTask> craftingTasksToCancel = new ArrayList<ICraftingTask>(); private List<ICraftingTask> craftingTasksToCancel = new ArrayList<ICraftingTask>();
private EnergyStorage energy = new EnergyStorage(RefinedStorage.INSTANCE.controller); private EnergyStorage energy = new EnergyStorage(RefinedStorage.INSTANCE.controller);
private BasicSink ic2Energy = new BasicSink(this, energy.getMaxEnergyStored(), Integer.MAX_VALUE) {
@Override
public double getDemandedEnergy() {
return Math.max(0.0D, (double) energy.getMaxEnergyStored() - (double) energy.getEnergyStored());
}
@Override
public double injectEnergy(EnumFacing directionFrom, double amount, double voltage) {
energy.setEnergyStored(energy.getEnergyStored() + (int) amount);
return 0.0D;
}
};
private int energyUsage; private int energyUsage;
private int lastEnergyDisplay; private int lastEnergyDisplay;
@@ -128,6 +142,8 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
@Override @Override
public void update() { public void update() {
if (!worldObj.isRemote) { if (!worldObj.isRemote) {
ic2Energy.update();
for (INetworkNode node : nodesToAdd) { for (INetworkNode node : nodesToAdd) {
nodes.add(node); nodes.add(node);
@@ -222,6 +238,13 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
super.update(); super.update();
} }
@Override
public void invalidate() {
super.invalidate();
ic2Energy.invalidate();
}
@Override @Override
public List<INetworkNode> getNodes() { public List<INetworkNode> getNodes() {
return nodes; return nodes;
@@ -262,6 +285,8 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
@Override @Override
public void onChunkUnload() { public void onChunkUnload() {
disconnectNodes(); disconnectNodes();
ic2Energy.invalidate();
} }
public IGroupedStorage getStorage() { public IGroupedStorage getStorage() {