private void Setup(CharacterEntity character, HelicopterEntity vehicle) { DataStream ds = new DataStream(); DataWriter dw = new DataWriter(ds); dw.WriteLong(character.EID); dw.WriteByte(1); // TODO: Enum? dw.WriteLong(vehicle.EID); dw.Flush(); Data = ds.ToArray(); dw.Close(); }
private void Setup(CharacterEntity character, CarEntity vehicle) { DataStream ds = new DataStream(); DataWriter dw = new DataWriter(ds); dw.WriteLong(character.EID); dw.WriteByte(0); // TODO: Enum? dw.WriteInt(vehicle.DrivingMotors.Count); dw.WriteInt(vehicle.SteeringMotors.Count); for (int i = 0; i < vehicle.DrivingMotors.Count; i++) { dw.WriteLong(vehicle.DrivingMotors[i].JID); } for (int i = 0; i < vehicle.SteeringMotors.Count; i++) { dw.WriteLong(vehicle.SteeringMotors[i].JID); } dw.Flush(); Data = ds.ToArray(); dw.Close(); }
public void WriteBasicBytes(DataWriter dw) { dw.WriteInt(Count); dw.WriteInt(Datum); dw.WriteFloat((float)Weight); dw.WriteFloat((float)Volume); dw.WriteFloat((float)Temperature); dw.WriteInt(DrawColor.ToArgb()); dw.WriteFullString(Name); dw.WriteFullString(SecondaryName == null ? "" : SecondaryName); dw.WriteFullString(DisplayName); dw.WriteFullString(Description); dw.WriteFullString(GetTextureName()); dw.WriteFullString(GetModelName()); dw.WriteByte((byte)(RenderAsComponent ? 1 : 0)); dw.WriteFloat((float)ComponentRenderOffset.X); dw.WriteFloat((float)ComponentRenderOffset.Y); dw.WriteFloat((float)ComponentRenderOffset.Z); dw.WriteInt(SharedAttributes.Count); foreach (KeyValuePair<string, TemplateObject> entry in SharedAttributes) { if (entry.Key == null || entry.Value == null) { SysConsole.Output(OutputType.WARNING, "Null entry in SharedAttributes for " + Name); continue; } dw.WriteFullString(entry.Key); if (entry.Value is IntegerTag) { dw.WriteByte(0); dw.WriteLong(((IntegerTag)entry.Value).Internal); } else if (entry.Value is NumberTag) { dw.WriteByte(1); dw.WriteDouble(((NumberTag)entry.Value).Internal); } else if (entry.Value is BooleanTag) { dw.WriteByte(2); dw.WriteByte((byte)(((BooleanTag)entry.Value).Internal ? 1 : 0)); } // TODO: shared BaseItemTag? else { dw.WriteByte(3); dw.WriteFullString(entry.Value.ToString()); } } }
public byte[] ServerBytes() { DataStream data = new DataStream(1000); DataWriter dw = new DataWriter(data); dw.WriteInt(Attributes.Count); foreach (KeyValuePair<string, TemplateObject> entry in Attributes) { dw.WriteFullString(entry.Key); if (entry.Value is IntegerTag) { dw.WriteByte(0); dw.WriteLong(((IntegerTag)entry.Value).Internal); } else if (entry.Value is NumberTag) { dw.WriteByte(1); dw.WriteDouble(((NumberTag)entry.Value).Internal); } else if (entry.Value is BooleanTag) { dw.WriteByte(2); dw.WriteByte((byte)(((BooleanTag)entry.Value).Internal ? 1 : 0)); } // TODO: shared BaseItemTag? else { dw.WriteByte(3); dw.WriteFullString(entry.Value.ToString()); } } WriteBasicBytes(dw); dw.WriteInt(Components.Count); foreach (ItemStack itb in Components) { dw.WriteFullBytes(itb.ServerBytes()); } dw.Flush(); return data.ToArray(); }