001 package net.minecraft.network.packet; 002 003 import cpw.mods.fml.relauncher.Side; 004 import cpw.mods.fml.relauncher.SideOnly; 005 import java.io.DataInputStream; 006 import java.io.DataOutputStream; 007 import java.io.IOException; 008 import java.util.List; 009 import net.minecraft.entity.DataWatcher; 010 011 public class Packet40EntityMetadata extends Packet 012 { 013 public int entityId; 014 private List metadata; 015 016 public Packet40EntityMetadata() {} 017 018 public Packet40EntityMetadata(int par1, DataWatcher par2DataWatcher, boolean par3) 019 { 020 this.entityId = par1; 021 022 if (par3) 023 { 024 this.metadata = par2DataWatcher.func_75685_c(); 025 } 026 else 027 { 028 this.metadata = par2DataWatcher.unwatchAndReturnAllWatched(); 029 } 030 } 031 032 /** 033 * Abstract. Reads the raw packet data from the data stream. 034 */ 035 public void readPacketData(DataInputStream par1DataInputStream) throws IOException 036 { 037 this.entityId = par1DataInputStream.readInt(); 038 this.metadata = DataWatcher.readWatchableObjects(par1DataInputStream); 039 } 040 041 /** 042 * Abstract. Writes the raw packet data to the data stream. 043 */ 044 public void writePacketData(DataOutputStream par1DataOutputStream) throws IOException 045 { 046 par1DataOutputStream.writeInt(this.entityId); 047 DataWatcher.writeObjectsInListToStream(this.metadata, par1DataOutputStream); 048 } 049 050 /** 051 * Passes this Packet on to the NetHandler for processing. 052 */ 053 public void processPacket(NetHandler par1NetHandler) 054 { 055 par1NetHandler.handleEntityMetadata(this); 056 } 057 058 /** 059 * Abstract. Return the size of the packet (not counting the header). 060 */ 061 public int getPacketSize() 062 { 063 return 5; 064 } 065 066 @SideOnly(Side.CLIENT) 067 public List getMetadata() 068 { 069 return this.metadata; 070 } 071 }