From b9b8794c62d74f89d1ab1717f22430fb4016954b Mon Sep 17 00:00:00 2001 From: Timo Ley Date: Sat, 10 Dec 2022 22:30:46 +0100 Subject: [PATCH] fix: biometric identifier --- build.gradle | 2 +- .../java/mffs/base/TileEntityInventory.java | 10 ++++++++++ src/main/java/mffs/block/BlockForceField.java | 17 ++++++++++++----- .../java/mffs/gui/GuiBiometricIdentifier.java | 9 +++++++-- 4 files changed, 30 insertions(+), 8 deletions(-) diff --git a/build.gradle b/build.gradle index 4a7295a..0807773 100644 --- a/build.gradle +++ b/build.gradle @@ -28,7 +28,7 @@ sourceSets { api {} } -version = "1.0.2" +version = "1.0.3" group = "universalelectricity" archivesBaseName = "mffs" diff --git a/src/main/java/mffs/base/TileEntityInventory.java b/src/main/java/mffs/base/TileEntityInventory.java index cc6a963..2e3ee52 100644 --- a/src/main/java/mffs/base/TileEntityInventory.java +++ b/src/main/java/mffs/base/TileEntityInventory.java @@ -15,6 +15,7 @@ import net.minecraft.nbt.NBTBase; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; import net.minecraft.network.play.server.S35PacketUpdateTileEntity; import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntityChest; @@ -42,6 +43,15 @@ public abstract class TileEntityInventory // return objects; // } + @Override + public Packet getDescriptionPacket() { + NBTTagCompound nbt = new NBTTagCompound(); + + this.writeToNBT(nbt); + + return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, this.getBlockMetadata(), nbt); + } + @Override public void onDataPacket(NetworkManager arg0, S35PacketUpdateTileEntity arg1) { diff --git a/src/main/java/mffs/block/BlockForceField.java b/src/main/java/mffs/block/BlockForceField.java index 38ea235..1d0d60c 100644 --- a/src/main/java/mffs/block/BlockForceField.java +++ b/src/main/java/mffs/block/BlockForceField.java @@ -18,6 +18,7 @@ import mffs.tileentity.TileEntityForceField; import micdoodle8.mods.galacticraft.api.block.IPartialSealableBlock; import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; @@ -114,14 +115,20 @@ public class BlockForceField public AxisAlignedBB getCollisionBoundingBoxFromPool(final World world, final int x, final int y, final int z) { - if (this.getProjector((IBlockAccess)world, x, y, z) != null) { + if (world.isRemote) { + EntityPlayer player = Minecraft.getMinecraft().thePlayer; + if (player.isSneaking()) { + return null; + } + } + if (this.getProjector((IBlockAccess)world, x, y, z) != null && !world.isRemote) { final IBiometricIdentifier BiometricIdentifier = this.getProjector((IBlockAccess)world, x, y, z) .getBiometricIdentifier(); final List entities = world.getEntitiesWithinAABB( EntityPlayer.class, AxisAlignedBB.getBoundingBox( - (double)x, (double)y, (double)z, - (double)(x + 1), y + 0.9, (double)(z + 1))); + (double)(x), (double)y, (double)(z), + (double)(x + 1), y + 1, (double)(z + 1))); for (final EntityPlayer entityPlayer : (List)entities) { if (entityPlayer != null && entityPlayer.isSneaking()) { if (entityPlayer.capabilities.isCreativeMode) { @@ -138,8 +145,8 @@ public class BlockForceField } final float f = 0.0625f; return AxisAlignedBB.getBoundingBox( - (double)(x + f), (double)(y + f), (double)(z + f), (double)(x + 1 - f), - (double)(y + 1 - f), (double)(z + 1 - f)); + (double)(x + f), (double)(y + f), (double)(z + f), (double)(x + 1 - f), + (double)(y + 1 - f), (double)(z + 1 - f)); } @Override diff --git a/src/main/java/mffs/gui/GuiBiometricIdentifier.java b/src/main/java/mffs/gui/GuiBiometricIdentifier.java index 5f49b6e..4aef142 100644 --- a/src/main/java/mffs/gui/GuiBiometricIdentifier.java +++ b/src/main/java/mffs/gui/GuiBiometricIdentifier.java @@ -23,6 +23,7 @@ public class GuiBiometricIdentifier extends GuiBase { final TileEntityBiometricIdentifier tileEntity) { super(new ContainerBiometricIdentifier(player, tileEntity), tileEntity); this.tileEntity = tileEntity; + tileEntity.canUpdate(); } @Override @@ -141,7 +142,11 @@ public class GuiBiometricIdentifier extends GuiBase { @Override protected void actionPerformed(final GuiButton guiButton) { - ModularForceFieldSystem.channel.sendToServer(new PacketTile( - PacketTile.Type.TOGGLE_MODE, new Vector3(this.tileEntity), new NBTTagCompound())); + super.actionPerformed(guiButton); + if (guiButton.id > 0) { + NBTTagCompound nbt = new NBTTagCompound(); + nbt.setInteger("buttonId", guiButton.id - 1); + ModularForceFieldSystem.channel.sendToServer(new PacketTile(PacketTile.Type.TOGGLE_MODE, new Vector3(this.tileEntity), nbt)); + } } }