Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updates for powering Turret Bases, no more IC2, but GT5 #6

Merged
merged 2 commits into from
Dec 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading