LSLib.LS.LSF.LSFWriter.WriteNodeAttributesV3 C# (CSharp) Méthode

WriteNodeAttributesV3() private méthode

private WriteNodeAttributesV3 ( Node node ) : void
node Node
Résultat void
        private void WriteNodeAttributesV3(Node node)
        {
            UInt32 lastOffset = (UInt32)ValueStream.Position;
            int numWritten = 0;
            foreach (KeyValuePair<string, NodeAttribute> entry in node.Attributes)
            {
                WriteAttributeValue(ValueWriter, entry.Value);
                numWritten++;

                var attributeInfo = new AttributeEntryV3();
                var length = (UInt32)ValueStream.Position - lastOffset;
                attributeInfo.TypeAndLength = (UInt32)entry.Value.Type | (length << 6);
                attributeInfo.NameHashTableIndex = AddStaticString(entry.Key);
                if (numWritten == node.Attributes.Count)
                {
                    attributeInfo.NextAttributeIndex = -1;
                }
                else
                {
                    attributeInfo.NextAttributeIndex = NextAttributeIndex + 1;
                }
                attributeInfo.Offset = (UInt32)ValueStream.Position;
                BinUtils.WriteStruct<AttributeEntryV3>(AttributeWriter, ref attributeInfo);
                
                NextAttributeIndex++;

                lastOffset = (UInt32)ValueStream.Position;
            }
        }