Skip to content

Commit 75891f4

Browse files
authored
Fix #853: Make GUIs respect the block interaction range attribute (#879)
1 parent cb37728 commit 75891f4

File tree

3 files changed

+8
-14
lines changed

3 files changed

+8
-14
lines changed

src/main/java/aztech/modern_industrialization/blocks/forgehammer/ForgeHammerScreenHandler.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
*/
2424
package aztech.modern_industrialization.blocks.forgehammer;
2525

26+
import aztech.modern_industrialization.MIBlock;
2627
import aztech.modern_industrialization.MIRegistries;
2728
import aztech.modern_industrialization.items.ForgeTool;
2829
import aztech.modern_industrialization.thirdparty.fabrictransfer.api.item.ItemVariant;
@@ -335,7 +336,9 @@ public ItemStack quickMoveStack(Player player, int index) {
335336

336337
@Override
337338
public boolean stillValid(Player player) {
338-
return true;
339+
return this.context.evaluate((level, pos) -> {
340+
return level.getBlockState(pos).is(MIBlock.FORGE_HAMMER.asBlock()) && player.canInteractWithBlock(pos, 4.0);
341+
}, true);
339342
}
340343

341344
public void removed(Player player) {

src/main/java/aztech/modern_industrialization/machines/gui/MachineMenuServer.java

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@
2828
import io.netty.buffer.Unpooled;
2929
import java.util.ArrayList;
3030
import java.util.List;
31-
import net.minecraft.core.BlockPos;
3231
import net.minecraft.network.RegistryFriendlyByteBuf;
3332
import net.minecraft.server.level.ServerPlayer;
33+
import net.minecraft.world.Container;
3434
import net.minecraft.world.entity.player.Inventory;
3535
import net.minecraft.world.entity.player.Player;
3636

@@ -66,12 +66,7 @@ public void broadcastChanges() {
6666

6767
@Override
6868
public boolean stillValid(Player player) {
69-
BlockPos pos = blockEntity.getBlockPos();
70-
if (player.level().getBlockEntity(pos) != blockEntity) {
71-
return false;
72-
} else {
73-
return player.distanceToSqr(pos.getX() + 0.5D, pos.getY() + 0.5D, pos.getZ() + 0.5D) <= 64.0D;
74-
}
69+
return Container.stillValidBlockEntity(blockEntity, player);
7570
}
7671

7772
@Override

src/main/java/aztech/modern_industrialization/pipes/impl/PipeBlockEntity.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@
5353
import net.minecraft.server.level.ServerLevel;
5454
import net.minecraft.sounds.SoundSource;
5555
import net.minecraft.util.Tuple;
56+
import net.minecraft.world.Container;
5657
import net.minecraft.world.Containers;
5758
import net.minecraft.world.InteractionHand;
5859
import net.minecraft.world.entity.item.ItemEntity;
@@ -520,12 +521,7 @@ public void callMarkDirty() {
520521

521522
@Override
522523
public boolean isWithinUseDistance(Player player) {
523-
if (this.level.getBlockEntity(this.worldPosition) != this) {
524-
return false;
525-
} else {
526-
return player.distanceToSqr((double) this.worldPosition.getX() + 0.5D, (double) this.worldPosition.getY() + 0.5D,
527-
(double) this.worldPosition.getZ() + 0.5D) <= 64.0D;
528-
}
524+
return Container.stillValidBlockEntity(this, player);
529525
}
530526

531527
@Override

0 commit comments

Comments
 (0)