mirror of
https://github.com/kwsch/pkNX.git
synced 2026-06-01 01:37:19 -05:00
Name some fields, add symbol callouts to placement dumper
This commit is contained in:
parent
5bdd0034a1
commit
e13c8050e6
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user