Fix highlight interface was not working sometimes (#1022)

This commit is contained in:
lc-1337 authored and GitHub committed 2026-01-20 14:46:15 +00:00
1 parent 6d16c9444e
commit da1556be7e
1 file changed
+29 -13
@@ -117,10 +117,11 @@ import appeng.crafting.CraftingLink;
import appeng.crafting.CraftingWatcher;
import appeng.crafting.MECraftingInventory;
import appeng.helpers.DualityInterface;
import appeng.helpers.ICustomNameObject;
import appeng.hooks.CraftingNotificationManager;
import appeng.me.cache.CraftingGridCache;
import appeng.me.cluster.IAECluster;
import appeng.tile.AEBaseTile;
import appeng.me.helpers.IGridProxyable;
import appeng.tile.crafting.TileCraftingMonitorTile;
import appeng.tile.crafting.TileCraftingTile;
import appeng.tile.misc.TileInterface;
@@ -1412,12 +1413,33 @@ public final class CraftingCPUCluster implements IAECluster, ICraftingCPU {
List<ICraftingMedium> craftingProviders = cache.getMediums(t.getKey());
List<NamedDimensionalCoord> dimensionalCoords = new ArrayList<>();
for (ICraftingMedium craftingProvider : craftingProviders) {
final TileEntity tile = this.getTile(craftingProvider);
if (tile instanceof TileInterface tileInterface) {
final String dispName = translateFromNetwork(
tileInterface.getInterfaceDuality().getTermName());
dimensionalCoords.add(new NamedDimensionalCoord(tile, dispName));
final String dispName;
final DimensionalCoord cord;
if (craftingProvider instanceof ICustomNameObject cno && cno.hasCustomName()) {
dispName = cno.getCustomName();
} else {
if (craftingProvider instanceof DualityInterface di) {
dispName = di.getTermName();
} else if (craftingProvider instanceof IInterfaceViewable iv) {
dispName = iv.getName();
} else {
final TileEntity tile = this.getTile(craftingProvider);
if (tile == null) continue;
dispName = tile.getBlockType().getUnlocalizedName();
}
}
if (craftingProvider instanceof IGridProxyable igp) {
cord = igp.getLocation();
} else {
final TileEntity tile = this.getTile(craftingProvider);
if (tile == null) continue;
cord = new DimensionalCoord(tile);
}
dimensionalCoords
.add(new NamedDimensionalCoord(cord, translateFromNetwork(dispName)));
}
this.providers.put(aes, dimensionalCoords);
}
@@ -1759,13 +1781,7 @@ public final class CraftingCPUCluster implements IAECluster, ICraftingCPU {
}
private TileEntity getTile(ICraftingMedium craftingProvider) {
if (craftingProvider instanceof DualityInterface) {
return ((DualityInterface) craftingProvider).getHost().getTile();
} else if (craftingProvider instanceof AEBaseTile) {
return ((AEBaseTile) craftingProvider).getTile();
} else if (craftingProvider instanceof IInterfaceViewable interfaceViewable) {
return interfaceViewable.getTileEntity();
}
if (craftingProvider instanceof TileEntity te) return te;
try {
Method method = craftingProvider.getClass().getMethod("getTile");
return (TileEntity) method.invoke(craftingProvider);