From 43d3a2c1c075ec6a1fa9f790301bf2e00e66be79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Salom=C3=A3o?= Date: Sun, 23 May 2021 17:46:13 -0300 Subject: [PATCH] add dimension info to the interface highlighting implements #20 --- .../implementations/GuiInterfaceTerminal.java | 18 +++++++++++++++--- .../ContainerInterfaceTerminal.java | 5 ++++- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/main/java/appeng/client/gui/implementations/GuiInterfaceTerminal.java b/src/main/java/appeng/client/gui/implementations/GuiInterfaceTerminal.java index 03ea7e1ea..659c1d7b1 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiInterfaceTerminal.java +++ b/src/main/java/appeng/client/gui/implementations/GuiInterfaceTerminal.java @@ -25,6 +25,7 @@ import java.util.*; import appeng.api.config.ActionItems; import appeng.api.config.Settings; import appeng.client.gui.widgets.GuiImgButton; +import appeng.core.worlddata.IWorldPlayerMapping; import appeng.util.BlockPosUtils; import com.google.common.collect.HashMultimap; @@ -49,6 +50,7 @@ import appeng.util.Platform; import net.minecraft.nbt.NBTUtil; import net.minecraft.util.math.BlockPos; import net.minecraft.util.text.TextComponentString; +import net.minecraftforge.common.DimensionManager; import org.lwjgl.input.Mouse; @@ -79,6 +81,7 @@ public class GuiInterfaceTerminal extends AEBaseGui private PartInterfaceTerminal partInterfaceTerminal; private GuiButton guiButtonHide; private GuiButton guiButtonNextAssembler; + private HashMap dimHashMap = new HashMap<>(); public GuiInterfaceTerminal( final InventoryPlayer inventoryPlayer, final PartInterfaceTerminal te ) { @@ -217,9 +220,17 @@ public class GuiInterfaceTerminal extends AEBaseGui { BlockPos blockPos = blockPosHashMap.get( guiButtonHashMap.get( this.selectedButton ) ); BlockPos blockPos2 = mc.player.getPosition(); - int dimension = mc.world.provider.getDimension(); - hilightBlock( blockPos, System.currentTimeMillis() + 500 * BlockPosUtils.getDistance(blockPos, blockPos2), dimension ); - mc.player.sendStatusMessage( new TextComponentString( "The interface is now highlighted at " + "X: " + blockPos.getX() + " Y: " + blockPos.getY() + " Z: " + blockPos.getZ() ), false ); + int playerDim = mc.world.provider.getDimension(); + int interfaceDim = dimHashMap.get( guiButtonHashMap.get( this.selectedButton ) ); + if( playerDim != interfaceDim ) + { + mc.player.sendStatusMessage( new TextComponentString( "Interface located at dimension: " + interfaceDim + " [" + DimensionManager.getWorld( interfaceDim ).provider.getDimensionType().getName() + "] and cant be highlighted" ), false ); + } + else + { + hilightBlock( blockPos, System.currentTimeMillis() + 500 * BlockPosUtils.getDistance( blockPos, blockPos2 ), playerDim ); + mc.player.sendStatusMessage( new TextComponentString( "The interface is now highlighted at " + "X: " + blockPos.getX() + " Y: " + blockPos.getY() + " Z: " + blockPos.getZ() ), false ); + } mc.player.closeScreen(); } @@ -325,6 +336,7 @@ public class GuiInterfaceTerminal extends AEBaseGui final NBTTagCompound invData = in.getCompoundTag( key ); final ClientDCInternalInv current = this.getById( id, invData.getLong( "sortBy" ), invData.getString( "un" ) ); blockPosHashMap.put( current, NBTUtil.getPosFromTag( invData.getCompoundTag( "pos" )) ); + dimHashMap.put( current, invData.getInteger( "dim" )); for( int x = 0; x < current.getInventory().getSlots(); x++ ) { diff --git a/src/main/java/appeng/container/implementations/ContainerInterfaceTerminal.java b/src/main/java/appeng/container/implementations/ContainerInterfaceTerminal.java index 3c2b45f85..1e7b73956 100644 --- a/src/main/java/appeng/container/implementations/ContainerInterfaceTerminal.java +++ b/src/main/java/appeng/container/implementations/ContainerInterfaceTerminal.java @@ -403,7 +403,8 @@ public final class ContainerInterfaceTerminal extends AEBaseContainer { tag.setLong( "sortBy", inv.sortBy ); tag.setString( "un", inv.unlocalizedName ); - tag.setTag("pos", NBTUtil.createPosTag( inv.pos ) ); + tag.setTag( "pos", NBTUtil.createPosTag( inv.pos ) ); + tag.setInteger( "dim", inv.dim ); } for( int x = 0; x < length; x++ ) @@ -435,6 +436,7 @@ public final class ContainerInterfaceTerminal extends AEBaseContainer private final IItemHandler client; private final IItemHandler server; private final BlockPos pos; + private final int dim; public InvTracker( final DualityInterface dual, final IItemHandler patterns, final String unlocalizedName ) { @@ -443,6 +445,7 @@ public final class ContainerInterfaceTerminal extends AEBaseContainer this.unlocalizedName = unlocalizedName; this.sortBy = dual.getSortValue(); this.pos = dual.getLocation().getPos(); + this.dim = dual.getLocation().getWorld().provider.getDimension(); } }