Пример #1
0
        public static PhysicsScript ReadFromDat(uint fileId)
        {
            // Check the FileCache so we don't need to hit the FileSystem repeatedly
            if (DatManager.PortalDat.FileCache.ContainsKey(fileId))
            {
                return((PhysicsScript)DatManager.PortalDat.FileCache[fileId]);
            }
            else
            {
                DatReader     datReader = DatManager.PortalDat.GetReaderForFile(fileId);
                PhysicsScript obj       = new PhysicsScript();
                obj.Id = datReader.ReadUInt32();

                uint num_script_data = datReader.ReadUInt32();
                for (uint i = 0; i < num_script_data; i++)
                {
                    obj.ScriptData.Add(PhysicsScriptData.Read(datReader));
                }

                // Store this object in the FileCache
                DatManager.PortalDat.FileCache[fileId] = obj;

                return(obj);
            }
        }
Пример #2
0
        public TreeNode BuildTree()
        {
            var treeView = new TreeNode($"{_playScript.Id:X8}");

            var scripts = new TreeNode("Scripts:");

            for (var i = 0; i < _playScript.ScriptData.Count; i++)
            {
                var scriptData = new PhysicsScriptData(_playScript.ScriptData[i]);

                var scriptNode = new TreeNode($"HookType: {scriptData._scriptData.Hook.HookType}, StartTime: {scriptData._scriptData.StartTime}");

                var animationHook = AnimationHook.Create(scriptData._scriptData.Hook);

                scriptNode.Items.AddRange(animationHook.BuildTree());

                scripts.Items.Add(scriptNode);
            }
            treeView.Items.AddRange(scripts.Items);
            return(treeView);
        }