diff --git a/pkNX.Structures.FlatBuffers/Gen8/Placement/Zone/Holders/PlacementZone8MovementPathHolder.cs b/pkNX.Structures.FlatBuffers/Gen8/Placement/Zone/Holders/PlacementZone8MovementPathHolder.cs index 5a945592..c1aed75e 100644 --- a/pkNX.Structures.FlatBuffers/Gen8/Placement/Zone/Holders/PlacementZone8MovementPathHolder.cs +++ b/pkNX.Structures.FlatBuffers/Gen8/Placement/Zone/Holders/PlacementZone8MovementPathHolder.cs @@ -24,10 +24,12 @@ public class PlacementZone8MovementPathHolder [FlatBufferTable, TypeConverter(typeof(ExpandableObjectConverter))] public class PlacementZone8_V3f { - [FlatBufferItem(00)] public float Field_00 { get; set; } - [FlatBufferItem(01)] public float Field_01 { get; set; } - [FlatBufferItem(02)] public float Field_02 { get; set; } + [FlatBufferItem(00)] public float LocationX { get; set; } + [FlatBufferItem(01)] public float LocationY { get; set; } + [FlatBufferItem(02)] public float LocationZ { get; set; } - public override string ToString() => $"({Field_00}, {Field_01}, {Field_02})"; + public string Location3f => $"({LocationX}, {LocationY}, {LocationZ})"; + + public override string ToString() => Location3f; } } diff --git a/pkNX.Structures.FlatBuffers/Gen8/Placement/Zone/Holders/PlacementZone8StaticObjectsHolder.cs b/pkNX.Structures.FlatBuffers/Gen8/Placement/Zone/Holders/PlacementZone8StaticObjectsHolder.cs index 97b37f9d..4436a4fc 100644 --- a/pkNX.Structures.FlatBuffers/Gen8/Placement/Zone/Holders/PlacementZone8StaticObjectsHolder.cs +++ b/pkNX.Structures.FlatBuffers/Gen8/Placement/Zone/Holders/PlacementZone8StaticObjectsHolder.cs @@ -20,7 +20,7 @@ public class PlacementZone8StaticObjectsHolder [FlatBufferTable, TypeConverter(typeof(ExpandableObjectConverter))] public class PlacementZoneStaticObject8 { - [FlatBufferItem(0)] public PlacementZoneStaticObjectIdentifier8 Identifier { get; set; } = new(); + [FlatBufferItem(0)] public PlacementZoneMetaTripleXYZ8 Identifier { get; set; } = new(); [FlatBufferItem(1)] public uint Field_01 { get; set; } [FlatBufferItem(2)] public uint Rate { get; set; } // usually 100, but [FlatBufferItem(3)] public uint Field_03 { get; set; } @@ -30,23 +30,6 @@ public class PlacementZoneStaticObject8 [FlatBufferItem(7)] public PlacementZoneStaticObjectUnknown8 Field_07 { get; set; } = new(); } - [FlatBufferTable, TypeConverter(typeof(ExpandableObjectConverter))] - public class PlacementZoneStaticObjectIdentifier8 - { - [FlatBufferItem(00)] public float LocationX { get; set; } - [FlatBufferItem(01)] public float LocationY { get; set; } - [FlatBufferItem(02)] public float LocationZ { get; set; } - [FlatBufferItem(03)] public float RotationX { get; set; } // assumed - [FlatBufferItem(04)] public float RotationY { get; set; } - [FlatBufferItem(05)] public float RotationZ { get; set; } // assumed - [FlatBufferItem(06)] public float ScaleX { get; set; } - [FlatBufferItem(07)] public float ScaleY { get; set; } - [FlatBufferItem(08)] public float ScaleZ { get; set; } - [FlatBufferItem(09)] public ulong SpawnerID { get; set; } - [FlatBufferItem(10)] public ulong Field_A { get; set; } - [FlatBufferItem(11)] public ulong Field_B { get; set; } - } - [FlatBufferTable, TypeConverter(typeof(ExpandableObjectConverter))] public class PlacementZoneStaticObjectSpawn8 { diff --git a/pkNX.Structures.FlatBuffers/Gen8/Placement/Zone/Holders/PlacementZone8SymbolSpawnHolder.cs b/pkNX.Structures.FlatBuffers/Gen8/Placement/Zone/Holders/PlacementZone8SymbolSpawnHolder.cs index 966330f5..d02dda6b 100644 --- a/pkNX.Structures.FlatBuffers/Gen8/Placement/Zone/Holders/PlacementZone8SymbolSpawnHolder.cs +++ b/pkNX.Structures.FlatBuffers/Gen8/Placement/Zone/Holders/PlacementZone8SymbolSpawnHolder.cs @@ -12,13 +12,13 @@ namespace pkNX.Structures.FlatBuffers [FlatBufferTable, TypeConverter(typeof(ExpandableObjectConverter))] public class PlacementZone8SymbolSpawnHolder { - [FlatBufferItem(00)] public PlacementZone8SymbolSpawn Field_00 { get; set; } = new(); + [FlatBufferItem(00)] public PlacementZone8SymbolSpawn Object { get; set; } = new(); } [FlatBufferTable, TypeConverter(typeof(ExpandableObjectConverter))] public class PlacementZone8SymbolSpawn { - [FlatBufferItem(00)] public PlacementZoneMetaTripleXYZ8 Field_00 { get; set; } = new(); + [FlatBufferItem(00)] public PlacementZoneMetaTripleXYZ8 Identifier { get; set; } = new(); [FlatBufferItem(01)] public int Field_01 { get; set; } [FlatBufferItem(02)] public PlacementZone8_F20_Sub Field_02 { get; set; } = new(); [FlatBufferItem(03)] public PlacementZone8_F20_Sub Field_03 { get; set; } = new(); diff --git a/pkNX.Structures.FlatBuffers/Gen8/Placement/Zone/PlacementZone8.cs b/pkNX.Structures.FlatBuffers/Gen8/Placement/Zone/PlacementZone8.cs index 2fd633c1..c2f794fa 100644 --- a/pkNX.Structures.FlatBuffers/Gen8/Placement/Zone/PlacementZone8.cs +++ b/pkNX.Structures.FlatBuffers/Gen8/Placement/Zone/PlacementZone8.cs @@ -60,16 +60,32 @@ public class PlacementZone8 ? $"{name} ({desc}):" : $"{name}:"; + foreach (var sym in Symbols) + { + var obj = sym.Object; + var ident = obj.Identifier; + yield return $" {objects[ident.ObjectNameHash]}:"; + yield return $" Location: {ident.Location3f}"; + if (obj.SymbolHash is (0xCBF29CE484222645 or 0)) + { + yield return " No symbols."; // shouldn't hit here, if we have a holder we should have a symbol to hold. + break; + } + + var line = $"SymbolHash: {obj.SymbolHash:X16}, ObjectHash:{obj.Identifier.ObjectNameHash:X16}, {nameof(PlacementZone8SymbolSpawn.Field_06)}: {obj.Field_06}, {nameof(PlacementZone8SymbolSpawn.Field_01)}: {obj.Field_01}"; + yield return $" {line}"; + } + foreach (var so in StaticObjects) { var obj = so.Object; var ident = obj.Identifier; - yield return $" {objects[ident.SpawnerID]}:"; - yield return $" Location: ({ident.LocationX}, {ident.LocationY}, {ident.LocationZ})"; + yield return $" {objects[ident.ObjectNameHash]}:"; + yield return $" Location: {ident.Location3f}"; if (obj.Spawns.Length == 0) { yield return " No spawns."; // shouldn't hit here, if we have a holder we should have a spawn to hold. - yield break; + break; } var s = obj.Spawns; @@ -135,6 +151,8 @@ public class PlacementZoneMetaTripleXYZ8 [FlatBufferItem(10)] public ulong Hash_10 { get; set; } [FlatBufferItem(11)] public ulong Hash_11 { get; set; } + public string Location3f => $"({LocationX}, {LocationY}, {LocationZ})"; + public void Upscale(float factor) { ScaleX *= factor; @@ -142,7 +160,7 @@ public void Upscale(float factor) ScaleZ *= factor; } - public override string ToString() => $"{ObjectNameHash:X16}"; + public override string ToString() => $"{ObjectNameHash:X16} @ {Location3f}"; public PlacementZoneMetaTripleXYZ8 Clone() => new() {