From 4ec1af8b3639298228a6b7dc75a81d93bc787b31 Mon Sep 17 00:00:00 2001 From: nichinichisou Date: Wed, 28 Oct 2026 00:32:03 +0800 Subject: [PATCH 1/2] fix(music-data): accept master data without the arena music table Newer master data versions do not list `MasterArenaMusic`. The deck input now reads that table as empty when the master data manifest does not list it, and records no SHA-256 for it. Every other table is still required. Co-Authored-By: Claude Sonnet 5.5 --- src/nnnotes/deckdata.py | 8 ++++++++ tests/test_deckdata.py | 4 ++++ 2 files changed, 12 insertions(+) diff --git a/src/nnnotes/deckdata.py b/src/nnnotes/deckdata.py index 8c28e07..5d85367 100644 --- a/src/nnnotes/deckdata.py +++ b/src/nnnotes/deckdata.py @@ -131,6 +131,10 @@ )) +# Tables a master data version may leave out (no rows then): the master data of newer game versions does not list them. +OPTIONAL_TABLES = frozenset({"MasterArenaMusic"}) + + class DeckDataError(ValueError): """An input the deck data cannot be made from (the message names it).""" @@ -214,9 +218,12 @@ def read(names): def read_master(src: MasterSource, key, tables=None) -> tuple[dict[str, list[dict]], dict[str, str]]: """The rows (`_allData`) of every table of `tables` (default: TABLES) and the SHA-256 of each file as served. + A table of OPTIONAL_TABLES the manifest does not list has no rows and no SHA-256. `key`: a master.MasterKey (unused for decoded master data: None).""" from . import master names = {t: f"{t}.bin" for t in (tables if tables is not None else (t for t, _ in TABLES))} + absent = {t for t, n in names.items() if t in OPTIONAL_TABLES and n not in src.hashes} + names = {t: n for t, n in names.items() if t not in absent} unlisted = [t for t, n in names.items() if n not in src.hashes] if unlisted: raise DeckDataError(f"master data {src.where}: {MANIFEST} lists no {', '.join(unlisted)}") @@ -246,6 +253,7 @@ def read_master(src: MasterSource, key, tables=None) -> tuple[dict[str, list[dic if not isinstance(rows, list) or not all(isinstance(r, dict) for r in rows): raise DeckDataError(f"master data {src.where}: {f} has no `_allData` rows") tables[t], shas[t] = rows, sha + tables.update((t, []) for t in absent) return tables, shas diff --git a/tests/test_deckdata.py b/tests/test_deckdata.py index fbd39a2..80d5bd1 100644 --- a/tests/test_deckdata.py +++ b/tests/test_deckdata.py @@ -318,6 +318,10 @@ def test_master_file_checks(tmp_path): src=deckdata.master_files(master_dir(tmp_path, bad_hash={"MasterBand"}, name="a"))) failing(tmp_path, "lists no MasterParameter, MasterEvent", src=deckdata.master_files(master_dir(tmp_path, skip={"MasterEvent", "MasterParameter"}, name="b"))) + d = master_dir(tmp_path, skip={"MasterArenaMusic"}, name="opt") + tables, shas = deckdata.read_master(deckdata.master_files(d), KEY) + assert tables["MasterArenaMusic"] == [] and "MasterArenaMusic" not in shas + assert deckdata.master_subset(tables)["MasterArenaMusic"] == {"columns": [], "rows": []} d = master_dir(tmp_path, name="c") (d / "MasterBand.bin").unlink() failing(tmp_path, "no file MasterBand.bin", src=deckdata.master_files(d)) From d03258210dc20efdee7accc73880bd7d425f7255 Mon Sep 17 00:00:00 2001 From: nichinichisou Date: Wed, 28 Oct 2026 00:32:03 +0800 Subject: [PATCH 2/2] fix(story): read the app managers from the boot scene Game version 1.1.0 builds the CameraManager and UIManager prefabs into the boot scene of `data.unity3d` and lists no catalog key for them. When the catalog has no key, `Exporter` now takes the root GameObject of that name from the player data's boot scene, and reads its MonoBehaviours with embedded typetrees of their script classes (added for the twelve classes of the two hierarchies). A reference into a bundle file that no bundle of the catalog holds is exported as null with a warning, so a story no longer fails on a missing sprite atlas. Co-Authored-By: Claude Sonnet 5.5 --- scripts/gen_typetrees.py | 12 +++++ src/nnnotes/advui.py | 6 +-- src/nnnotes/export.py | 69 ++++++++++++++++++++++++-- src/nnnotes/typetrees/6000.3.12f1.json | 14 +++++- tests/test_story_ui.py | 3 ++ 5 files changed, 95 insertions(+), 9 deletions(-) diff --git a/scripts/gen_typetrees.py b/scripts/gen_typetrees.py index f074120..c58cd41 100644 --- a/scripts/gen_typetrees.py +++ b/scripts/gen_typetrees.py @@ -53,8 +53,13 @@ ("Adv", "AdvSystem.Rendering", "AdvFieldRendererFeature"), ("App.Runtime", "App.Config", "AppConfigDefaultData"), ("DOTween.dll", "DG.Tweening.Core", "DOTweenSettings"), + ("Fwk", "Fwk.Cam", "CameraManager"), ("Fwk", "Fwk.Rendering", "ScreenCaptureRendererFeature"), ("Fwk", "Fwk.Sound", "SoundVolumeSettings"), + ("Fwk", "Fwk.UI", "UICameraController"), + ("Fwk", "Fwk.UI", "UIInputController"), + ("Fwk", "Fwk.UI", "UIManager"), + ("Fwk", "Fwk.UI", "UIScreenSizeWatcher"), ("Fwk", "Fwk.UI.Rendering", "UIRendererFeature"), ("SiriusAsset", "App.GachaAnimation.Blur.DualKawase", "DualKawaseBlurFeature"), ("SiriusAsset", "App.GachaAnimation.ChromaticAberration", "ChromaticAberrationFeature"), @@ -62,11 +67,18 @@ ("SiriusAsset", "App.GachaAnimation.PostProcessing", "CameraBlendFeature"), ("SiriusAsset", "App.GachaAnimation.PostProcessing", "RadialBlurFeature"), ("SiriusAsset", "App.UI.Text.DropShadow", "TextDropShadowFeature"), + ("Unity.InputSystem", "UnityEngine.InputSystem.UI", "InputSystemUIInputModule"), ("Unity.RenderPipelines.Universal.Runtime", "UnityEngine.Rendering.Universal", "PostProcessData"), + ("Unity.RenderPipelines.Universal.Runtime", "UnityEngine.Rendering.Universal", "UniversalAdditionalCameraData"), ("Unity.RenderPipelines.Universal.Runtime", "UnityEngine.Rendering.Universal", "UniversalRenderPipelineAsset"), ("Unity.RenderPipelines.Universal.Runtime", "UnityEngine.Rendering.Universal", "UniversalRendererData"), ("Unity.TextMeshPro", "TMPro", "TMP_Settings"), ("Unity.TextMeshPro", "TMPro", "TMP_StyleSheet"), + ("UnityEngine.UI", "UnityEngine.EventSystems", "EventSystem"), + ("UnityEngine.UI", "UnityEngine.EventSystems", "Physics2DRaycaster"), + ("UnityEngine.UI", "UnityEngine.UI", "CanvasScaler"), + ("UnityEngine.UI", "UnityEngine.UI", "GraphicRaycaster"), + ("UnityEngine.UI", "UnityEngine.UI", "Image"), ) DEFAULT_OUT = Path(__file__).resolve().parents[1] / "src" / "nnnotes" / "typetrees" diff --git a/src/nnnotes/advui.py b/src/nnnotes/advui.py index e1f9971..1809057 100644 --- a/src/nnnotes/advui.py +++ b/src/nnnotes/advui.py @@ -900,14 +900,14 @@ def mono(owner, pptr, cls: str, what: str): managers = [c for c in comps if c is not None and c.type.name == "MonoBehaviour" and ex.script_class(c) == "UIManager"] if len(managers) != 1: raise RuntimeError(f"{UI_MANAGER_KEY}: {len(managers)} UIManager on the prefab root") - ctrl = mono(managers[0], managers[0].read_typetree()["_cameraController"], "UICameraController", + ctrl = mono(managers[0], ex.typetree(managers[0])["_cameraController"], "UICameraController", "UIManager._cameraController") - ctrl_tt = ctrl.read_typetree() + ctrl_tt = ex.typetree(ctrl) cam = ex.deref(ctrl, ctrl_tt["_uiCamera"]) if ctrl_tt["_uiCamera"] else None if cam is None or cam.type.name != "Camera": raise RuntimeError(f"{UI_MANAGER_KEY}: UICameraController._uiCamera is not a Camera") data = mono(ctrl, ctrl_tt["_uiCameraData"], "UniversalAdditionalCameraData", "UICameraController._uiCameraData") - cam_tt, data_tt = cam.read_typetree(), data.read_typetree() + cam_tt, data_tt = ex.typetree(cam), ex.typetree(data) go_pid = cam_tt["m_GameObject"]["m_PathID"] if data_tt["m_GameObject"]["m_PathID"] != go_pid: raise RuntimeError(f"{UI_MANAGER_KEY}: _uiCamera and _uiCameraData are on different GameObjects") diff --git a/src/nnnotes/export.py b/src/nnnotes/export.py index b2dfd51..10b3b48 100644 --- a/src/nnnotes/export.py +++ b/src/nnnotes/export.py @@ -26,6 +26,8 @@ import math import re import struct +import types +import warnings import zlib from pathlib import Path @@ -359,7 +361,8 @@ def __init__(self, cat: Catalog, out_dir: Path, player=None, inline_meshes: bool self.clip_format = clip_format self.follow = tuple(follow) self.defer_writes = defer_writes - self.script_class = class_of or script_class + base_class = class_of or script_class + self.script_class = lambda o: self.player.script(o)[2] if self._in_boot(o) else base_class(o) self.font_stubs = font_stubs self._font_bundles: frozenset | None = None self._unwritten: dict[str, object] = {} # defer_writes: file -> Texture2D @@ -385,13 +388,56 @@ def __init__(self, cat: Catalog, out_dir: Path, player=None, inline_meshes: bool self._gos_at_cache: dict[tuple, list] = {} self._path_sources: list[tuple[str, dict]] = [] self._crcs: dict[str, int] = {} + self.unresolved: dict[str, int] = {} # bundle file name -> references exported as null + self._boot_env = None # the boot scene of the player data (builtin_root) + self._boot_graph: SceneGraph | None = None + self._boot_files: set[int] = set() # --- loading --------------------------------------------------------- + def builtin_root(self, key: str): + """The root GameObject of the player's boot scene (level0 of the APK's boot data) that stands for the + catalog key `key`, None when the catalog lists the key or there is none. Game versions that build the app + managers into the boot scene have no catalog key for them; the GameObject has the last name of the key.""" + if self.player is None or self.cat.has(key): + return None + name = key.rsplit("/", 1)[-1] + env = self._player_scene() + graph = self._boot_graph + hits = [o for o in env.objects if o.type.name == "GameObject" and graph.go[o.path_id]["m_Name"] == name + and not graph.tf[graph.tf_of_go[o.path_id]]["m_Father"]["m_PathID"]] + return hits[0] if len(hits) == 1 else None + + def _in_boot(self, o) -> bool: + """Is `o` an object of the boot scene taken from the player data (its scripts are stripped of typetrees)?""" + return self._boot_env is not None and o.type.name == "MonoBehaviour" and id(o.assets_file) in self._boot_files + + def typetree(self, o) -> dict: + """The fields of an object: its own typetree, or for a MonoBehaviour of the boot scene (header included) the + player data's embedded typetree of its class.""" + if not self._in_boot(o): + return o.read_typetree() + raw = o.get_raw_data() + game_object, enabled, script = struct.unpack_from(" SceneGraph: return self._graph_of_file[id(o.assets_file)] @@ -1358,7 +1411,7 @@ def scriptable(self, o) -> dict: return {**ref, **self.value(o, {x: y for x, y in tt.items() if x not in HEADER})} def component(self, o) -> dict: - tt = o.read_typetree() + tt = self.typetree(o) self._register_names(o, tt) body = {k: v for k, v in tt.items() if k not in HEADER} out = {"type": o.type.name} @@ -1418,11 +1471,17 @@ def _container_asset(self, env, internal_id: str): def key_object(self, key: str): """The object an addressable key names (its bundle's container asset).""" env, _ = self.load(key) + root = self.builtin_root(key) + if root is not None: + return root return self._container_asset(env, self.cat._entry(key)["internal_id"]) def prefab(self, key: str, loaded=None) -> dict: """A prefab or scene as a node list; `loaded` = (env, graph) from load(key).""" env, graph = loaded or self.load(key) + root = self.builtin_root(key) + if root is not None: + return {"key": key, "nodes": self.hierarchy(env, graph, graph.tf_of_go[root.path_id])} iid = self.cat._entry(key)["internal_id"] if iid.endswith(".unity"): scene_files = set() diff --git a/src/nnnotes/typetrees/6000.3.12f1.json b/src/nnnotes/typetrees/6000.3.12f1.json index 36f83af..24d066d 100644 --- a/src/nnnotes/typetrees/6000.3.12f1.json +++ b/src/nnnotes/typetrees/6000.3.12f1.json @@ -2,18 +2,30 @@ "Adv|AdvSystem.Rendering|AdvFieldRendererFeature":{"nodes":[[0,"MonoBehaviour","Base",0],[1,"PPtr","m_GameObject",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"UInt8","m_Enabled",16384],[1,"PPtr","m_Script",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"string","m_Name",0],[2,"Array","Array",16384],[3,"int","size",0],[3,"char","data",0],[1,"UInt8","m_Active",16384],[1,"PPtr<$Shader>","_alphaBlendShader",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"PPtr<$Shader>","_characterAlphaBlendShader",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"PPtr<$Shader>","_blurShader",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"PPtr<$Shader>","_curvedLensShader",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"int","_maxFieldRendererEntryCount",0],[1,"float","_characterBlurIntensityRate",0],[1,"float","_characterBlurScale",0],[1,"float","_backgroundBlurIntensityRate",0],[1,"float","_backgroundBlurScale",0]],"typeHash":"b366a9b62e0f9de433e9ca044d26c9d1"}, "App.Runtime|App.Config|AppConfigDefaultData":{"nodes":[[0,"MonoBehaviour","Base",0],[1,"PPtr","m_GameObject",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"UInt8","m_Enabled",16384],[1,"PPtr","m_Script",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"string","m_Name",0],[2,"Array","Array",16384],[3,"int","size",0],[3,"char","data",0],[1,"AppConfigDataModel","_defaultData",0],[2,"float","k__BackingField",0],[2,"float","k__BackingField",0],[2,"float","k__BackingField",0],[2,"float","k__BackingField",0],[2,"float","k__BackingField",0],[2,"float","k__BackingField",0],[2,"float","k__BackingField",0],[2,"float","k__BackingField",0]],"typeHash":"2b53ff748caf6baa04ce8616a3f29be9"}, "DOTween.dll|DG.Tweening.Core|DOTweenSettings":{"nodes":[[0,"MonoBehaviour","Base",0],[1,"PPtr","m_GameObject",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"UInt8","m_Enabled",16384],[1,"PPtr","m_Script",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"string","m_Name",0],[2,"Array","Array",16384],[3,"int","size",0],[3,"char","data",0],[1,"UInt8","useSafeMode",16384],[1,"SafeModeOptions","safeModeOptions",0],[2,"int","logBehaviour",0],[2,"int","nestedTweenFailureBehaviour",0],[1,"float","timeScale",0],[1,"float","unscaledTimeScale",0],[1,"UInt8","useSmoothDeltaTime",16384],[1,"float","maxSmoothUnscaledTime",0],[1,"int","rewindCallbackMode",0],[1,"UInt8","showUnityEditorReport",16384],[1,"int","logBehaviour",0],[1,"UInt8","drawGizmos",16384],[1,"UInt8","defaultRecyclable",16384],[1,"int","defaultAutoPlay",0],[1,"int","defaultUpdateType",0],[1,"UInt8","defaultTimeScaleIndependent",16384],[1,"int","defaultEaseType",0],[1,"float","defaultEaseOvershootOrAmplitude",0],[1,"float","defaultEasePeriod",0],[1,"UInt8","defaultAutoKill",16384],[1,"int","defaultLoopType",0],[1,"UInt8","debugMode",16384],[1,"UInt8","debugStoreTargetId",16384],[1,"UInt8","showPreviewPanel",16384],[1,"int","storeSettingsLocation",0],[1,"ModulesSetup","modules",0],[2,"UInt8","showPanel",16384],[2,"UInt8","audioEnabled",16384],[2,"UInt8","physicsEnabled",16384],[2,"UInt8","physics2DEnabled",16384],[2,"UInt8","spriteEnabled",16384],[2,"UInt8","uiEnabled",16384],[2,"UInt8","textMeshProEnabled",16384],[2,"UInt8","tk2DEnabled",16384],[2,"UInt8","deAudioEnabled",16384],[2,"UInt8","deUnityExtendedEnabled",16384],[2,"UInt8","epoOutlineEnabled",16384],[1,"UInt8","createASMDEF",16384],[1,"UInt8","showPlayingTweens",16384],[1,"UInt8","showPausedTweens",16384]],"typeHash":"4f1dec93fa2a0b0e7b8b47518da31b1c"}, +"Fwk|Fwk.Cam|CameraManager":{"nodes":[[0,"MonoBehaviour","Base",0],[1,"PPtr","m_GameObject",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"UInt8","m_Enabled",16384],[1,"PPtr","m_Script",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"string","m_Name",0],[2,"Array","Array",16384],[3,"int","size",0],[3,"char","data",0],[1,"UInt8","_dontDestroyOnload",16384],[1,"PPtr<$Camera>","_mainCamera",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"PPtr<$Camera>","_subCamera",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"PPtr<$UniversalAdditionalCameraData>","_mainCameraData",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"PPtr<$UniversalAdditionalCameraData>","_subCameraData",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0]],"typeHash":"9cd71123afe4d42d6ed5fe737ac22f6a"}, "Fwk|Fwk.Rendering|ScreenCaptureRendererFeature":{"nodes":[[0,"MonoBehaviour","Base",0],[1,"PPtr","m_GameObject",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"UInt8","m_Enabled",16384],[1,"PPtr","m_Script",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"string","m_Name",0],[2,"Array","Array",16384],[3,"int","size",0],[3,"char","data",0],[1,"UInt8","m_Active",16384]],"typeHash":"ce87445dd61732c847969290a1daa3b1"}, "Fwk|Fwk.Sound|SoundVolumeSettings":{"nodes":[[0,"MonoBehaviour","Base",0],[1,"PPtr","m_GameObject",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"UInt8","m_Enabled",16384],[1,"PPtr","m_Script",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"string","m_Name",0],[2,"Array","Array",16384],[3,"int","size",0],[3,"char","data",0],[1,"SoundVolumeData","_collection",0],[2,"Array","Array",0],[3,"int","size",0],[3,"SoundVolumeData","data",0],[4,"string","CategoryName",0],[5,"Array","Array",16384],[6,"int","size",0],[6,"char","data",0],[4,"float","DefaultVolume",0]],"typeHash":"6fb3a84e8c1ec611fde964d8d6005276"}, "Fwk|Fwk.UI.Rendering|UIRendererFeature":{"nodes":[[0,"MonoBehaviour","Base",0],[1,"PPtr","m_GameObject",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"UInt8","m_Enabled",16384],[1,"PPtr","m_Script",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"string","m_Name",0],[2,"Array","Array",16384],[3,"int","size",0],[3,"char","data",0],[1,"UInt8","m_Active",16384],[1,"BitField","_layerMask",0],[2,"unsigned int","m_Bits",0],[1,"int","_blurIterations",0],[1,"float","_blurOffset",0],[1,"int","_blurDownsample",0],[1,"float","_blurBlendRateMax",0],[1,"PPtr<$Shader>","_dualKawaseBlurShader",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0]],"typeHash":"12463b61d2af82f284b2248ea336f5f6"}, +"Fwk|Fwk.UI|UICameraController":{"nodes":[[0,"MonoBehaviour","Base",0],[1,"PPtr","m_GameObject",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"UInt8","m_Enabled",16384],[1,"PPtr","m_Script",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"string","m_Name",0],[2,"Array","Array",16384],[3,"int","size",0],[3,"char","data",0],[1,"PPtr<$Camera>","_uiCamera",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"PPtr<$UniversalAdditionalCameraData>","_uiCameraData",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0]],"typeHash":"03ef91c0c231ec4801be2d720f2afee5"}, +"Fwk|Fwk.UI|UIInputController":{"nodes":[[0,"MonoBehaviour","Base",0],[1,"PPtr","m_GameObject",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"UInt8","m_Enabled",16384],[1,"PPtr","m_Script",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"string","m_Name",0],[2,"Array","Array",16384],[3,"int","size",0],[3,"char","data",0],[1,"PPtr<$GameObject>","_locker",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0]],"typeHash":"ad548357668ee016a21544130c8e4129"}, +"Fwk|Fwk.UI|UIManager":{"nodes":[[0,"MonoBehaviour","Base",0],[1,"PPtr","m_GameObject",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"UInt8","m_Enabled",16384],[1,"PPtr","m_Script",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"string","m_Name",0],[2,"Array","Array",16384],[3,"int","size",0],[3,"char","data",0],[1,"UInt8","_dontDestroyOnload",16384],[1,"PPtr<$Transform>","_container",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"PPtr<$UICameraController>","_cameraController",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"PPtr<$UIInputController>","_inputController",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"PPtr<$UISoundEffectCatalog>","_uiSoundEffectCatalog",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0]],"typeHash":"69351d5f80bb1b303ab066e2a4e5a36b"}, +"Fwk|Fwk.UI|UIScreenSizeWatcher":{"nodes":[[0,"MonoBehaviour","Base",0],[1,"PPtr","m_GameObject",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"UInt8","m_Enabled",16384],[1,"PPtr","m_Script",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"string","m_Name",0],[2,"Array","Array",16384],[3,"int","size",0],[3,"char","data",0]],"typeHash":"ff2895b01f6c9cc366d81e8d4f564dca"}, "SiriusAsset|App.GachaAnimation.Blur.DualKawase|DualKawaseBlurFeature":{"nodes":[[0,"MonoBehaviour","Base",0],[1,"PPtr","m_GameObject",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"UInt8","m_Enabled",16384],[1,"PPtr","m_Script",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"string","m_Name",0],[2,"Array","Array",16384],[3,"int","size",0],[3,"char","data",0],[1,"UInt8","m_Active",16384],[1,"PPtr<$Shader>","_blurShader",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0]],"typeHash":"d3a7f8d74210f879c214433da8371fb1"}, "SiriusAsset|App.GachaAnimation.ChromaticAberration|ChromaticAberrationFeature":{"nodes":[[0,"MonoBehaviour","Base",0],[1,"PPtr","m_GameObject",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"UInt8","m_Enabled",16384],[1,"PPtr","m_Script",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"string","m_Name",0],[2,"Array","Array",16384],[3,"int","size",0],[3,"char","data",0],[1,"UInt8","m_Active",16384],[1,"PPtr<$Shader>","_shader",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"int","_injectionPoint",0]],"typeHash":"7cfc6fee683d3cc7ee7724ba19dca473"}, "SiriusAsset|App.GachaAnimation.Paraffin|ParaffinFeature":{"nodes":[[0,"MonoBehaviour","Base",0],[1,"PPtr","m_GameObject",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"UInt8","m_Enabled",16384],[1,"PPtr","m_Script",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"string","m_Name",0],[2,"Array","Array",16384],[3,"int","size",0],[3,"char","data",0],[1,"UInt8","m_Active",16384],[1,"PPtr<$Shader>","_shader",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"int","_injectionPoint",0]],"typeHash":"514dcc098efe1dc5fdbb68299a5ee29c"}, "SiriusAsset|App.GachaAnimation.PostProcessing|CameraBlendFeature":{"nodes":[[0,"MonoBehaviour","Base",0],[1,"PPtr","m_GameObject",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"UInt8","m_Enabled",16384],[1,"PPtr","m_Script",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"string","m_Name",0],[2,"Array","Array",16384],[3,"int","size",0],[3,"char","data",0],[1,"UInt8","m_Active",16384],[1,"PPtr<$Shader>","_blendShader",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"int","_injectionPoint",0]],"typeHash":"6538c8022bb4b2f5105b707ccd06ae4d"}, "SiriusAsset|App.GachaAnimation.PostProcessing|RadialBlurFeature":{"nodes":[[0,"MonoBehaviour","Base",0],[1,"PPtr","m_GameObject",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"UInt8","m_Enabled",16384],[1,"PPtr","m_Script",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"string","m_Name",0],[2,"Array","Array",16384],[3,"int","size",0],[3,"char","data",0],[1,"UInt8","m_Active",16384],[1,"PPtr<$Shader>","_blurShader",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"int","_injectionPoint",0]],"typeHash":"10c8c66cb44cf8c825fee29edfbfcf5c"}, "SiriusAsset|App.UI.Text.DropShadow|TextDropShadowFeature":{"nodes":[[0,"MonoBehaviour","Base",0],[1,"PPtr","m_GameObject",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"UInt8","m_Enabled",16384],[1,"PPtr","m_Script",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"string","m_Name",0],[2,"Array","Array",16384],[3,"int","size",0],[3,"char","data",0],[1,"UInt8","m_Active",16384],[1,"PPtr<$Shader>","_silhouetteShader",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"PPtr<$Shader>","_blurShader",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"PPtr<$Shader>","_compositeShader",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0]],"typeHash":"85721efe8a16a08cd5d8f51013555270"}, +"Unity.InputSystem|UnityEngine.InputSystem.UI|InputSystemUIInputModule":{"nodes":[[0,"MonoBehaviour","Base",0],[1,"PPtr","m_GameObject",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"UInt8","m_Enabled",16384],[1,"PPtr","m_Script",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"string","m_Name",0],[2,"Array","Array",16384],[3,"int","size",0],[3,"char","data",0],[1,"UInt8","m_SendPointerHoverToParent",16384],[1,"float","m_MoveRepeatDelay",0],[1,"float","m_MoveRepeatRate",0],[1,"PPtr<$Transform>","m_XRTrackingOrigin",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"PPtr<$InputActionAsset>","m_ActionsAsset",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"PPtr<$InputActionReference>","m_PointAction",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"PPtr<$InputActionReference>","m_MoveAction",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"PPtr<$InputActionReference>","m_SubmitAction",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"PPtr<$InputActionReference>","m_CancelAction",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"PPtr<$InputActionReference>","m_LeftClickAction",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"PPtr<$InputActionReference>","m_MiddleClickAction",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"PPtr<$InputActionReference>","m_RightClickAction",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"PPtr<$InputActionReference>","m_ScrollWheelAction",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"PPtr<$InputActionReference>","m_TrackedDevicePositionAction",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"PPtr<$InputActionReference>","m_TrackedDeviceOrientationAction",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"UInt8","m_DeselectOnBackgroundClick",16384],[1,"int","m_PointerBehavior",0],[1,"int","m_CursorLockBehavior",0],[1,"float","m_ScrollDeltaPerTick",0]],"typeHash":"daeac1347f8039f61cd4017ff33bd3c6"}, "Unity.RenderPipelines.Universal.Runtime|UnityEngine.Rendering.Universal|PostProcessData":{"nodes":[[0,"MonoBehaviour","Base",0],[1,"PPtr","m_GameObject",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"UInt8","m_Enabled",16384],[1,"PPtr","m_Script",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"string","m_Name",0],[2,"Array","Array",16384],[3,"int","size",0],[3,"char","data",0],[1,"ShaderResources","shaders",0],[2,"PPtr<$Shader>","stopNanPS",0],[3,"int","m_FileID",0],[3,"SInt64","m_PathID",0],[2,"PPtr<$Shader>","subpixelMorphologicalAntialiasingPS",0],[3,"int","m_FileID",0],[3,"SInt64","m_PathID",0],[2,"PPtr<$Shader>","gaussianDepthOfFieldPS",0],[3,"int","m_FileID",0],[3,"SInt64","m_PathID",0],[2,"PPtr<$Shader>","bokehDepthOfFieldPS",0],[3,"int","m_FileID",0],[3,"SInt64","m_PathID",0],[2,"PPtr<$Shader>","cameraMotionBlurPS",0],[3,"int","m_FileID",0],[3,"SInt64","m_PathID",0],[2,"PPtr<$Shader>","paniniProjectionPS",0],[3,"int","m_FileID",0],[3,"SInt64","m_PathID",0],[2,"PPtr<$Shader>","lutBuilderLdrPS",0],[3,"int","m_FileID",0],[3,"SInt64","m_PathID",0],[2,"PPtr<$Shader>","lutBuilderHdrPS",0],[3,"int","m_FileID",0],[3,"SInt64","m_PathID",0],[2,"PPtr<$Shader>","bloomPS",0],[3,"int","m_FileID",0],[3,"SInt64","m_PathID",0],[2,"PPtr<$Shader>","temporalAntialiasingPS",0],[3,"int","m_FileID",0],[3,"SInt64","m_PathID",0],[2,"PPtr<$Shader>","LensFlareDataDrivenPS",0],[3,"int","m_FileID",0],[3,"SInt64","m_PathID",0],[2,"PPtr<$Shader>","LensFlareScreenSpacePS",0],[3,"int","m_FileID",0],[3,"SInt64","m_PathID",0],[2,"PPtr<$Shader>","scalingSetupPS",0],[3,"int","m_FileID",0],[3,"SInt64","m_PathID",0],[2,"PPtr<$Shader>","easuPS",0],[3,"int","m_FileID",0],[3,"SInt64","m_PathID",0],[2,"PPtr<$Shader>","uberPostPS",0],[3,"int","m_FileID",0],[3,"SInt64","m_PathID",0],[2,"PPtr<$Shader>","finalPostPassPS",0],[3,"int","m_FileID",0],[3,"SInt64","m_PathID",0],[2,"int","m_ShaderResourcesVersion",0],[1,"TextureResources","textures",0],[2,"vector","blueNoise16LTex",0],[3,"Array","Array",0],[4,"int","size",0],[4,"PPtr<$Texture2D>","data",0],[5,"int","m_FileID",0],[5,"SInt64","m_PathID",0],[2,"vector","filmGrainTex",0],[3,"Array","Array",0],[4,"int","size",0],[4,"PPtr<$Texture2D>","data",0],[5,"int","m_FileID",0],[5,"SInt64","m_PathID",0],[2,"PPtr<$Texture2D>","smaaAreaTex",0],[3,"int","m_FileID",0],[3,"SInt64","m_PathID",0],[2,"PPtr<$Texture2D>","smaaSearchTex",0],[3,"int","m_FileID",0],[3,"SInt64","m_PathID",0],[2,"int","m_TexturesResourcesVersion",0]],"typeHash":"3fd3a74e10cdfd45658891dfffc27a90"}, +"Unity.RenderPipelines.Universal.Runtime|UnityEngine.Rendering.Universal|UniversalAdditionalCameraData":{"nodes":[[0,"MonoBehaviour","Base",0],[1,"PPtr","m_GameObject",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"UInt8","m_Enabled",16384],[1,"PPtr","m_Script",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"string","m_Name",0],[2,"Array","Array",16384],[3,"int","size",0],[3,"char","data",0],[1,"UInt8","m_RenderShadows",16384],[1,"int","m_RequiresDepthTextureOption",0],[1,"int","m_RequiresOpaqueTextureOption",0],[1,"int","m_CameraType",0],[1,"vector","m_Cameras",0],[2,"Array","Array",0],[3,"int","size",0],[3,"PPtr<$Camera>","data",0],[4,"int","m_FileID",0],[4,"SInt64","m_PathID",0],[1,"int","m_RendererIndex",0],[1,"BitField","m_VolumeLayerMask",0],[2,"unsigned int","m_Bits",0],[1,"PPtr<$Transform>","m_VolumeTrigger",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"int","m_VolumeFrameworkUpdateModeOption",0],[1,"UInt8","m_RenderPostProcessing",16384],[1,"int","m_Antialiasing",0],[1,"int","m_AntialiasingQuality",0],[1,"UInt8","m_StopNaN",16384],[1,"UInt8","m_Dithering",16384],[1,"UInt8","m_ClearDepth",16384],[1,"UInt8","m_AllowXRRendering",16384],[1,"UInt8","m_AllowHDROutput",16384],[1,"UInt8","m_UseScreenCoordOverride",16384],[1,"Vector4f","m_ScreenSizeOverride",0],[2,"float","x",0],[2,"float","y",0],[2,"float","z",0],[2,"float","w",0],[1,"Vector4f","m_ScreenCoordScaleBias",0],[2,"float","x",0],[2,"float","y",0],[2,"float","z",0],[2,"float","w",0],[1,"UInt8","m_RequiresDepthTexture",16384],[1,"UInt8","m_RequiresColorTexture",16384],[1,"Settings","m_TaaSettings",0],[2,"int","m_Quality",0],[2,"float","m_FrameInfluence",0],[2,"float","m_JitterScale",0],[2,"float","m_MipBias",0],[2,"float","m_VarianceClampScale",0],[2,"float","m_ContrastAdaptiveSharpening",0],[1,"int","m_Version",0]],"typeHash":"1b32c5551298e17b2b3237d120b9537b"}, "Unity.RenderPipelines.Universal.Runtime|UnityEngine.Rendering.Universal|UniversalRenderPipelineAsset":{"nodes":[[0,"MonoBehaviour","Base",0],[1,"PPtr","m_GameObject",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"UInt8","m_Enabled",16384],[1,"PPtr","m_Script",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"string","m_Name",0],[2,"Array","Array",16384],[3,"int","size",0],[3,"char","data",0],[1,"int","k_AssetVersion",0],[1,"int","k_AssetPreviousVersion",0],[1,"int","m_RendererType",0],[1,"PPtr<$ScriptableRendererData>","m_RendererData",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"vector","m_RendererDataList",0],[2,"Array","Array",0],[3,"int","size",0],[3,"PPtr<$ScriptableRendererData>","data",0],[4,"int","m_FileID",0],[4,"SInt64","m_PathID",0],[1,"int","m_DefaultRendererIndex",0],[1,"UInt8","m_RequireDepthTexture",16384],[1,"UInt8","m_RequireOpaqueTexture",16384],[1,"int","m_OpaqueDownsampling",0],[1,"UInt8","m_SupportsTerrainHoles",16384],[1,"UInt8","m_SupportsHDR",16384],[1,"int","m_HDRColorBufferPrecision",0],[1,"int","m_MSAA",0],[1,"float","m_RenderScale",0],[1,"int","m_UpscalingFilter",0],[1,"UInt8","m_FsrOverrideSharpness",16384],[1,"float","m_FsrSharpness",0],[1,"UInt8","m_EnableLODCrossFade",16384],[1,"int","m_LODCrossFadeDitheringType",0],[1,"int","m_ShEvalMode",0],[1,"int","m_LightProbeSystem",0],[1,"int","m_ProbeVolumeMemoryBudget",0],[1,"int","m_ProbeVolumeBlendingMemoryBudget",0],[1,"UInt8","m_SupportProbeVolumeGPUStreaming",16384],[1,"UInt8","m_SupportProbeVolumeDiskStreaming",16384],[1,"UInt8","m_SupportProbeVolumeScenarios",16384],[1,"UInt8","m_SupportProbeVolumeScenarioBlending",16384],[1,"int","m_ProbeVolumeSHBands",0],[1,"int","m_MainLightRenderingMode",0],[1,"UInt8","m_MainLightShadowsSupported",16384],[1,"int","m_MainLightShadowmapResolution",0],[1,"int","m_AdditionalLightsRenderingMode",0],[1,"int","m_AdditionalLightsPerObjectLimit",0],[1,"UInt8","m_AdditionalLightShadowsSupported",16384],[1,"int","m_AdditionalLightsShadowmapResolution",0],[1,"int","m_AdditionalLightsShadowResolutionTierLow",0],[1,"int","m_AdditionalLightsShadowResolutionTierMedium",0],[1,"int","m_AdditionalLightsShadowResolutionTierHigh",0],[1,"UInt8","m_ReflectionProbeBlending",16384],[1,"UInt8","m_ReflectionProbeBoxProjection",16384],[1,"UInt8","m_ReflectionProbeAtlas",16384],[1,"float","m_ShadowDistance",0],[1,"int","m_ShadowCascadeCount",0],[1,"float","m_Cascade2Split",0],[1,"Vector2f","m_Cascade3Split",0],[2,"float","x",0],[2,"float","y",0],[1,"Vector3f","m_Cascade4Split",0],[2,"float","x",0],[2,"float","y",0],[2,"float","z",0],[1,"float","m_CascadeBorder",0],[1,"float","m_ShadowDepthBias",0],[1,"float","m_ShadowNormalBias",0],[1,"UInt8","m_SoftShadowsSupported",16384],[1,"UInt8","m_ConservativeEnclosingSphere",16384],[1,"int","m_NumIterationsEnclosingSphere",0],[1,"int","m_SoftShadowQuality",0],[1,"int","m_AdditionalLightsCookieResolution",0],[1,"int","m_AdditionalLightsCookieFormat",0],[1,"UInt8","m_UseSRPBatcher",16384],[1,"UInt8","m_SupportsDynamicBatching",16384],[1,"UInt8","m_MixedLightingSupported",16384],[1,"UInt8","m_SupportsLightCookies",16384],[1,"UInt8","m_SupportsLightLayers",16384],[1,"int","m_DebugLevel",0],[1,"int","m_StoreActionsOptimization",0],[1,"UInt8","m_UseAdaptivePerformance",16384],[1,"int","m_ColorGradingMode",0],[1,"int","m_ColorGradingLutSize",0],[1,"UInt8","m_AllowPostProcessAlphaOutput",16384],[1,"UInt8","m_UseFastSRGBLinearConversion",16384],[1,"UInt8","m_SupportDataDrivenLensFlare",16384],[1,"UInt8","m_SupportScreenSpaceLensFlare",16384],[1,"UInt8","m_GPUResidentDrawerMode",16384],[1,"float","m_SmallMeshScreenPercentage",0],[1,"UInt8","m_GPUResidentDrawerEnableOcclusionCullingInCameras",16384],[1,"int","m_ShadowType",0],[1,"UInt8","m_LocalShadowsSupported",16384],[1,"int","m_LocalShadowsAtlasResolution",0],[1,"int","m_MaxPixelLights",0],[1,"int","m_ShadowAtlasResolution",0],[1,"int","m_VolumeFrameworkUpdateMode",0],[1,"PPtr<$VolumeProfile>","m_VolumeProfile",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"ProbeVolumeSceneData","apvScenesData",0],[2,"SerializedDictionary`2","obsoleteSceneBounds",0],[3,"vector","m_Keys",0],[4,"Array","Array",16384],[5,"int","size",0],[5,"string","data",0],[6,"Array","Array",16384],[7,"int","size",0],[7,"char","data",0],[3,"vector","m_Values",0],[4,"Array","Array",16384],[5,"int","size",0],[5,"AABB","data",0],[6,"Vector3f","m_Center",0],[7,"float","x",0],[7,"float","y",0],[7,"float","z",0],[6,"Vector3f","m_Extent",0],[7,"float","x",0],[7,"float","y",0],[7,"float","z",0],[2,"SerializedDictionary`2","obsoleteHasProbeVolumes",0],[3,"vector","m_Keys",0],[4,"Array","Array",16384],[5,"int","size",0],[5,"string","data",0],[6,"Array","Array",16384],[7,"int","size",0],[7,"char","data",0],[3,"vector","m_Values",16384],[4,"Array","Array",16384],[5,"int","size",0],[5,"UInt8","data",0],[1,"int","m_ShaderVariantLogLevel",0],[1,"int","m_ShadowCascades",0],[1,"TextureResources","m_Textures",0],[2,"PPtr<$Texture2D>","blueNoise64LTex",0],[3,"int","m_FileID",0],[3,"SInt64","m_PathID",0],[2,"PPtr<$Texture2D>","bayerMatrixTex",0],[3,"int","m_FileID",0],[3,"SInt64","m_PathID",0]],"typeHash":"ea78afb1b30663b7c04c956e9f2acdec"}, "Unity.RenderPipelines.Universal.Runtime|UnityEngine.Rendering.Universal|UniversalRendererData":{"nodes":[[0,"MonoBehaviour","Base",0],[1,"PPtr","m_GameObject",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"UInt8","m_Enabled",16384],[1,"PPtr","m_Script",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"string","m_Name",0],[2,"Array","Array",16384],[3,"int","size",0],[3,"char","data",0],[1,"DebugShaderResources","debugShaders",0],[2,"PPtr<$Shader>","debugReplacementPS",0],[3,"int","m_FileID",0],[3,"SInt64","m_PathID",0],[2,"PPtr<$Shader>","hdrDebugViewPS",0],[3,"int","m_FileID",0],[3,"SInt64","m_PathID",0],[1,"ProbeVolumeResources","probeVolumeResources",0],[2,"PPtr<$Shader>","probeVolumeDebugShader",0],[3,"int","m_FileID",0],[3,"SInt64","m_PathID",0],[2,"PPtr<$Shader>","probeVolumeFragmentationDebugShader",0],[3,"int","m_FileID",0],[3,"SInt64","m_PathID",0],[2,"PPtr<$Shader>","probeVolumeOffsetDebugShader",0],[3,"int","m_FileID",0],[3,"SInt64","m_PathID",0],[2,"PPtr<$Shader>","probeVolumeSamplingDebugShader",0],[3,"int","m_FileID",0],[3,"SInt64","m_PathID",0],[2,"PPtr<$Mesh>","probeSamplingDebugMesh",0],[3,"int","m_FileID",0],[3,"SInt64","m_PathID",0],[2,"PPtr<$Texture2D>","probeSamplingDebugTexture",0],[3,"int","m_FileID",0],[3,"SInt64","m_PathID",0],[2,"PPtr<$ComputeShader>","probeVolumeBlendStatesCS",0],[3,"int","m_FileID",0],[3,"SInt64","m_PathID",0],[1,"vector","m_RendererFeatures",0],[2,"Array","Array",0],[3,"int","size",0],[3,"PPtr<$ScriptableRendererFeature>","data",0],[4,"int","m_FileID",0],[4,"SInt64","m_PathID",0],[1,"vector","m_RendererFeatureMap",0],[2,"Array","Array",16384],[3,"int","size",0],[3,"SInt64","data",0],[1,"UInt8","m_UseNativeRenderPass",16384],[1,"PPtr<$XRSystemData>","xrSystemData",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"PPtr<$PostProcessData>","postProcessData",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"int","m_AssetVersion",0],[1,"BitField","m_PrepassLayerMask",0],[2,"unsigned int","m_Bits",0],[1,"BitField","m_OpaqueLayerMask",0],[2,"unsigned int","m_Bits",0],[1,"BitField","m_TransparentLayerMask",0],[2,"unsigned int","m_Bits",0],[1,"StencilStateData","m_DefaultStencilState",0],[2,"UInt8","overrideStencilState",16384],[2,"int","stencilReference",0],[2,"int","stencilCompareFunction",0],[2,"int","passOperation",0],[2,"int","failOperation",0],[2,"int","zFailOperation",0],[1,"UInt8","m_ShadowTransparentReceive",16384],[1,"int","m_RenderingMode",0],[1,"int","m_DepthPrimingMode",0],[1,"int","m_CopyDepthMode",0],[1,"int","m_DepthAttachmentFormat",0],[1,"int","m_DepthTextureFormat",0],[1,"UInt8","m_AccurateGbufferNormals",16384],[1,"int","m_IntermediateTextureMode",0]],"typeHash":"c5a78730dc24e0c4472a14856758a6b5"}, "Unity.TextMeshPro|TMPro|TMP_Settings":{"nodes":[[0,"MonoBehaviour","Base",0],[1,"PPtr","m_GameObject",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"UInt8","m_Enabled",16384],[1,"PPtr","m_Script",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"string","m_Name",0],[2,"Array","Array",16384],[3,"int","size",0],[3,"char","data",0],[1,"string","assetVersion",0],[2,"Array","Array",16384],[3,"int","size",0],[3,"char","data",0],[1,"int","m_TextWrappingMode",0],[1,"UInt8","m_enableKerning",16384],[1,"vector","m_ActiveFontFeatures",0],[2,"Array","Array",16384],[3,"int","size",0],[3,"unsigned int","data",0],[1,"UInt8","m_enableExtraPadding",16384],[1,"UInt8","m_enableTintAllSprites",16384],[1,"UInt8","m_enableParseEscapeCharacters",16384],[1,"UInt8","m_EnableRaycastTarget",16384],[1,"UInt8","m_GetFontFeaturesAtRuntime",16384],[1,"int","m_missingGlyphCharacter",0],[1,"UInt8","m_ClearDynamicDataOnBuild",16384],[1,"UInt8","m_warningsDisabled",16384],[1,"PPtr<$TMP_FontAsset>","m_defaultFontAsset",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"string","m_defaultFontAssetPath",0],[2,"Array","Array",16384],[3,"int","size",0],[3,"char","data",0],[1,"float","m_defaultFontSize",0],[1,"float","m_defaultAutoSizeMinRatio",0],[1,"float","m_defaultAutoSizeMaxRatio",0],[1,"Vector2f","m_defaultTextMeshProTextContainerSize",0],[2,"float","x",0],[2,"float","y",0],[1,"Vector2f","m_defaultTextMeshProUITextContainerSize",0],[2,"float","x",0],[2,"float","y",0],[1,"UInt8","m_autoSizeTextContainer",16384],[1,"UInt8","m_IsTextObjectScaleStatic",16384],[1,"vector","m_fallbackFontAssets",0],[2,"Array","Array",0],[3,"int","size",0],[3,"PPtr<$TMP_FontAsset>","data",0],[4,"int","m_FileID",0],[4,"SInt64","m_PathID",0],[1,"UInt8","m_matchMaterialPreset",16384],[1,"UInt8","m_HideSubTextObjects",16384],[1,"PPtr<$TMP_SpriteAsset>","m_defaultSpriteAsset",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"string","m_defaultSpriteAssetPath",0],[2,"Array","Array",16384],[3,"int","size",0],[3,"char","data",0],[1,"UInt8","m_enableEmojiSupport",16384],[1,"unsigned int","m_MissingCharacterSpriteUnicode",0],[1,"vector","m_EmojiFallbackTextAssets",0],[2,"Array","Array",0],[3,"int","size",0],[3,"PPtr<$TMP_Asset>","data",0],[4,"int","m_FileID",0],[4,"SInt64","m_PathID",0],[1,"string","m_defaultColorGradientPresetsPath",0],[2,"Array","Array",16384],[3,"int","size",0],[3,"char","data",0],[1,"PPtr<$TMP_StyleSheet>","m_defaultStyleSheet",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"string","m_StyleSheetsResourcePath",0],[2,"Array","Array",16384],[3,"int","size",0],[3,"char","data",0],[1,"PPtr<$TextAsset>","m_leadingCharacters",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"PPtr<$TextAsset>","m_followingCharacters",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"UInt8","m_UseModernHangulLineBreakingRules",16384]],"typeHash":"bfa9d6dfbc3c74a843a3b197bdcc6639"}, -"Unity.TextMeshPro|TMPro|TMP_StyleSheet":{"nodes":[[0,"MonoBehaviour","Base",0],[1,"PPtr","m_GameObject",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"UInt8","m_Enabled",16384],[1,"PPtr","m_Script",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"string","m_Name",0],[2,"Array","Array",16384],[3,"int","size",0],[3,"char","data",0],[1,"TMP_Style","m_StyleList",0],[2,"Array","Array",0],[3,"int","size",0],[3,"TMP_Style","data",0],[4,"string","m_Name",0],[5,"Array","Array",16384],[6,"int","size",0],[6,"char","data",0],[4,"int","m_HashCode",0],[4,"string","m_OpeningDefinition",0],[5,"Array","Array",16384],[6,"int","size",0],[6,"char","data",0],[4,"string","m_ClosingDefinition",0],[5,"Array","Array",16384],[6,"int","size",0],[6,"char","data",0],[4,"vector","m_OpeningTagArray",0],[5,"Array","Array",16384],[6,"int","size",0],[6,"unsigned int","data",0],[4,"vector","m_ClosingTagArray",0],[5,"Array","Array",16384],[6,"int","size",0],[6,"unsigned int","data",0]],"typeHash":"8d5318ed8488b1fe17c08044ce1b8309"} +"Unity.TextMeshPro|TMPro|TMP_StyleSheet":{"nodes":[[0,"MonoBehaviour","Base",0],[1,"PPtr","m_GameObject",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"UInt8","m_Enabled",16384],[1,"PPtr","m_Script",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"string","m_Name",0],[2,"Array","Array",16384],[3,"int","size",0],[3,"char","data",0],[1,"TMP_Style","m_StyleList",0],[2,"Array","Array",0],[3,"int","size",0],[3,"TMP_Style","data",0],[4,"string","m_Name",0],[5,"Array","Array",16384],[6,"int","size",0],[6,"char","data",0],[4,"int","m_HashCode",0],[4,"string","m_OpeningDefinition",0],[5,"Array","Array",16384],[6,"int","size",0],[6,"char","data",0],[4,"string","m_ClosingDefinition",0],[5,"Array","Array",16384],[6,"int","size",0],[6,"char","data",0],[4,"vector","m_OpeningTagArray",0],[5,"Array","Array",16384],[6,"int","size",0],[6,"unsigned int","data",0],[4,"vector","m_ClosingTagArray",0],[5,"Array","Array",16384],[6,"int","size",0],[6,"unsigned int","data",0]],"typeHash":"8d5318ed8488b1fe17c08044ce1b8309"}, +"UnityEngine.UI|UnityEngine.EventSystems|EventSystem":{"nodes":[[0,"MonoBehaviour","Base",0],[1,"PPtr","m_GameObject",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"UInt8","m_Enabled",16384],[1,"PPtr","m_Script",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"string","m_Name",0],[2,"Array","Array",16384],[3,"int","size",0],[3,"char","data",0],[1,"PPtr<$GameObject>","m_FirstSelected",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"UInt8","m_sendNavigationEvents",16384],[1,"int","m_DragThreshold",0]],"typeHash":"e987953190eb4c12cf19df790566dc2c"}, +"UnityEngine.UI|UnityEngine.EventSystems|Physics2DRaycaster":{"nodes":[[0,"MonoBehaviour","Base",0],[1,"PPtr","m_GameObject",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"UInt8","m_Enabled",16384],[1,"PPtr","m_Script",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"string","m_Name",0],[2,"Array","Array",16384],[3,"int","size",0],[3,"char","data",0],[1,"BitField","m_EventMask",0],[2,"unsigned int","m_Bits",0],[1,"int","m_MaxRayIntersections",0]],"typeHash":"e8d390bd9ecacc453a7500b90d0c0292"}, +"UnityEngine.UI|UnityEngine.UI|CanvasScaler":{"nodes":[[0,"MonoBehaviour","Base",0],[1,"PPtr","m_GameObject",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"UInt8","m_Enabled",16384],[1,"PPtr","m_Script",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"string","m_Name",0],[2,"Array","Array",16384],[3,"int","size",0],[3,"char","data",0],[1,"int","m_UiScaleMode",0],[1,"float","m_ReferencePixelsPerUnit",0],[1,"float","m_ScaleFactor",0],[1,"Vector2f","m_ReferenceResolution",0],[2,"float","x",0],[2,"float","y",0],[1,"int","m_ScreenMatchMode",0],[1,"float","m_MatchWidthOrHeight",0],[1,"int","m_PhysicalUnit",0],[1,"float","m_FallbackScreenDPI",0],[1,"float","m_DefaultSpriteDPI",0],[1,"float","m_DynamicPixelsPerUnit",0],[1,"UInt8","m_PresetInfoIsWorld",16384]],"typeHash":"540882762544409cc4530e60db00e951"}, +"UnityEngine.UI|UnityEngine.UI|GraphicRaycaster":{"nodes":[[0,"MonoBehaviour","Base",0],[1,"PPtr","m_GameObject",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"UInt8","m_Enabled",16384],[1,"PPtr","m_Script",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"string","m_Name",0],[2,"Array","Array",16384],[3,"int","size",0],[3,"char","data",0],[1,"UInt8","m_IgnoreReversedGraphics",16384],[1,"int","m_BlockingObjects",0],[1,"BitField","m_BlockingMask",0],[2,"unsigned int","m_Bits",0]],"typeHash":"5a4aa2850fe11587f47e34c270c7fd22"}, +"UnityEngine.UI|UnityEngine.UI|Image":{"nodes":[[0,"MonoBehaviour","Base",0],[1,"PPtr","m_GameObject",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"UInt8","m_Enabled",16384],[1,"PPtr","m_Script",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"string","m_Name",0],[2,"Array","Array",16384],[3,"int","size",0],[3,"char","data",0],[1,"PPtr<$Material>","m_Material",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"ColorRGBA","m_Color",0],[2,"float","r",0],[2,"float","g",0],[2,"float","b",0],[2,"float","a",0],[1,"UInt8","m_RaycastTarget",16384],[1,"Vector4f","m_RaycastPadding",0],[2,"float","x",0],[2,"float","y",0],[2,"float","z",0],[2,"float","w",0],[1,"UInt8","m_Maskable",16384],[1,"CullStateChangedEvent","m_OnCullStateChanged",0],[2,"PersistentCallGroup","m_PersistentCalls",0],[3,"PersistentCall","m_Calls",0],[4,"Array","Array",0],[5,"int","size",0],[5,"PersistentCall","data",0],[6,"PPtr<$Object>","m_Target",0],[7,"int","m_FileID",0],[7,"SInt64","m_PathID",0],[6,"string","m_TargetAssemblyTypeName",0],[7,"Array","Array",16384],[8,"int","size",0],[8,"char","data",0],[6,"string","m_MethodName",0],[7,"Array","Array",16384],[8,"int","size",0],[8,"char","data",0],[6,"int","m_Mode",0],[6,"ArgumentCache","m_Arguments",0],[7,"PPtr<$Object>","m_ObjectArgument",0],[8,"int","m_FileID",0],[8,"SInt64","m_PathID",0],[7,"string","m_ObjectArgumentAssemblyTypeName",0],[8,"Array","Array",16384],[9,"int","size",0],[9,"char","data",0],[7,"int","m_IntArgument",0],[7,"float","m_FloatArgument",0],[7,"string","m_StringArgument",0],[8,"Array","Array",16384],[9,"int","size",0],[9,"char","data",0],[7,"UInt8","m_BoolArgument",16384],[6,"int","m_CallState",0],[1,"PPtr<$Sprite>","m_Sprite",0],[2,"int","m_FileID",0],[2,"SInt64","m_PathID",0],[1,"int","m_Type",0],[1,"UInt8","m_PreserveAspect",16384],[1,"UInt8","m_FillCenter",16384],[1,"int","m_FillMethod",0],[1,"float","m_FillAmount",0],[1,"UInt8","m_FillClockwise",16384],[1,"int","m_FillOrigin",0],[1,"UInt8","m_UseSpriteMesh",16384],[1,"float","m_PixelsPerUnitMultiplier",0]],"typeHash":"dd9dda1dfd39e605c49e72003342ef5d"} }} diff --git a/tests/test_story_ui.py b/tests/test_story_ui.py index a09a5d5..d88b877 100644 --- a/tests/test_story_ui.py +++ b/tests/test_story_ui.py @@ -127,6 +127,9 @@ def deref(self, owner, pptr): def script_class(self, o): return o.cls + + def typetree(self, o): + return o.read_typetree() return Ex()