From 11780700af38769e350b4864c511caa6b09abc9c Mon Sep 17 00:00:00 2001 From: daxsc <32306994+daxsc@users.noreply.github.com> Date: Sat, 10 Oct 2026 18:58:50 +0200 Subject: [PATCH 1/2] add DTPF driver --- .../oc/integration/gregtech/DriverDTPF.java | 77 +++++++++++++++++++ .../oc/integration/gregtech/ModGregtech.scala | 4 +- 2 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 src/main/scala/li/cil/oc/integration/gregtech/DriverDTPF.java diff --git a/src/main/scala/li/cil/oc/integration/gregtech/DriverDTPF.java b/src/main/scala/li/cil/oc/integration/gregtech/DriverDTPF.java new file mode 100644 index 0000000000..706cec009f --- /dev/null +++ b/src/main/scala/li/cil/oc/integration/gregtech/DriverDTPF.java @@ -0,0 +1,77 @@ +package li.cil.oc.integration.gregtech; + +import gregtech.api.interfaces.metatileentity.IMetaTileEntity; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import li.cil.oc.api.driver.NamedBlock; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.ManagedEnvironment; +import li.cil.oc.api.prefab.DriverSidedTileEntity; +import li.cil.oc.integration.ManagedTileEntityEnvironment; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; +import gregtech.common.tileentities.machines.multi.MTEPlasmaForge; + +final public class DriverDTPF extends DriverSidedTileEntity { + + @Override + public Class getTileEntityClass() { + return IGregTechTileEntity.class; + } + + @Override + public boolean worksWith(World world, int x, int y, int z, ForgeDirection side) { + TileEntity te = world.getTileEntity(x, y, z); + if (!(te instanceof IGregTechTileEntity)) return false; + IMetaTileEntity mte = ((IGregTechTileEntity) te).getMetaTileEntity(); + return mte instanceof MTEPlasmaForge; + } + + @Override + public ManagedEnvironment createEnvironment(World world, int x, int y, int z, ForgeDirection side) { + TileEntity te = world.getTileEntity(x, y, z); + MTEPlasmaForge mte = (MTEPlasmaForge) ((IGregTechTileEntity) te).getMetaTileEntity(); + return new Environment(mte); + } + + public static final class Environment extends ManagedTileEntityEnvironment implements NamedBlock { + + public Environment(MTEPlasmaForge mte) { + super(mte, "dtpf"); + } + + @Override + public String preferredName() { + return "dtpf"; + } + + @Override + public int priority() { + return 10; + } + + @Callback(doc = "function():bool -- Returns whether this block has convergence enabled.") + public Object[] isConvergenceEnabled(Context context, Arguments args) { + return new Object[] { tileEntity.getConvergenceStatus() }; + } + + @Callback(doc = "function(enabled:bool) -- Sets whether this block has convergence enabled.") + public Object[] setConvergenceEnabled(Context context, Arguments args) { + tileEntity.setConvergenceStatus(args.checkBoolean(0)); + return null; + } + + @Callback(doc = "function():number -- Returns the catalyst tier this block uses when convergence is enabled.") + public Object[] getConvergenceCatalystType(Context context, Arguments args) { + return new Object[] { tileEntity.getCatalystTypeForRecipesWithoutCatalyst() }; + } + + @Callback(doc = "function(tier:number) -- Sets catalyst tier used when convergence is enabled.") + public Object[] setConvergenceCatalystType(Context context, Arguments args) { + tileEntity.setCatalystTypeForRecipesWithoutCatalyst(args.checkInteger(0)); + return null; + } + } +} diff --git a/src/main/scala/li/cil/oc/integration/gregtech/ModGregtech.scala b/src/main/scala/li/cil/oc/integration/gregtech/ModGregtech.scala index 174bdbdfbc..91b7833626 100644 --- a/src/main/scala/li/cil/oc/integration/gregtech/ModGregtech.scala +++ b/src/main/scala/li/cil/oc/integration/gregtech/ModGregtech.scala @@ -23,6 +23,8 @@ object ModGregtech extends ModProxy { Driver.add(new DriverBECStorage) Driver.add(new DriverBECDiode) + Driver.add(new DriverDTPF) + RecipeHandler.init() } -} \ No newline at end of file +} From 203b6d10cfc70093c89794f28c64df64914667b9 Mon Sep 17 00:00:00 2001 From: daxsc <32306994+daxsc@users.noreply.github.com> Date: Sun, 18 Oct 2026 18:38:00 +0200 Subject: [PATCH 2/2] add clamp to setConvergenceCatalystType --- src/main/scala/li/cil/oc/integration/gregtech/DriverDTPF.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/scala/li/cil/oc/integration/gregtech/DriverDTPF.java b/src/main/scala/li/cil/oc/integration/gregtech/DriverDTPF.java index 706cec009f..546217b93d 100644 --- a/src/main/scala/li/cil/oc/integration/gregtech/DriverDTPF.java +++ b/src/main/scala/li/cil/oc/integration/gregtech/DriverDTPF.java @@ -1,5 +1,6 @@ package li.cil.oc.integration.gregtech; +import bartworks.util.MathUtils; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import li.cil.oc.api.driver.NamedBlock; @@ -70,7 +71,7 @@ public Object[] getConvergenceCatalystType(Context context, Arguments args) { @Callback(doc = "function(tier:number) -- Sets catalyst tier used when convergence is enabled.") public Object[] setConvergenceCatalystType(Context context, Arguments args) { - tileEntity.setCatalystTypeForRecipesWithoutCatalyst(args.checkInteger(0)); + tileEntity.setCatalystTypeForRecipesWithoutCatalyst(MathUtils.clamp(args.checkInteger(0), 1, 5)); return null; } }