Exemple #1
0
        /// <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);
        }