mirror of
https://github.com/GTNewHorizons/Applied-Energistics-2-Unofficial.git
synced 2026-10-25 20:22:23 +00:00
Fix highlight interface was not working sometimes (#1022)
This commit is contained in:
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);
|
||||
|
||||
Reference in new issue
Block a user