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 "net.industrial-craft:industrialcraft-2:2.2.828-experimental:api"
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}"
@ -149,6 +150,12 @@ task generatorsJar(type: Jar) {
}
}
task deobfJar(type: Jar) {
dependsOn processResources
from sourceSets.main.output
classifier = 'deobf'
}
coreJar.dependsOn('reobf')
toolsJar.dependsOn('reobf')
generatorsJar.dependsOn('reobf')

View file

@ -60,6 +60,7 @@ import mekanism.common.frequency.Frequency;
import mekanism.common.frequency.FrequencyManager;
import mekanism.common.integration.MekanismHooks;
import mekanism.common.integration.OreDictManager;
import mekanism.common.integration.UECompatModule;
import mekanism.common.multiblock.MultiblockManager;
import mekanism.common.multipart.MultipartMekanism;
import mekanism.common.network.PacketDataRequest.DataRequestMessage;
@ -109,6 +110,7 @@ import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.oredict.OreDictionary;
import net.minecraftforge.oredict.RecipeSorter;
import net.minecraftforge.oredict.RecipeSorter.Category;
import universalelectricity.api.CompatibilityModule;
import org.apache.logging.log4j.LogManager;
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",
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")
public class Mekanism
{
@ -1187,6 +1189,10 @@ public class Mekanism
GasRegistry.register(new OreGas(name.toLowerCase(), "oregas." + name.toLowerCase()).setCleanGas(clean).setVisible(false));
}
if (Loader.isModLoaded("universalelectricity")) {
CompatibilityModule.register(new UECompatModule());
}
Mekanism.proxy.preInit();
//Register blocks and items

View file

@ -11,9 +11,6 @@ import mekanism.api.energy.IStrictEnergyAcceptor;
import mekanism.api.energy.IStrictEnergyStorage;
import net.minecraft.inventory.IInventory;
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 cpw.mods.fml.common.Optional.Interface;
import cpw.mods.fml.common.Optional.InterfaceList;
@ -21,12 +18,9 @@ import cpw.mods.fml.common.Optional.InterfaceList;
@InterfaceList({
@Interface(iface = "ic2.api.energy.tile.IEnergySink", modid = "IC2"),
@Interface(iface = "ic2.api.energy.tile.IEnergySource", 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")
@Interface(iface = "ic2.api.tile.IEnergyStorage", modid = "IC2")
})
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();

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.transmitters.ITransmitterTile;
import mekanism.common.base.IEnergyWrapper;
import mekanism.common.integration.ue.UEDriverProxy;
import mekanism.common.util.MekanismUtils;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.common.util.ForgeDirection;
import universalelectricity.core.electricity.ElectricityPack;
import cpw.mods.fml.common.Optional.Method;
public abstract class TileEntityElectricBlock extends TileEntityContainerBlock implements IEnergyWrapper
@ -37,8 +35,6 @@ public abstract class TileEntityElectricBlock extends TileEntityContainerBlock i
/** Is this registered with IC2 */
public boolean ic2Registered = false;
private UEDriverProxy driver;
/**
* The base of all blocks that deal with electricity. It has a facing state, initialized state,
* and a current amount of stored energy.
@ -50,7 +46,6 @@ public abstract class TileEntityElectricBlock extends TileEntityContainerBlock i
super(name);
BASE_MAX_ENERGY = baseMaxEnergy;
maxEnergy = BASE_MAX_ENERGY;
driver = UEDriverProxy.createProxy(this);
}
@Method(modid = "IC2")
@ -96,9 +91,6 @@ public abstract class TileEntityElectricBlock extends TileEntityContainerBlock i
{
register();
}
if (!this.worldObj.isRemote) {
driver.tick();
}
}
@Override
@ -177,7 +169,6 @@ public abstract class TileEntityElectricBlock extends TileEntityContainerBlock i
{
deregister();
}
driver.invalidate();
super.onChunkUnload();
}
@ -185,7 +176,6 @@ public abstract class TileEntityElectricBlock extends TileEntityContainerBlock i
public void invalidate()
{
super.invalidate();
driver.invalidate();
if(MekanismUtils.useIC2())
{
deregister();
@ -409,77 +399,4 @@ public abstract class TileEntityElectricBlock extends TileEntityContainerBlock i
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.base.IActiveState;
import mekanism.common.base.IEnergyWrapper;
import mekanism.common.integration.ue.UEDriverProxy;
import mekanism.common.network.PacketTileEntity.TileEntityMessage;
import mekanism.common.util.CableUtils;
import mekanism.common.util.LangUtils;
@ -47,12 +46,9 @@ public class TileEntityInductionPort extends TileEntityInductionCasing implement
/** false = input, true = output */
public boolean mode;
private UEDriverProxy driver;
public TileEntityInductionPort()
{
super("InductionPort");
driver = UEDriverProxy.createProxy(this);
}
@Override
@ -73,7 +69,6 @@ public class TileEntityInductionPort extends TileEntityInductionCasing implement
CableUtils.emit(this);
structure.remainingOutput -= (prev-getEnergy());
}
driver.tick();
}
}
@ -201,8 +196,6 @@ public class TileEntityInductionPort extends TileEntityInductionCasing implement
deregister();
}
driver.invalidate();
super.onChunkUnload();
}
@ -211,8 +204,6 @@ public class TileEntityInductionPort extends TileEntityInductionCasing implement
{
super.invalidate();
driver.invalidate();
if(MekanismUtils.useIC2())
{
deregister();
@ -483,77 +474,4 @@ public class TileEntityInductionPort extends TileEntityInductionCasing implement
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.MekanismConfig.general;
import mekanism.common.base.IEnergyWrapper;
import mekanism.common.integration.ue.UEDriverProxy;
import mekanism.common.tile.TileEntityGasTank.GasMode;
import mekanism.common.util.CableUtils;
import mekanism.common.util.LangUtils;
@ -25,7 +24,6 @@ import net.minecraftforge.fluids.FluidRegistry;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.FluidTankInfo;
import net.minecraftforge.fluids.IFluidHandler;
import universalelectricity.core.electricity.ElectricityPack;
import cpw.mods.fml.common.Optional.Interface;
import cpw.mods.fml.common.Optional.InterfaceList;
import cpw.mods.fml.common.Optional.Method;
@ -41,13 +39,10 @@ public class TileEntityTurbineValve extends TileEntityTurbineCasing implements I
public TurbineFluidTank fluidTank;
private UEDriverProxy driver;
public TileEntityTurbineValve()
{
super("TurbineValve");
fluidTank = new TurbineFluidTank(this);
driver = UEDriverProxy.createProxy(this);
}
@Override
@ -67,7 +62,6 @@ public class TileEntityTurbineValve extends TileEntityTurbineCasing implements I
double prev = getEnergy();
CableUtils.emit(this);
}
driver.tick();
}
}
@ -166,8 +160,6 @@ public class TileEntityTurbineValve extends TileEntityTurbineCasing implements I
deregister();
}
driver.invalidate();
super.onChunkUnload();
}
@ -176,8 +168,6 @@ public class TileEntityTurbineValve extends TileEntityTurbineCasing implements I
{
super.invalidate();
driver.invalidate();
if(MekanismUtils.useIC2())
{
deregister();
@ -418,74 +408,4 @@ public class TileEntityTurbineValve extends TileEntityTurbineCasing implements I
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;
}
}