protected new static void GenerateTypeTree(TypeTreeContext context) { Component.GenerateTypeTree(context); TransferMetaFlags flags = IsAlign(context.Version) ? TransferMetaFlags.AlignBytesFlag : TransferMetaFlags.NoTransferFlags; context.AddByte(EnabledName, flags); }
private void BeginArrayInner(string type, string name, TransferMetaFlags flags) { AddNode(type, name, -1); BeginChildren(); AddNode(TypeTreeUtils.ArrayName, TypeTreeUtils.ArrayName, -1, 1, true, DefaultArrayFlag | flags); BeginChildren(); AddInt32(TypeTreeUtils.SizeName); }
public TypeTreeNode(byte depth, bool isArray, string type, string name, int byteSize, int index, TransferMetaFlags metaFlag) { Depth = depth; IsArray = isArray; Type = type; Name = name; ByteSize = byteSize; Index = index; MetaFlag = metaFlag; }
public void AddPPtr(string type, string name, TransferMetaFlags flags) { AddNode($"PPtr<{type}>", name, 0, 1, flags); BeginChildren(); AddInt32(PPtr <Object> .FileIDName); if (PPtr <Object> .IsLongID(Version)) { AddInt64(PPtr <Object> .PathIDName); } else { AddInt32(PPtr <Object> .PathIDName); } EndChildren(); }
private void AddNode(string type, string name, int size, int version, bool isArray, TransferMetaFlags flags) { TypeTreeNode node = new TypeTreeNode(); node.Version = version; node.Depth = (byte)Depth; node.ByteSize = size; node.Type = type; node.Name = name; node.Index = Index; node.IsArrayBool = isArray; node.MetaFlag = flags; m_nodes.Add(node); DepthIndex = Index; if (Size >= 0) { if (size >= 0) { Size += size; } else { Size = -1; } } Index++; }
public void AddNode(string type, string name, int size, int version, TransferMetaFlags flags) { AddNode(type, name, size, version, false, TransferMetaFlags.NoTransferFlags); }
public void BeginArray(string name, TransferMetaFlags flags) { BeginArrayInner(TypeTreeUtils.VectorName, name, flags); }
public void AddArray(string name, TransferMetaFlags flags, TypeTreeGenerator generator) { BeginArray(name, flags); generator.Invoke(this, TypeTreeUtils.DataName); EndArray(); }
public void AddBool(string name, TransferMetaFlags flags) { AddNode(TypeTreeUtils.BoolName, name, sizeof(bool), 1, flags); }
public void AddDouble(string name, TransferMetaFlags flags) { AddNode(TypeTreeUtils.DoubleName, name, sizeof(double), 1, flags); }
public void AddSingle(string name, TransferMetaFlags flags) { AddNode(TypeTreeUtils.FloatName, name, sizeof(float), 1, flags); }
public void AddUInt64(string name, TransferMetaFlags flags) { AddNode(TypeTreeUtils.UInt64Name, name, sizeof(ulong), 1, flags); }
public void AddUInt32(string name, TransferMetaFlags flags) { AddNode(TypeTreeUtils.UnsignedIntName, name, sizeof(uint), 1, flags); }
public void AddUInt16(string name, TransferMetaFlags flags) { AddNode(TypeTreeUtils.UInt16Name, name, sizeof(ushort), 1, flags); }
public void AddByte(string name, TransferMetaFlags flags) { AddNode(TypeTreeUtils.UInt8Name, name, sizeof(byte), 1, flags); }
public void AddPPtr <T>(string name, TransferMetaFlags flags) { AddPPtr(typeof(T).Name, name, flags); }
public void AddPPtr(string type, string name, TransferMetaFlags flags) { PPtrLayout.GenerateTypeTree(this, type, name); Nodes[DepthIndex].MetaFlag = flags; }