/// <summary> /// Override to write part details. /// </summary> /// <param name="packet">Packet buffer to write to.</param> /// <returns>true on success.</returns> public override bool WriteCreate(PacketBuffer packet) { if (!base.WriteCreate(packet)) { return(false); } packet.WriteBytes(BitConverter.GetBytes((ushort)_parts.Count), true); ObjectAttributes partAttributes = new ObjectAttributes(); for (int i = 0; i < _parts.Count; ++i) { MeshResource part = _parts[i]; Matrix4 transform = _transforms[i]; partAttributes.SetFromTransform(transform); partAttributes.Color = 0xffffffffu; packet.WriteBytes(BitConverter.GetBytes((uint)part.ID), true); partAttributes.Write(packet); } return(true); }
/// <summary> /// Override to write part details. /// </summary> /// <param name="packet">Packet buffer to write to.</param> /// <returns>true on success.</returns> public override bool WriteCreate(PacketBuffer packet) { if (!base.WriteCreate(packet)) { return(false); } packet.WriteBytes(BitConverter.GetBytes((ushort)_parts.Count), true); ObjectAttributes partAttributes = new ObjectAttributes(); for (int i = 0; i < _parts.Count; ++i) { uint partId = (_parts[i].Resource != null) ? (uint)_parts[i].Resource.ID : 0; partAttributes.SetFromTransform(_parts[i].Transform); partAttributes.Color = _parts[i].Colour.Value; packet.WriteBytes(BitConverter.GetBytes(partId), true); partAttributes.Write(packet); } return(true); }