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); } }
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); }