Skip to content

Commit

Permalink
Updates for powering Turret Bases, no more IC2, but GT5 (#6)
Browse files Browse the repository at this point in the history
  • Loading branch information
Keridos authored Dec 9, 2024
1 parent 9aa11fd commit 1129b8f
Show file tree
Hide file tree
Showing 5 changed files with 55 additions and 65 deletions.
13 changes: 7 additions & 6 deletions dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@
dependencies {
implementation("curse.maven:cofh-lib-220333:2388748")

compileOnly 'com.github.GTNewHorizons:waila:1.8.1:dev'
compileOnly 'com.github.GTNewHorizons:NotEnoughItems:2.6.35-GTNH:dev'
compileOnly 'com.github.GTNewHorizons:OpenComputers:1.10.23-GTNH:dev'
compileOnly 'net.industrial-craft:industrialcraft-2:2.2.828-experimental:dev'
compileOnly("thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev")
compileOnly("curse.maven:computercraft-67504:2269339")
devOnlyNonPublishable 'com.github.GTNewHorizons:waila:1.8.2:dev'
devOnlyNonPublishable 'com.github.GTNewHorizons:NotEnoughItems:2.6.51-GTNH:dev'
devOnlyNonPublishable 'com.github.GTNewHorizons:OpenComputers:1.10.27-GTNH:dev'
devOnlyNonPublishable 'net.industrial-craft:industrialcraft-2:2.2.828-experimental:dev'
devOnlyNonPublishable ("com.github.GTNewHorizons:GT5-Unofficial:5.09.51.00:dev")
devOnlyNonPublishable ("thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev")
devOnlyNonPublishable ("curse.maven:computercraft-67504:2269339")
}
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
2 changes: 1 addition & 1 deletion settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ pluginManagement {
}

plugins {
id 'com.gtnewhorizons.gtnhsettingsconvention' version '1.0.27'
id 'com.gtnewhorizons.gtnhsettingsconvention' version '1.0.30'
}


Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ private ModCompatibility() {}
public static boolean OpenComputersLoaded = false;
public static boolean ComputercraftLoaded = false;
public static boolean IC2Loaded = false;
public static boolean GTLoaded = false;
private static Logger logger;

public static void checkForMods() {
Expand Down Expand Up @@ -55,6 +56,13 @@ public static void checkForMods() {
logger.info("Enabling LUA integration. (Found OpenComputers/ComputerCraft)");
}
IC2Loaded = Loader.isModLoaded("IC2");
if (IC2Loaded) {
logger.info("I'm not a doctor, but I think you have a case of IC2. (Found IC2)");
}
GTLoaded = Loader.isModLoaded("gregtech");
if (GTLoaded) {
logger.info("Oh you like doing things the hard way? (Found Gregtech)");
}
}

private static void addVersionCheckerInfo() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.network.Packet;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.common.util.ForgeDirection;

import cofh.api.energy.EnergyStorage;
Expand All @@ -27,9 +25,7 @@
import dan200.computercraft.api.lua.LuaException;
import dan200.computercraft.api.peripheral.IComputerAccess;
import dan200.computercraft.api.peripheral.IPeripheral;
import ic2.api.energy.event.EnergyTileLoadEvent;
import ic2.api.energy.event.EnergyTileUnloadEvent;
import ic2.api.energy.tile.IEnergySink;
import gregtech.api.interfaces.tileentity.IEnergyConnected;
import li.cil.oc.api.machine.Arguments;
import li.cil.oc.api.machine.Callback;
import li.cil.oc.api.machine.Context;
Expand All @@ -52,10 +48,10 @@
@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers"),
@Optional.Interface(iface = "thaumcraft.api.aspects.IAspectContainer", modid = "Thaumcraft"),
@Optional.Interface(iface = "thaumcraft.api.aspects.IEssentiaTransport", modid = "Thaumcraft"),
@Optional.Interface(iface = "ic2.api.energy.tile.IEnergySink", modid = "IC2") })
@Optional.Interface(iface = "gregtech.api.interfaces.tileentity.IEnergyConnected", modid = "gregtech") })

public abstract class TurretBase extends TileEntityContainer implements IEnergyHandler, SimpleComponent,
ISidedInventory, IEssentiaTransport, IAspectContainer, IPeripheral, IEnergySink {
ISidedInventory, IEssentiaTransport, IAspectContainer, IPeripheral, IEnergyConnected {

public int trustedPlayerIndex = 0;
public ItemStack camoStack;
Expand Down Expand Up @@ -140,44 +136,6 @@ private static void updateRedstoneReactor(TurretBase base) {
}
}

@Optional.Method(modid = "IC2")
@Override
public double injectEnergy(ForgeDirection forgeDirection, double v, double v1) {
storageEU += v;
return 0.0D;
}

@Optional.Method(modid = "IC2")
@Override
public int getSinkTier() {
return Integer.MAX_VALUE;
}

@Optional.Method(modid = "IC2")
@Override
public double getDemandedEnergy() {
return Math.max(4000D - storageEU, 0.0D);
}

@Optional.Method(modid = "IC2")
@Override
public boolean acceptsEnergyFrom(TileEntity tileEntity, ForgeDirection forgeDirection) {
return true;
}

@Optional.Method(modid = "IC2")
protected void addToIc2EnergyNetwork() {
if (!worldObj.isRemote) {
EnergyTileLoadEvent event = new EnergyTileLoadEvent(this);
MinecraftForge.EVENT_BUS.post(event);
}
}

@Optional.Method(modid = "IC2")
protected void removeFromIc2EnergyNetwork() {
MinecraftForge.EVENT_BUS.post(new EnergyTileUnloadEvent(this));
}

@Override
public void invalidate() {
super.invalidate();
Expand All @@ -186,11 +144,7 @@ public void invalidate() {

@Override
public void onChunkUnload() {
if (wasAddedToEnergyNet && ModCompatibility.IC2Loaded) {
removeFromIc2EnergyNetwork();

wasAddedToEnergyNet = false;
}
}

private int getMaxEnergyStorageWithExtenders() {
Expand Down Expand Up @@ -530,13 +484,43 @@ private int drawEssentia() {
return 0;
}

@Optional.Method(modid = "gregtech")
@Override
public void updateEntity() {
if (ModCompatibility.IC2Loaded && ConfigHandler.EUSupport && !wasAddedToEnergyNet && !worldObj.isRemote) {
addToIc2EnergyNetwork();
wasAddedToEnergyNet = true;
public long injectEnergyUnits(ForgeDirection side, long aVoltage, long aAmperage) {
if (storageEU < 40000 * getBaseTier()) {
storageEU += aVoltage * aAmperage;
markDirty();
return aAmperage;
}
return 0;
}

@Optional.Method(modid = "gregtech")
@Override
public boolean inputEnergyFrom(ForgeDirection side) {
return storageEU < 40000 * getBaseTier();
}

@Optional.Method(modid = "gregtech")
@Override
public boolean outputsEnergyTo(ForgeDirection side) {
return false;
}

@Optional.Method(modid = "gregtech")
@Override
public byte getColorization() {
return -1;
}

@Optional.Method(modid = "gregtech")
@Override
public byte setColorization(byte aColor) {
return -1;
}

@Override
public void updateEntity() {
ticks++;
if (!worldObj.isRemote && ticks % 5 == 0) {

Expand Down Expand Up @@ -568,9 +552,7 @@ public void updateEntity() {
}
}

if (ModCompatibility.IC2Loaded && ConfigHandler.EUSupport
&& storage.getMaxEnergyStored() != storage.getEnergyStored()
&& storageEU > 0) {
if (ConfigHandler.EUSupport && storage.getMaxEnergyStored() != storage.getEnergyStored() && storageEU > 0) {
int energyToAdd = MathUtil.truncateDoubleToInt(
Math.min(
storage.getMaxEnergyStored() - storage.getEnergyStored(),
Expand All @@ -581,7 +563,6 @@ public void updateEntity() {
}

if (ticks == 20) {

// General
ticks = 0;
updateRedstoneReactor(this);
Expand Down

0 comments on commit 1129b8f

Please sign in to comment.