Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class EntityLook
- {
- public const uint Id = 55;
- public uint bonesId;
- public uint[] skins;
- public int[] indexedColors;
- public int[] scales;
- public SubEntity[] subentities;
- public virtual uint TypeId
- {
- get
- {
- return 55;
- }
- }
- public EntityLook()
- {
- }
- public EntityLook(uint bonesId, uint[] skins, int[] indexedColors, int[] scales, SubEntity[] subentities)
- {
- this.bonesId = bonesId;
- this.skins = skins;
- this.indexedColors = indexedColors;
- this.scales = scales;
- this.subentities = subentities;
- }
- public virtual void Serialize(IDataWriter writer)
- {
- writer.WriteVarShort((short)this.bonesId);
- writer.WriteShort((short)this.skins.Length);
- for (uint i = 0; i < this.skins.Length; i++)
- {
- writer.WriteVarShort((short)this.skins[i]);
- }
- writer.WriteShort((short)this.indexedColors.Length);
- for (uint j = 0; j < this.indexedColors.Length; j++)
- {
- writer.WriteInt(this.indexedColors[j]);
- }
- writer.WriteShort((short)this.scales.Length);
- for (uint k = 0; k < this.scales.Length; k++)
- {
- writer.WriteVarShort((short)this.scales[k]);
- }
- writer.WriteShort((short)this.subentities.Length);
- for (uint l = 0; l < this.subentities.Length; l++)
- {
- SubEntity subEntity = this.subentities[l];
- subEntity.Serialize(writer);
- }
- }
- public virtual void Deserialize(IDataReader reader)
- {
- this.bonesId = reader.ReadVarUhShort();
- uint num = reader.ReadUShort();
- this.skins = new uint[num];
- for (uint i = 0; i < num; i++)
- {
- //C'est ici que je reçois l'erreur, sa lit plusieurs fois mais apres sa cause l'erreur et sa me sort soit Too much Data (dans ReadVarShort) ou Impossible de lire au-delà de la fin du flux (dans ReadByte) Regarde en bas j'ai les méthodes concerné
- this.skins[i] = reader.ReadVarUhShort();
- }
- num = reader.ReadUShort();
- this.indexedColors = new int[num];
- for (uint j = 0; j < num; j++)
- {
- this.indexedColors[j] = reader.ReadInt();
- }
- num = reader.ReadUShort();
- this.scales = new int[num];
- for (uint k = 0; k < num; k++)
- {
- this.scales[k] = reader.ReadVarShort();
- }
- num = reader.ReadUShort();
- this.subentities = new SubEntity[num];
- for (uint l = 0; l < num; l++)
- {
- this.subentities[l] = new SubEntity();
- this.subentities[l].Deserialize(reader);
- }
- }
- }
- LES METHODES AUQUEL JE RECOIT ERREUR ILS SONT DANS MON BIGENDIANREADER :
- public byte ReadByte()
- {//ERREUR: Impossible de lire au-delà de la fin du flux
- return this.m_reader.ReadByte();
- }
- public short ReadVarShort()
- {//ERREUR: Too much Data
- int num = 0;
- int i = 0;
- while (i < 16)
- {
- int num2 = (int)this.ReadByte();
- bool flag = (num2 & 128) == 128;
- bool flag2 = i > 0;
- if (flag2)
- {
- num += (num2 & 127) << i;
- }
- else
- {
- num += (num2 & 127);
- }
- i += 7;
- bool flag3 = !flag;
- if (flag3)
- {
- bool flag4 = num > 32767;
- if (flag4)
- {
- num -= 65536;
- }
- return (short)num;
- }
- }
- throw new Exception("Too much data");
- }
- //Laquelle j'appelle dans EntityLook
- public uint ReadVarUhShort()
- {
- return (uint)this.ReadVarShort();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement