public void Allocate(RobloxBinaryFile file) { foreach (int instId in InstanceIds) { FileInstance inst = new FileInstance(TypeName); file.Instances[instId] = inst; } file.Types[TypeIndex] = this; }
private static Folder AssembleModel_BIN(RobloxBinaryFile file) { Folder folder = new Folder(); foreach (FileInstance fileInst in file.Contents.GetChildren()) { Type classType = GetClassType(fileInst.ClassName); if (classType != null) { Instance childObj = Reflect_BIN(fileInst, classType); childObj.Parent = folder; } } return(folder); }
public static Folder LoadFromBuffer(byte[] buffer) { Folder result = null; string contents = Encoding.Default.GetString(buffer); if (contents.StartsWith("<roblox!")) { RobloxBinaryFile bin = new RobloxBinaryFile(buffer); result = AssembleModel_BIN(bin); } else { XmlNode xml = LoadRobloxNode_XML(contents); result = AssembleModel_XML(xml); } return(result); }
public void Assemble(RobloxBinaryFile file) { for (int i = 0; i < NumRelations; i++) { int childId = ChildrenIds[i]; int parentId = ParentIds[i]; FileInstance child = file.Instances[childId]; FileInstance parent = null; if (parentId >= 0) { parent = file.Instances[parentId]; } else { parent = file.Contents; } child.Parent = parent; } }