include "PlacementShared.fbs";
namespace pkNX.Structures.FlatBuffers.SWSH;

table PlacementZoneSpeciesHolder {
    Field_00:PlacementZone_F02 (required);
    Field_01:PlacementZone_F02_Field1 (required);

    /// Species Model to load
    Species:uint;
    /// Form Model to load
    Form:uint;
    /// Gender Model to load: Male and Genderless 0, Female 1
    Gender:uint;

    /// Color Model to load: Normal 0, Shiny 1
    Shiny:uint;
    Unused2:uint;

    Hash_07:ulong;
    Hash_08:ulong;
    Hash_09:ulong;
    Field_10:[FlatDummyEntry] (required); // none have this
    Field_11:float;
    Field_12:PlacementZone_F02_Nine (required);
    Field_13:int; // 0, 1, 3, 4
    Field_14:int; // 6, 11, 14 or 0
    Num_15:ubyte; // 0 or 1 (bool?)
}

table PlacementZone_F02 {
    Field_00:PlacementZoneMetaTripleXYZ (required);
    Hash_01:ulong;
    Hash_02:ulong;
    Hash_03:ulong;
    Hash_04:ulong;
    Field_05:uint; // unused
    Field_06:uint; // unused
    Field_07:uint; // unused
    Field_08:uint; // unused
    Field_09:FlatDummyObject (required); // no fields present in any existing
    Field_10:uint; // unused
    Field_11:FlatDummyObject (required); // no fields present in any existing
    Hash_12:ulong;
}

table PlacementZone_F02_Field1 {
    Field_00:PlacementZone_F02_Inner (required);
}

table PlacementZone_F02_Inner {
    Field_00:PlacementZoneMetaTripleXYZ (required);
    Hash_01:ulong;
    Hash_02:ulong;
    Hash_03:ulong;
    Field_04:PlacementZone_F02_IntFloat (required);
    Num_05:ubyte; // 0 or 1 (bool?)
    Hash_06:ulong;
    Field_07:PlacementZone_F02_IntFloat (required);
}

table PlacementZone_F02_IntFloat {
    Field_00:int  ;
    Field_01:float;
    Field_02:float;
    Field_03:float;
    Field_04:float;
}
