예제 #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);
        }
예제 #2
0
        public override void Write(XdrDataWriter writer)
        {
            writer.Write((int)Status);
            ObjectAttributes.Write(writer);

            if (Status == Nfs3Status.Ok)
            {
                writer.Write(LinkMax);
                writer.Write(NameMax);
                writer.Write(NoTrunc);
                writer.Write(ChownRestricted);
                writer.Write(CaseInsensitive);
                writer.Write(CasePreserving);
            }
        }
예제 #3
0
        public override void Write(XdrDataWriter writer)
        {
            writer.Write((int)this.Status);

            if (Status == Nfs3Status.Ok)
            {
                ObjectHandle.Write(writer);

                writer.Write(ObjectAttributes != null);

                if (ObjectAttributes != null)
                {
                    ObjectAttributes.Write(writer);
                }
            }

            writer.Write(DirAttributes != null);

            if (DirAttributes != null)
            {
                DirAttributes.Write(writer);
            }
        }
예제 #4
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)
            {
                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);
        }