Fix FMP compatibility (#444)

Co-authored-by: UltraProdigy <187078471+UltraProdigy@users.noreply.github.com>
This commit is contained in:
Kogepan229andUltraProdigy authored and GitHub committed 2026-06-12 15:44:33 -04:00
1 parent 208e4d66d9
commit 3b67b77572
8 files changed
+33 -38

No files matched your search

+1 -1
View File
@@ -35,7 +35,7 @@
*/
dependencies {
api('com.github.GTNewHorizons:NotEnoughItems:2.8.100-GTNH:dev')
api('com.github.GTNewHorizons:Applied-Energistics-2-Unofficial:rv3-beta-971-GTNH:dev')
api('com.github.GTNewHorizons:Applied-Energistics-2-Unofficial:rv3-beta-982-GTNH:dev')
api('com.github.GTNewHorizons:waila:1.19.29:dev')
api("com.github.GTNewHorizons:GTNHLib:0.11.4:dev")
@@ -13,7 +13,7 @@ import com.glodblock.github.util.DualityFluidInterface;
import com.glodblock.github.util.NameConst;
import com.glodblock.github.util.Util;
import appeng.api.parts.IPartHost;
import appeng.util.Platform;
import li.cil.oc.api.driver.EnvironmentProvider;
import li.cil.oc.api.driver.NamedBlock;
import li.cil.oc.api.driver.SidedBlock;
@@ -104,20 +104,19 @@ public class DriverDualFluidInterface implements SidedBlock {
if (te instanceof TileFluidInterface) {
return true;
}
if (te instanceof IPartHost) {
return ((IPartHost) te).getPart(face) instanceof PartFluidInterface;
}
return Platform.getPartFromTE(te, face) instanceof PartFluidInterface;
}
return false;
}
private static DualityFluidInterface getInterface(TileEntity te, ForgeDirection face) {
if (te != null) {
if (te instanceof TileFluidInterface) {
return ((TileFluidInterface) te).getDualityFluid();
if (te instanceof TileFluidInterface tile) {
return tile.getDualityFluid();
}
if (te instanceof IPartHost && ((IPartHost) te).getPart(face) instanceof PartFluidInterface) {
return ((PartFluidInterface) ((IPartHost) te).getPart(face)).getDualityFluid();
if (Platform.getPartFromTE(te, face) instanceof PartFluidInterface part) {
return part.getDualityFluid();
}
}
return null;
@@ -4,6 +4,8 @@ import com.glodblock.github.common.tile.TileCertusQuartzTank;
import com.glodblock.github.util.ModAndClassUtil;
import appeng.api.parts.IPartHost;
import appeng.integration.IntegrationRegistry;
import appeng.integration.IntegrationType;
import appeng.tile.AEBaseTile;
import appeng.util.Platform;
import codechicken.nei.guihook.GuiContainerManager;
@@ -19,8 +21,12 @@ public class WailaInit {
public static void register(final IWailaRegistrar registrar) {
final IWailaDataProvider part = new PartWailaDataProvider();
registrar.registerBodyProvider(part, IPartHost.class);
registrar.registerNBTProvider(part, IPartHost.class);
registerPartProvider(registrar, part, IPartHost.class);
if (IntegrationRegistry.INSTANCE.isEnabled(IntegrationType.FMP)) {
try {
registerPartProvider(registrar, part, Class.forName("codechicken.multipart.TileMultipart"));
} catch (final ClassNotFoundException ignored) {}
}
if (Platform.isClient()) GuiContainerManager.addTooltipHandler(new FCTooltipHandlerWaila());
final IWailaDataProvider tile = new TileWailaDataProvider();
@@ -32,4 +38,10 @@ public class WailaInit {
registrar.registerBodyProvider(certusQuartzTank, TileCertusQuartzTank.class);
}
}
private static void registerPartProvider(final IWailaRegistrar registrar, final IWailaDataProvider provider,
final Class<?> tileClass) {
registrar.registerBodyProvider(provider, tileClass);
registrar.registerNBTProvider(provider, tileClass);
}
}
@@ -3,13 +3,12 @@ package com.glodblock.github.inventory.external;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.util.ForgeDirection;
import com.glodblock.github.util.Util;
import appeng.api.implementations.tiles.ITileStorageMonitorable;
import appeng.api.networking.security.BaseActionSource;
import appeng.api.storage.IExternalStorageHandler;
import appeng.api.storage.IMEInventory;
import appeng.api.storage.StorageChannel;
import appeng.util.Platform;
public class AEFluidInterfaceHandler implements IExternalStorageHandler {
@@ -18,7 +17,7 @@ public class AEFluidInterfaceHandler implements IExternalStorageHandler {
if (channel == StorageChannel.FLUIDS) {
if (te instanceof ITileStorageMonitorable) {
return true;
} else return Util.getPart(te, d.getOpposite()) instanceof ITileStorageMonitorable;
} else return Platform.getPartFromTE(te, d.getOpposite()) instanceof ITileStorageMonitorable;
}
return false;
}
@@ -30,8 +29,8 @@ public class AEFluidInterfaceHandler implements IExternalStorageHandler {
if (te instanceof ITileStorageMonitorable
&& ((ITileStorageMonitorable) te).getMonitorable(d, src) != null) {
return ((ITileStorageMonitorable) te).getMonitorable(d, src).getFluidInventory();
} else if (Util.getPart(te, d.getOpposite()) instanceof ITileStorageMonitorable part
&& ((ITileStorageMonitorable) Util.getPart(te, d.getOpposite())).getMonitorable(d, src) != null) {
} else if (Platform.getPartFromTE(te, d.getOpposite()) instanceof ITileStorageMonitorable part
&& part.getMonitorable(d, src) != null) {
return part.getMonitorable(d, src).getFluidInventory();
}
}
@@ -6,7 +6,7 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.util.ForgeDirection;
import appeng.api.parts.IPart;
import appeng.api.parts.IPartHost;
import appeng.util.Platform;
public abstract class PartGuiFactory<T> extends TileGuiFactory<T> {
@@ -17,12 +17,11 @@ public abstract class PartGuiFactory<T> extends TileGuiFactory<T> {
@Nullable
@Override
protected T getInventory(TileEntity tile, ForgeDirection face) {
if (tile instanceof IPartHost) {
IPart part = ((IPartHost) tile).getPart(face);
IPart part = Platform.getPartFromTE(tile, face);
if (invClass.isInstance(part)) {
return invClass.cast(part);
}
}
return null;
}
}
@@ -6,7 +6,7 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.util.ForgeDirection;
import appeng.api.parts.IPart;
import appeng.api.parts.IPartHost;
import appeng.util.Platform;
public abstract class TileOrPartGuiFactory<T> extends TileGuiFactory<T> {
@@ -17,12 +17,11 @@ public abstract class TileOrPartGuiFactory<T> extends TileGuiFactory<T> {
@Nullable
@Override
protected T getInventory(TileEntity tile, ForgeDirection face) {
if (tile instanceof IPartHost) {
IPart part = ((IPartHost) tile).getPart(face);
IPart part = Platform.getPartFromTE(tile, face);
if (invClass.isInstance(part)) {
return invClass.cast(part);
}
}
return super.getInventory(tile, face);
}
}
@@ -12,8 +12,6 @@ import com.glodblock.github.inventory.gui.GuiType;
import com.glodblock.github.util.BlockPos;
import appeng.api.parts.ILevelEmitter;
import appeng.api.parts.IPart;
import appeng.api.parts.IPartHost;
import appeng.container.AEBaseContainer;
import appeng.container.PrimaryGui;
import appeng.container.interfaces.IContainerSubGui;
@@ -125,16 +123,13 @@ public class CPacketLevelTerminalCommands implements IMessage {
TileEntity tile = DimensionManager.getWorld(message.dim)
.getTileEntity(message.x, message.y, message.z);
if (tile instanceof IPartHost host) {
IPart part = host.getPart(message.side);
if (part instanceof ILevelEmitter) {
if (Platform.getPartFromTE(tile, message.side) instanceof ILevelEmitter) {
InventoryHandler.openGui(
player,
tile.getWorldObj(),
new BlockPos(tile),
message.side,
GuiType.LEVEL_EMITTER_PROXY);
}
} else {
InventoryHandler.openGui(
player,
@@ -52,7 +52,6 @@ import appeng.api.util.DimensionalCoord;
import appeng.container.AEBaseContainer;
import appeng.items.tools.powered.ToolWirelessTerminal;
import appeng.me.storage.NullInventory;
import appeng.tile.networking.TileCableBus;
import appeng.util.Platform;
import appeng.util.item.AEFluidStack;
import appeng.util.item.AEItemStack;
@@ -345,13 +344,6 @@ public final class Util {
return null;
}
public static IPart getPart(Object te, ForgeDirection face) {
if (te instanceof TileCableBus) {
return ((TileCableBus) te).getPart(face);
}
return null;
}
public static void writeFluidMapToBuf(Map<Integer, IAEFluidStack> list, ByteBuf buf) throws IOException {
buf.writeInt(list.size());
for (Map.Entry<Integer, IAEFluidStack> fs : list.entrySet()) {