blob: 8674b38ea80d7eddd3a1f32cd71e7a0d6f0eabd1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
package gregtech.api.util;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.util.ForgeDirection;
import gregtech.api.GregTech_API;
import micdoodle8.mods.galacticraft.api.power.EnergySource;
import micdoodle8.mods.galacticraft.api.power.EnergySource.EnergySourceAdjacent;
import micdoodle8.mods.galacticraft.api.power.IEnergyHandlerGC;
import micdoodle8.mods.galacticraft.api.transmission.NetworkType;
import micdoodle8.mods.galacticraft.api.transmission.tile.IConnector;
import micdoodle8.mods.galacticraft.core.energy.EnergyConfigHandler;
public class GT_GC_Compat {
public static long insertEnergyInto(TileEntity tTileEntity, long aVoltage, ForgeDirection tDirection) {
// GC Compat
if (GregTech_API.mGalacticraft && tTileEntity instanceof IEnergyHandlerGC) {
if (!(tTileEntity instanceof IConnector)
|| ((IConnector) tTileEntity).canConnect(tDirection, NetworkType.POWER)) {
EnergySource eSource = new EnergySourceAdjacent(tDirection);
float tSizeToReceive = aVoltage * EnergyConfigHandler.IC2_RATIO,
tStored = ((IEnergyHandlerGC) tTileEntity).getEnergyStoredGC(eSource);
if (tSizeToReceive >= tStored
|| tSizeToReceive <= ((IEnergyHandlerGC) tTileEntity).getMaxEnergyStoredGC(eSource) - tStored) {
float tReceived = ((IEnergyHandlerGC) tTileEntity).receiveEnergyGC(eSource, tSizeToReceive, false);
if (tReceived > 0) {
tSizeToReceive -= tReceived;
while (tSizeToReceive > 0) {
tReceived = ((IEnergyHandlerGC) tTileEntity)
.receiveEnergyGC(eSource, tSizeToReceive, false);
if (tReceived < 1) break;
tSizeToReceive -= tReceived;
}
return 1;
}
}
}
return 0;
}
return 2;
}
public static boolean canConnect(TileEntity tTileEntity, ForgeDirection tDirection) {
// GC Compat
if (GregTech_API.mGalacticraft && tTileEntity instanceof IEnergyHandlerGC
&& (!(tTileEntity instanceof IConnector)
|| ((IConnector) tTileEntity).canConnect(tDirection, NetworkType.POWER)))
return true;
return false;
}
}
|