From fa1d01dc0aa84ff2f73068c29db4661d2bf714e1 Mon Sep 17 00:00:00 2001 From: sora10pls <17801814+sora10pls@users.noreply.github.com> Date: Mon, 23 Sep 2024 22:13:56 -0400 Subject: [PATCH] Add TrinityCharacterCreationMasterComponent schema Field14 varies between many overworld objects, but its use is unclear to me at the moment --- .../Scene/SceneDumper.cs | 30 +++++++++++++++++++ .../Schemas/TrinitySceneObject.fbs | 26 ++++++++++++++++ 2 files changed, 56 insertions(+) diff --git a/pkNX.Structures.FlatBuffers.SV/pkNX.Structures.FlatBuffers.SV.Trinity/Scene/SceneDumper.cs b/pkNX.Structures.FlatBuffers.SV/pkNX.Structures.FlatBuffers.SV.Trinity/Scene/SceneDumper.cs index d3b2fa5f..36ed635e 100644 --- a/pkNX.Structures.FlatBuffers.SV/pkNX.Structures.FlatBuffers.SV.Trinity/Scene/SceneDumper.cs +++ b/pkNX.Structures.FlatBuffers.SV/pkNX.Structures.FlatBuffers.SV.Trinity/Scene/SceneDumper.cs @@ -95,6 +95,7 @@ private static void Dump(Memory data, string type, TextWriter tw, int dept case "trinity_EnvironmentParameter": DumpTrinityEnvironmentParameter(data, tw, depth); break; case "trinity_OverrideSensorData": DumpTrinityOverrideSensorData(data, tw, depth); break; case "pe_FlatbuffersDataComponent": DumpPEFlatbuffersDataComponent(data, tw, depth); break; + case "trinity_CharacterCreationMasterComponent": DumpTrinityCharacterCreationMasterComponent(data, tw, depth); break; default: if (ThrowOnUnknownType) throw new ArgumentOutOfRangeException(nameof(type), type, null); @@ -110,6 +111,35 @@ private static void Dump(Memory data, string type, TextWriter tw, int dept AddToBucket(data.Span, type); } + private static void DumpTrinityCharacterCreationMasterComponent(Memory data, TextWriter tw, int depth) + { + var props = FlatBufferConverter.DeserializeFrom(data); + Write(tw, depth, $"{nameof(props.Field00)}: {props.Field00}"); + Write(tw, depth, $"{nameof(props.Field01)}: {props.Field01}"); + Write(tw, depth, $"{nameof(props.Field02)}: {props.Field02}"); + Write(tw, depth, $"{nameof(props.Field03)}: {props.Field03}"); + Write(tw, depth, $"{nameof(props.Field04)}: {props.Field04}"); + Write(tw, depth, $"{nameof(props.Field05)}: {props.Field05}"); + Write(tw, depth, $"{nameof(props.Field06)}: {props.Field06}"); + Write(tw, depth, $"{nameof(props.Field07)}: {props.Field07}"); + Write(tw, depth, $"{nameof(props.Field08)}: {props.Field08}"); + Write(tw, depth, $"{nameof(props.Field09)}: {props.Field09}"); + Write(tw, depth, $"{nameof(props.Field10)}: {props.Field10}"); + Write(tw, depth, $"{nameof(props.Field11)}: {props.Field11}"); + Write(tw, depth, $"{nameof(props.Field12)}: {props.Field12}"); + Write(tw, depth, $"{nameof(props.Field13)}: {props.Field13}"); + Write(tw, depth, $"{nameof(props.Field14)}: {props.Field14}"); + + foreach (var obj in props.Field15) + { + Write(tw, depth + 1, $"{nameof(obj.ModelType)}: {obj.ModelType}"); + Write(tw, depth + 1, $"{nameof(obj.ModelPath)}: {obj.ModelPath}"); + Write(tw, depth + 1, $"{nameof(obj.Variant)}: {obj.Variant}"); + } + + Write(tw, depth, $"{nameof(props.Field16)}: {props.Field16}"); + } + private static void DumpTrinityOverrideSensorData(Memory data, TextWriter tw, int depth) { var props = FlatBufferConverter.DeserializeFrom(data); diff --git a/pkNX.Structures.FlatBuffers.SV/pkNX.Structures.FlatBuffers.SV.Trinity/Schemas/TrinitySceneObject.fbs b/pkNX.Structures.FlatBuffers.SV/pkNX.Structures.FlatBuffers.SV.Trinity/Schemas/TrinitySceneObject.fbs index 5dbe0754..eb662659 100644 --- a/pkNX.Structures.FlatBuffers.SV/pkNX.Structures.FlatBuffers.SV.Trinity/Schemas/TrinitySceneObject.fbs +++ b/pkNX.Structures.FlatBuffers.SV/pkNX.Structures.FlatBuffers.SV.Trinity/Schemas/TrinitySceneObject.fbs @@ -114,4 +114,30 @@ table TrinitySceneObject (fs_serializer) { Field_08:[string] (required); } +table TrinityCharacterCreationMasterComponent (fs_serializer) { + Field_00:string (required); + Field_01:byte; + Field_02:float; + Field_03:float; + Field_04:float; + Field_05:byte; + Field_06:float; + Field_07:uint; + Field_08:float; + Field_09:uint; + Field_10:float; + Field_11:uint; + Field_12:float; + Field_13:byte; + Field_14:uint; + Field_15:[TrinityCharacterCreationMasterComponentInner] (required); + Field_16:string; +} + +table TrinityCharacterCreationMasterComponentInner (fs_serializer) { + ModelType:string; + ModelPath:string; + Variant:string; +} + root_type TrinitySceneObject;