feat: update to UE 5

This commit is contained in:
Timo Ley 2022-12-10 14:35:44 +01:00
parent e065bffc8f
commit a9fb9dce44
10 changed files with 178 additions and 314 deletions

View file

@ -62,7 +62,8 @@ dependencies {
compile "inventorytweaks:inventory-tweaks:1.7.10-1.60.0:api" compile "inventorytweaks:inventory-tweaks:1.7.10-1.60.0:api"
compile "net.industrial-craft:industrialcraft-2:2.2.828-experimental:api" compile "net.industrial-craft:industrialcraft-2:2.2.828-experimental:api"
compile "mcp.mobius.waila:Waila:1.5.10_1.7.10:dev" compile "mcp.mobius.waila:Waila:1.5.10_1.7.10:dev"
compile "universalelectricity:basiccomponents:1.1.0:deobf" compile "universalelectricity:basiccomponents:2.0.0:deobf"
compile "universalelectricity:universalelectricity:5.1.0:deobf"
} }
version = "${config.minecraft_version}-${config.mod_version}" version = "${config.minecraft_version}-${config.mod_version}"
@ -149,6 +150,12 @@ task generatorsJar(type: Jar) {
} }
} }
task deobfJar(type: Jar) {
dependsOn processResources
from sourceSets.main.output
classifier = 'deobf'
}
coreJar.dependsOn('reobf') coreJar.dependsOn('reobf')
toolsJar.dependsOn('reobf') toolsJar.dependsOn('reobf')
generatorsJar.dependsOn('reobf') generatorsJar.dependsOn('reobf')

View file

@ -60,6 +60,7 @@ import mekanism.common.frequency.Frequency;
import mekanism.common.frequency.FrequencyManager; import mekanism.common.frequency.FrequencyManager;
import mekanism.common.integration.MekanismHooks; import mekanism.common.integration.MekanismHooks;
import mekanism.common.integration.OreDictManager; import mekanism.common.integration.OreDictManager;
import mekanism.common.integration.UECompatModule;
import mekanism.common.multiblock.MultiblockManager; import mekanism.common.multiblock.MultiblockManager;
import mekanism.common.multipart.MultipartMekanism; import mekanism.common.multipart.MultipartMekanism;
import mekanism.common.network.PacketDataRequest.DataRequestMessage; import mekanism.common.network.PacketDataRequest.DataRequestMessage;
@ -109,6 +110,7 @@ import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.OreDictionary;
import net.minecraftforge.oredict.RecipeSorter; import net.minecraftforge.oredict.RecipeSorter;
import net.minecraftforge.oredict.RecipeSorter.Category; import net.minecraftforge.oredict.RecipeSorter.Category;
import universalelectricity.api.CompatibilityModule;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
@ -136,7 +138,7 @@ import cpw.mods.fml.common.registry.GameRegistry;
* *
*/ */
@Mod(modid = "Mekanism", name = "Mekanism", version = "GRADLE_MODVERSION", guiFactory = "mekanism.client.gui.ConfigGuiFactory", @Mod(modid = "Mekanism", name = "Mekanism", version = "GRADLE_MODVERSION", guiFactory = "mekanism.client.gui.ConfigGuiFactory",
dependencies = "after:basiccomponents;after:ForgeMultipart;after:BuildCraft;after:BuildCraftAPI;after:IC2;after:CoFHCore;" + dependencies = "after:universalelectricity;after:ForgeMultipart;after:BuildCraft;after:BuildCraftAPI;after:IC2;after:CoFHCore;" +
"after:ComputerCraft;after:Galacticraft;after:MineTweaker3") "after:ComputerCraft;after:Galacticraft;after:MineTweaker3")
public class Mekanism public class Mekanism
{ {
@ -1187,6 +1189,10 @@ public class Mekanism
GasRegistry.register(new OreGas(name.toLowerCase(), "oregas." + name.toLowerCase()).setCleanGas(clean).setVisible(false)); GasRegistry.register(new OreGas(name.toLowerCase(), "oregas." + name.toLowerCase()).setCleanGas(clean).setVisible(false));
} }
if (Loader.isModLoaded("universalelectricity")) {
CompatibilityModule.register(new UECompatModule());
}
Mekanism.proxy.preInit(); Mekanism.proxy.preInit();
//Register blocks and items //Register blocks and items

View file

@ -11,9 +11,6 @@ import mekanism.api.energy.IStrictEnergyAcceptor;
import mekanism.api.energy.IStrictEnergyStorage; import mekanism.api.energy.IStrictEnergyStorage;
import net.minecraft.inventory.IInventory; import net.minecraft.inventory.IInventory;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
import universalelectricity.compat.IElectricityTileHandler;
import universalelectricity.core.block.IConnector;
import universalelectricity.core.block.IVoltage;
import cofh.api.energy.IEnergyHandler; import cofh.api.energy.IEnergyHandler;
import cpw.mods.fml.common.Optional.Interface; import cpw.mods.fml.common.Optional.Interface;
import cpw.mods.fml.common.Optional.InterfaceList; import cpw.mods.fml.common.Optional.InterfaceList;
@ -21,12 +18,9 @@ import cpw.mods.fml.common.Optional.InterfaceList;
@InterfaceList({ @InterfaceList({
@Interface(iface = "ic2.api.energy.tile.IEnergySink", modid = "IC2"), @Interface(iface = "ic2.api.energy.tile.IEnergySink", modid = "IC2"),
@Interface(iface = "ic2.api.energy.tile.IEnergySource", modid = "IC2"), @Interface(iface = "ic2.api.energy.tile.IEnergySource", modid = "IC2"),
@Interface(iface = "ic2.api.tile.IEnergyStorage", modid = "IC2"), @Interface(iface = "ic2.api.tile.IEnergyStorage", modid = "IC2")
@Interface(iface = "universalelectricity.compat.IElectricityTileHandler", modid = "basiccomponents"),
@Interface(iface = "universalelectricity.core.block.IConnector", modid = "basiccomponents"),
@Interface(iface = "universalelectricity.core.block.IVoltage", modid = "basiccomponents")
}) })
public interface IEnergyWrapper extends IStrictEnergyStorage, IEnergyHandler, IEnergySink, IEnergySource, IEnergyStorage, IStrictEnergyAcceptor, ICableOutputter, IInventory, IConnector, IVoltage, IElectricityTileHandler public interface IEnergyWrapper extends IStrictEnergyStorage, IEnergyHandler, IEnergySink, IEnergySource, IEnergyStorage, IStrictEnergyAcceptor, ICableOutputter, IInventory
{ {
public EnumSet<ForgeDirection> getOutputtingSides(); public EnumSet<ForgeDirection> getOutputtingSides();

View file

@ -0,0 +1,161 @@
package mekanism.common.integration;
import mekanism.api.energy.ICableOutputter;
import mekanism.api.energy.IEnergizedItem;
import mekanism.api.energy.IStrictEnergyAcceptor;
import mekanism.api.energy.IStrictEnergyStorage;
import mekanism.common.base.IEnergyWrapper;
import mekanism.common.multipart.PartUniversalCable;
import net.minecraft.item.ItemStack;
import net.minecraftforge.common.util.ForgeDirection;
import universalelectricity.api.CompatibilityModule;
public class UECompatModule extends CompatibilityModule {
@Override
public double doReceiveEnergy(Object handler, ForgeDirection direction, double energy, boolean doReceive) {
if (doCanReceive(handler, direction)) {
IStrictEnergyAcceptor acceptor = (IStrictEnergyAcceptor) handler;
return acceptor.transferEnergyToAcceptor(direction, energy);
}
return 0;
}
@Override
public double doExtractEnergy(Object handler, ForgeDirection direction, double energy, boolean doExtract) {
if (doCanExtract(handler, direction) && handler instanceof IStrictEnergyStorage) {
double provided = doGetProvidedJoules(handler);
double toExtract = Math.min(provided, energy);
if (doExtract) {
IStrictEnergyStorage storage = (IStrictEnergyStorage) handler;
storage.setEnergy(storage.getEnergy() - toExtract);
}
return toExtract;
}
return 0;
}
@Override
public double doChargeItem(ItemStack itemStack, double joules, boolean docharge) {
// TODO Auto-generated method stub
return 0;
}
@Override
public double doDischargeItem(ItemStack itemStack, double joules, boolean doDischarge) {
// TODO Auto-generated method stub
return 0;
}
@Override
public boolean doIsHandler(Object obj) {
if (obj instanceof PartUniversalCable) return false;
return obj instanceof IStrictEnergyAcceptor || (obj instanceof ICableOutputter && obj instanceof IStrictEnergyStorage) || obj instanceof IEnergizedItem;
}
@Override
public boolean doIsEnergyContainer(Object obj) {
return obj instanceof IStrictEnergyStorage;
}
@Override
public double doGetEnergy(Object obj, ForgeDirection direction) {
if (obj instanceof IStrictEnergyStorage) {
return ((IStrictEnergyStorage)obj).getEnergy();
}
return 0;
}
@Override
public boolean doCanConnect(Object obj, ForgeDirection direction, Object source) {
if (obj instanceof IStrictEnergyAcceptor && ((IStrictEnergyAcceptor)obj).canReceiveEnergy(direction)) {
return true;
} else if (obj instanceof ICableOutputter && ((ICableOutputter)obj).canOutputTo(direction)) {
return true;
}
return false;
}
@Override
public ItemStack doGetItemWithCharge(ItemStack itemStack, double energy) {
IEnergizedItem item = (IEnergizedItem) itemStack.getItem();
ItemStack copy = itemStack.copy();
item.setEnergy(copy, energy);
return copy;
}
@Override
public double doGetMaxEnergy(Object handler, ForgeDirection direction) {
if (handler instanceof IStrictEnergyStorage) {
return ((IStrictEnergyStorage)handler).getMaxEnergy();
}
return 0;
}
@Override
public double doGetEnergyItem(ItemStack is) {
IEnergizedItem item = (IEnergizedItem) is.getItem();
return item.getEnergy(is);
}
@Override
public double doGetMaxEnergyItem(ItemStack is) {
IEnergizedItem item = (IEnergizedItem) is.getItem();
return item.getMaxEnergy(is);
}
@Override
public double doGetInputVoltage(Object handler) {
return 960.0;
}
@Override
public double doGetOutputVoltage(Object handler) {
return 120.0;
}
@Override
public boolean doCanReceive(Object handler, ForgeDirection side) {
if (!(handler instanceof IStrictEnergyAcceptor)) return false;
if (side != ForgeDirection.UNKNOWN) {
return ((IStrictEnergyAcceptor)handler).canReceiveEnergy(side);
}
return true;
}
@Override
public boolean doCanExtract(Object handler, ForgeDirection side) {
if (!(handler instanceof ICableOutputter)) return false;
if (side != ForgeDirection.UNKNOWN) {
return ((ICableOutputter)handler).canOutputTo(side);
}
return true;
}
@Override
public double doGetDemandedJoules(Object handler) {
if (handler instanceof IStrictEnergyAcceptor) {
IStrictEnergyAcceptor acceptor = (IStrictEnergyAcceptor) handler;
return acceptor.getMaxEnergy() - acceptor.getEnergy();
}
return 0;
}
@Override
public double doGetProvidedJoules(Object handler) {
double maxOutput = 10000.0;
if (handler instanceof IEnergyWrapper) {
maxOutput = ((IEnergyWrapper)handler).getMaxOutput();
}
if (handler instanceof IStrictEnergyStorage && handler instanceof ICableOutputter) {
IStrictEnergyStorage storage = (IStrictEnergyStorage) handler;
return Math.min(storage.getEnergy(), maxOutput);
}
return 0;
}
}

View file

@ -1,20 +0,0 @@
package mekanism.common.integration.ue;
import cpw.mods.fml.common.Loader;
import mekanism.common.base.IEnergyWrapper;
public abstract class UEDriverProxy {
public abstract void tick();
public abstract void invalidate();
public static UEDriverProxy createProxy(IEnergyWrapper wrapper) {
if (Loader.isModLoaded("basiccomponents")) {
return new UELoaded(wrapper);
} else {
return new UEUnloaded();
}
}
}

View file

@ -1,24 +0,0 @@
package mekanism.common.integration.ue;
import mekanism.common.base.IEnergyWrapper;
import universalelectricity.prefab.tile.ElectricTileDriver;
public class UELoaded extends UEDriverProxy {
private ElectricTileDriver driver;
public UELoaded(IEnergyWrapper wrapper) {
driver = new ElectricTileDriver(wrapper);
}
@Override
public void tick() {
driver.tick();
}
@Override
public void invalidate() {
driver.invalidate();
}
}

View file

@ -1,15 +0,0 @@
package mekanism.common.integration.ue;
public class UEUnloaded extends UEDriverProxy {
@Override
public void tick() {
}
@Override
public void invalidate() {
}
}

View file

@ -14,13 +14,11 @@ import mekanism.api.Coord4D;
import mekanism.api.MekanismConfig.general; import mekanism.api.MekanismConfig.general;
import mekanism.api.transmitters.ITransmitterTile; import mekanism.api.transmitters.ITransmitterTile;
import mekanism.common.base.IEnergyWrapper; import mekanism.common.base.IEnergyWrapper;
import mekanism.common.integration.ue.UEDriverProxy;
import mekanism.common.util.MekanismUtils; import mekanism.common.util.MekanismUtils;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
import universalelectricity.core.electricity.ElectricityPack;
import cpw.mods.fml.common.Optional.Method; import cpw.mods.fml.common.Optional.Method;
public abstract class TileEntityElectricBlock extends TileEntityContainerBlock implements IEnergyWrapper public abstract class TileEntityElectricBlock extends TileEntityContainerBlock implements IEnergyWrapper
@ -37,8 +35,6 @@ public abstract class TileEntityElectricBlock extends TileEntityContainerBlock i
/** Is this registered with IC2 */ /** Is this registered with IC2 */
public boolean ic2Registered = false; public boolean ic2Registered = false;
private UEDriverProxy driver;
/** /**
* The base of all blocks that deal with electricity. It has a facing state, initialized state, * The base of all blocks that deal with electricity. It has a facing state, initialized state,
* and a current amount of stored energy. * and a current amount of stored energy.
@ -50,7 +46,6 @@ public abstract class TileEntityElectricBlock extends TileEntityContainerBlock i
super(name); super(name);
BASE_MAX_ENERGY = baseMaxEnergy; BASE_MAX_ENERGY = baseMaxEnergy;
maxEnergy = BASE_MAX_ENERGY; maxEnergy = BASE_MAX_ENERGY;
driver = UEDriverProxy.createProxy(this);
} }
@Method(modid = "IC2") @Method(modid = "IC2")
@ -96,9 +91,6 @@ public abstract class TileEntityElectricBlock extends TileEntityContainerBlock i
{ {
register(); register();
} }
if (!this.worldObj.isRemote) {
driver.tick();
}
} }
@Override @Override
@ -177,7 +169,6 @@ public abstract class TileEntityElectricBlock extends TileEntityContainerBlock i
{ {
deregister(); deregister();
} }
driver.invalidate();
super.onChunkUnload(); super.onChunkUnload();
} }
@ -185,7 +176,6 @@ public abstract class TileEntityElectricBlock extends TileEntityContainerBlock i
public void invalidate() public void invalidate()
{ {
super.invalidate(); super.invalidate();
driver.invalidate();
if(MekanismUtils.useIC2()) if(MekanismUtils.useIC2())
{ {
deregister(); deregister();
@ -409,77 +399,4 @@ public abstract class TileEntityElectricBlock extends TileEntityContainerBlock i
return toUse; return toUse;
} }
@Override
@Method(modid = "basiccomponents")
public boolean canConnect(ForgeDirection side) {
return getConsumingSides().contains(side) || getOutputtingSides().contains(side);
}
@Override
@Method(modid = "basiccomponents")
public double getVoltage() {
return 120.0;
}
@Override
@Method(modid = "basiccomponents")
public boolean canInsert() {
return getConsumingSides().size() > 0;
}
@Override
@Method(modid = "basiccomponents")
public boolean canExtract() {
return getOutputtingSides().size() > 0;
}
@Override
@Method(modid = "basiccomponents")
public boolean canInsertOn(ForgeDirection side) {
return getConsumingSides().contains(side);
}
@Override
@Method(modid = "basiccomponents")
public boolean canExtractOn(ForgeDirection side) {
return getOutputtingSides().contains(side);
}
@Override
@Method(modid = "basiccomponents")
public void insert(ElectricityPack pack, ForgeDirection side) {
setEnergy(Math.min(getEnergy() + pack.getWatts(), getMaxEnergy()));
}
@Override
@Method(modid = "basiccomponents")
public void extract(ElectricityPack pack, ForgeDirection side) {
setEnergy(Math.max(getEnergy() - pack.getWatts(), 0));
}
@Override
@Method(modid = "basiccomponents")
public ElectricityPack getDemandedJoules() {
if (canInsert())
return new ElectricityPack((getMaxEnergy() - getEnergy()) / getVoltage(), getVoltage());
else
return new ElectricityPack();
}
@Override
@Method(modid = "basiccomponents")
public ElectricityPack getProvidedJoules() {
if (canExtract())
return new ElectricityPack(Math.min(getEnergy(), getMaxOutput()) / getVoltage(), getVoltage());
else
return new ElectricityPack();
}
@Override
@Method(modid = "basiccomponents")
public TileEntity getTile() {
return this;
}
} }

View file

@ -19,7 +19,6 @@ import mekanism.api.transmitters.ITransmitterTile;
import mekanism.common.Mekanism; import mekanism.common.Mekanism;
import mekanism.common.base.IActiveState; import mekanism.common.base.IActiveState;
import mekanism.common.base.IEnergyWrapper; import mekanism.common.base.IEnergyWrapper;
import mekanism.common.integration.ue.UEDriverProxy;
import mekanism.common.network.PacketTileEntity.TileEntityMessage; import mekanism.common.network.PacketTileEntity.TileEntityMessage;
import mekanism.common.util.CableUtils; import mekanism.common.util.CableUtils;
import mekanism.common.util.LangUtils; import mekanism.common.util.LangUtils;
@ -47,12 +46,9 @@ public class TileEntityInductionPort extends TileEntityInductionCasing implement
/** false = input, true = output */ /** false = input, true = output */
public boolean mode; public boolean mode;
private UEDriverProxy driver;
public TileEntityInductionPort() public TileEntityInductionPort()
{ {
super("InductionPort"); super("InductionPort");
driver = UEDriverProxy.createProxy(this);
} }
@Override @Override
@ -73,7 +69,6 @@ public class TileEntityInductionPort extends TileEntityInductionCasing implement
CableUtils.emit(this); CableUtils.emit(this);
structure.remainingOutput -= (prev-getEnergy()); structure.remainingOutput -= (prev-getEnergy());
} }
driver.tick();
} }
} }
@ -201,8 +196,6 @@ public class TileEntityInductionPort extends TileEntityInductionCasing implement
deregister(); deregister();
} }
driver.invalidate();
super.onChunkUnload(); super.onChunkUnload();
} }
@ -211,8 +204,6 @@ public class TileEntityInductionPort extends TileEntityInductionCasing implement
{ {
super.invalidate(); super.invalidate();
driver.invalidate();
if(MekanismUtils.useIC2()) if(MekanismUtils.useIC2())
{ {
deregister(); deregister();
@ -483,77 +474,4 @@ public class TileEntityInductionPort extends TileEntityInductionCasing implement
return false; return false;
} }
@Override
@Method(modid = "basiccomponents")
public boolean canConnect(ForgeDirection side) {
return getConsumingSides().contains(side) || getOutputtingSides().contains(side);
}
@Override
@Method(modid = "basiccomponents")
public double getVoltage() {
return 120.0;
}
@Override
@Method(modid = "basiccomponents")
public boolean canInsert() {
return getConsumingSides().size() > 0;
}
@Override
@Method(modid = "basiccomponents")
public boolean canExtract() {
return getOutputtingSides().size() > 0;
}
@Override
@Method(modid = "basiccomponents")
public boolean canInsertOn(ForgeDirection side) {
return getConsumingSides().contains(side);
}
@Override
@Method(modid = "basiccomponents")
public boolean canExtractOn(ForgeDirection side) {
return getOutputtingSides().contains(side);
}
@Override
@Method(modid = "basiccomponents")
public void insert(ElectricityPack pack, ForgeDirection side) {
setEnergy(Math.min(getEnergy() + pack.getWatts(), getMaxEnergy()));
}
@Override
@Method(modid = "basiccomponents")
public void extract(ElectricityPack pack, ForgeDirection side) {
setEnergy(Math.max(getEnergy() - pack.getWatts(), 0));
}
@Override
@Method(modid = "basiccomponents")
public ElectricityPack getDemandedJoules() {
if (canInsert())
return new ElectricityPack((getMaxEnergy() - getEnergy()) / getVoltage(), getVoltage());
else
return new ElectricityPack();
}
@Override
@Method(modid = "basiccomponents")
public ElectricityPack getProvidedJoules() {
if (canExtract())
return new ElectricityPack(Math.min(getEnergy(), getMaxOutput()) / getVoltage(), getVoltage());
else
return new ElectricityPack();
}
@Override
@Method(modid = "basiccomponents")
public TileEntity getTile() {
return this;
}
} }

View file

@ -10,7 +10,6 @@ import java.util.EnumSet;
import mekanism.api.Coord4D; import mekanism.api.Coord4D;
import mekanism.api.MekanismConfig.general; import mekanism.api.MekanismConfig.general;
import mekanism.common.base.IEnergyWrapper; import mekanism.common.base.IEnergyWrapper;
import mekanism.common.integration.ue.UEDriverProxy;
import mekanism.common.tile.TileEntityGasTank.GasMode; import mekanism.common.tile.TileEntityGasTank.GasMode;
import mekanism.common.util.CableUtils; import mekanism.common.util.CableUtils;
import mekanism.common.util.LangUtils; import mekanism.common.util.LangUtils;
@ -25,7 +24,6 @@ import net.minecraftforge.fluids.FluidRegistry;
import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.FluidTankInfo; import net.minecraftforge.fluids.FluidTankInfo;
import net.minecraftforge.fluids.IFluidHandler; import net.minecraftforge.fluids.IFluidHandler;
import universalelectricity.core.electricity.ElectricityPack;
import cpw.mods.fml.common.Optional.Interface; import cpw.mods.fml.common.Optional.Interface;
import cpw.mods.fml.common.Optional.InterfaceList; import cpw.mods.fml.common.Optional.InterfaceList;
import cpw.mods.fml.common.Optional.Method; import cpw.mods.fml.common.Optional.Method;
@ -41,13 +39,10 @@ public class TileEntityTurbineValve extends TileEntityTurbineCasing implements I
public TurbineFluidTank fluidTank; public TurbineFluidTank fluidTank;
private UEDriverProxy driver;
public TileEntityTurbineValve() public TileEntityTurbineValve()
{ {
super("TurbineValve"); super("TurbineValve");
fluidTank = new TurbineFluidTank(this); fluidTank = new TurbineFluidTank(this);
driver = UEDriverProxy.createProxy(this);
} }
@Override @Override
@ -67,7 +62,6 @@ public class TileEntityTurbineValve extends TileEntityTurbineCasing implements I
double prev = getEnergy(); double prev = getEnergy();
CableUtils.emit(this); CableUtils.emit(this);
} }
driver.tick();
} }
} }
@ -166,8 +160,6 @@ public class TileEntityTurbineValve extends TileEntityTurbineCasing implements I
deregister(); deregister();
} }
driver.invalidate();
super.onChunkUnload(); super.onChunkUnload();
} }
@ -176,8 +168,6 @@ public class TileEntityTurbineValve extends TileEntityTurbineCasing implements I
{ {
super.invalidate(); super.invalidate();
driver.invalidate();
if(MekanismUtils.useIC2()) if(MekanismUtils.useIC2())
{ {
deregister(); deregister();
@ -418,74 +408,4 @@ public class TileEntityTurbineValve extends TileEntityTurbineCasing implements I
return LangUtils.localize("gui.industrialTurbine"); return LangUtils.localize("gui.industrialTurbine");
} }
@Override
@Method(modid = "basiccomponents")
public boolean canConnect(ForgeDirection side) {
return getOutputtingSides().contains(side);
}
@Override
@Method(modid = "basiccomponents")
public double getVoltage() {
return 120.0;
}
@Override
@Method(modid = "basiccomponents")
public boolean canInsert() {
return false;
}
@Override
@Method(modid = "basiccomponents")
public boolean canExtract() {
return getOutputtingSides().size() > 0;
}
@Override
@Method(modid = "basiccomponents")
public boolean canInsertOn(ForgeDirection side) {
return false;
}
@Override
@Method(modid = "basiccomponents")
public boolean canExtractOn(ForgeDirection side) {
return getOutputtingSides().contains(side);
}
@Override
@Method(modid = "basiccomponents")
public void insert(ElectricityPack pack, ForgeDirection side) {
}
@Override
@Method(modid = "basiccomponents")
public void extract(ElectricityPack pack, ForgeDirection side) {
setEnergy(Math.max(getEnergy() - pack.getWatts(), 0));
}
@Override
@Method(modid = "basiccomponents")
public ElectricityPack getDemandedJoules() {
return new ElectricityPack();
}
@Override
@Method(modid = "basiccomponents")
public ElectricityPack getProvidedJoules() {
if (canExtract())
return new ElectricityPack(Math.min(getEnergy(), getMaxOutput()) / getVoltage(), getVoltage());
else
return new ElectricityPack();
}
@Override
@Method(modid = "basiccomponents")
public TileEntity getTile() {
return this;
}
} }