Applied-Energistics-2-tiler.../src/main/java/appeng/core/sync/packets/PacketUpdateAssemblerGuiPag...

77 lines
2.4 KiB
Java

package appeng.core.sync.packets;
import appeng.client.gui.implementations.GuiAssemblerMB;
import appeng.container.implementations.ContainerAssembler;
import appeng.core.sync.AppEngPacket;
import appeng.core.sync.network.INetworkInfo;
import appeng.core.sync.network.NetworkHandler;
import appeng.me.cluster.implementations.AssemblerCluster;
import appeng.tile.legacy.TileAssembler;
import cpw.mods.fml.client.FMLClientHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
public class PacketUpdateAssemblerGuiPageNum extends AppEngPacket {
int offset;
int size;
// automatic.
public PacketUpdateAssemblerGuiPageNum(ByteBuf buf) {
this.offset = buf.readInt();
this.size = buf.readInt();
}
// api
public PacketUpdateAssemblerGuiPageNum(int offset, int size) {
ByteBuf buf = Unpooled.buffer();
buf.writeInt(this.getPacketID());
buf.writeInt(this.offset = offset);
buf.writeInt(this.size = size);
this.configureWrite(buf);
}
@Override
@SideOnly(Side.CLIENT)
public void
clientPacketData(INetworkInfo network, AppEngPacket packet, EntityPlayer player) {
GuiScreen cs = FMLClientHandler.instance().getClient().currentScreen;
if (cs instanceof GuiAssemblerMB) {
GuiAssemblerMB ga = (GuiAssemblerMB) cs;
ga.pageNumber = this.offset;
ga.maxPages = this.size;
}
}
@Override
public void
serverPacketData(INetworkInfo manager, AppEngPacket packet, EntityPlayer player) {
if (player.openContainer instanceof ContainerAssembler) {
ContainerAssembler ca = (ContainerAssembler) player.openContainer;
TileAssembler ta = (TileAssembler) ca.getTileEntity();
AssemblerCluster ac = (AssemblerCluster) ta.getCluster();
int offset = -1;
for (int i = 0; i < ac.assemblers.size(); i++) {
if (ac.assemblers.get(i) == ta) {
offset = i;
break;
}
}
NetworkHandler.instance.sendTo(
new PacketUpdateAssemblerGuiPageNum(offset, ac.assemblers.size()),
(EntityPlayerMP) player
);
}
}
}