Example #1
0
        public void Allocate(RobloxBinaryFile file)
        {
            foreach (int instId in InstanceIds)
            {
                FileInstance inst = new FileInstance(TypeName);
                file.Instances[instId] = inst;
            }

            file.Types[TypeIndex] = this;
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
        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;
            }
        }