package zmaster587.advancedRocketry.network; import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.world.World; import net.minecraft.world.chunk.Chunk; import net.minecraftforge.common.DimensionManager; import zmaster587.advancedRocketry.AdvancedRocketry; import zmaster587.libVulpes.network.BasePacket; import zmaster587.libVulpes.util.BlockPosition; public class PacketBiomeIDChange extends BasePacket { Chunk chunk; int worldId, xPos, zPos; byte array[]; BlockPosition pos; public PacketBiomeIDChange() { array = new byte[256]; pos = new BlockPosition(0, 0, 0); } public PacketBiomeIDChange(Chunk chunk, World world, BlockPosition pos) { this.chunk = chunk; this.pos = pos; worldId = world.provider.dimensionId; } @Override public void write(ByteBuf out) { out.writeInt(worldId); out.writeInt(chunk.xPosition); out.writeInt(chunk.zPosition); out.writeInt(pos.x); out.writeShort(pos.y); out.writeInt(pos.z); out.writeBytes(chunk.getBiomeArray()); } @Override public void readClient(ByteBuf in) { worldId = in.readInt(); xPos = in.readInt(); zPos = in.readInt(); pos.x = in.readInt(); pos.y = in.readShort(); pos.z = in.readInt(); in.readBytes(array); } @Override public void read(ByteBuf in) { // One way transmission } @Override public void executeClient(EntityPlayer thePlayer) { if(thePlayer.worldObj.provider.dimensionId == worldId) { chunk = thePlayer.worldObj.getChunkFromChunkCoords(xPos, zPos); if(chunk.isChunkLoaded) { chunk.setBiomeArray(array); AdvancedRocketry.proxy.spawnParticle("smallLazer", thePlayer.worldObj, pos.x, pos.y, pos.z, 0,0,0); } } } @Override public void executeServer(EntityPlayerMP player) { // How about no } }