diff --git a/src/main/java/com/mrcrayfish/device/block/BlockLaptop.java b/src/main/java/com/mrcrayfish/device/block/BlockLaptop.java index db12062cf..955a24d36 100644 --- a/src/main/java/com/mrcrayfish/device/block/BlockLaptop.java +++ b/src/main/java/com/mrcrayfish/device/block/BlockLaptop.java @@ -2,9 +2,13 @@ import com.mrcrayfish.device.MrCrayfishDeviceMod; import com.mrcrayfish.device.core.Laptop; +import com.mrcrayfish.device.entity.EntitySeat; +import com.mrcrayfish.device.gui.GuiHandler; import com.mrcrayfish.device.init.DeviceItems; import com.mrcrayfish.device.object.Bounds; import com.mrcrayfish.device.tileentity.TileEntityLaptop; +import com.mrcrayfish.device.tileentity.TileEntityOfficeChair; +import com.mrcrayfish.device.util.SeatUtil; import com.mrcrayfish.device.util.TileEntityUtil; import net.minecraft.block.Block; import net.minecraft.block.BlockColored; @@ -25,9 +29,12 @@ import net.minecraft.util.text.TextComponentString; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.fml.client.config.GuiUtils; +import org.lwjgl.input.Keyboard; import javax.annotation.Nullable; import java.util.List; +import java.util.Objects; public class BlockLaptop extends BlockDevice implements ITileEntityProvider { @@ -102,8 +109,15 @@ public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, { laptop.openClose(); } - } - else + }else if(playerIn.isRiding()){ + if(worldIn.isRemote) { + if (!Keyboard.isKeyDown(Keyboard.KEY_LCONTROL) && laptop.isOpen()) { + playerIn.openGui(MrCrayfishDeviceMod.instance, Laptop.ID, worldIn, pos.getX(), pos.getY(), pos.getZ()); + } else { + laptop.openClose(); + } + } + }else { if(side == state.getValue(FACING).rotateYCCW()) { diff --git a/src/main/java/com/mrcrayfish/device/util/SeatUtil.java b/src/main/java/com/mrcrayfish/device/util/SeatUtil.java index f821116ff..1e662e697 100644 --- a/src/main/java/com/mrcrayfish/device/util/SeatUtil.java +++ b/src/main/java/com/mrcrayfish/device/util/SeatUtil.java @@ -15,20 +15,19 @@ public class SeatUtil { public static void createSeatAndSit(World worldIn, BlockPos pos, EntityPlayer playerIn, double yOffset) { - List seats = worldIn.getEntitiesWithinAABB(EntitySeat.class, new AxisAlignedBB(pos)); - if(!seats.isEmpty()) - { - EntitySeat seat = seats.get(0); - if(seat.getRidingEntity() == null) - { - playerIn.startRiding(seat); - } - } - else + if(getNearestSeat(worldIn, pos) == null) { EntitySeat seat = new EntitySeat(worldIn, pos, yOffset); worldIn.spawnEntity(seat); playerIn.startRiding(seat); } } + + public static EntitySeat getNearestSeat(World world, BlockPos pos){ + List seats = world.getEntitiesWithinAABB(EntitySeat.class, new AxisAlignedBB(pos)); + if(!seats.isEmpty()){ + return seats.get(0); + } + return null; + } }