//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:4.0.30319.42000
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

namespace Abide.Tag.Cache.Generated
{
    using System;
    using Abide.HaloLibrary;
    using Abide.Tag;
    
    /// <summary>
    /// Represents the generated physics_model_block tag block.
    /// </summary>
    public sealed class PhysicsModelBlock : Block
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="PhysicsModelBlock"/> class.
        /// </summary>
        public PhysicsModelBlock()
        {
            this.Fields.Add(new LongFlagsField("flags", "unused"));
            this.Fields.Add(new RealField("mass"));
            this.Fields.Add(new RealField("low freq. deactivation scale#0 is default (1). LESS than 1 deactivates less aggre" +
                        "ssively. GREATER than 1 is more agressive."));
            this.Fields.Add(new RealField("high freq. deactivation scale#0 is default (1). LESS than 1 deactivates less aggr" +
                        "essively. GREATER than 1 is more agressive."));
            this.Fields.Add(new PadField("", 24));
            this.Fields.Add(new BlockField<PhantomTypesBlock>("phantom types", 16));
            this.Fields.Add(new BlockField<PhysicsModelNodeConstraintEdgeBlock>("node edges*", 4096));
            this.Fields.Add(new BlockField<RigidBodiesBlock>("rigid bodies*", 64));
            this.Fields.Add(new BlockField<PhysicsModelMaterialsBlock>("materials*", 64));
            this.Fields.Add(new BlockField<SpheresBlock>("spheres*", 1024));
            this.Fields.Add(new BlockField<MultiSpheresBlock>("multi spheres*", 1024));
            this.Fields.Add(new BlockField<PillsBlock>("pills*", 1024));
            this.Fields.Add(new BlockField<BoxesBlock>("boxes*", 1024));
            this.Fields.Add(new BlockField<TrianglesBlock>("triangles*", 1024));
            this.Fields.Add(new BlockField<PolyhedraBlock>("polyhedra*", 1024));
            this.Fields.Add(new ExplanationField("ALL THESE WORLDS ARE YOURS, EXCEPT EUROPA...", "Attempt no landings there.  And you can\'t edit anything below this point, so why " +
                        "even look at it?"));
            this.Fields.Add(new BlockField<PolyhedronFourVectorsBlock>("polyhedron four vectors*", 4096));
            this.Fields.Add(new BlockField<PolyhedronPlaneEquationsBlock>("polyhedron plane equations*", 1024));
            this.Fields.Add(new BlockField<MassDistributionsBlock>("mass distributions*", 256));
            this.Fields.Add(new BlockField<ListsBlock>("lists*", 64));
            this.Fields.Add(new BlockField<ListShapesBlock>("list shapes*", 256));
            this.Fields.Add(new BlockField<MoppsBlock>("mopps*", 64));
            this.Fields.Add(new DataField("mopp codes*", 1, 16));
            this.Fields.Add(new BlockField<HingeConstraintsBlock>("hinge constraints*", 64));
            this.Fields.Add(new BlockField<RagdollConstraintsBlock>("ragdoll constraints*", 64));
            this.Fields.Add(new BlockField<RegionsBlock>("regions*", 16));
            this.Fields.Add(new BlockField<NodesBlock>("nodes*", 255));
            this.Fields.Add(new BlockField<GlobalTagImportInfoBlock>("import info*", 1));
            this.Fields.Add(new BlockField<GlobalErrorReportCategoriesBlock>("errors*", 64));
            this.Fields.Add(new BlockField<PointToPathCurveBlock>("point to path curves*", 64));
            this.Fields.Add(new BlockField<LimitedHingeConstraintsBlock>("limited hinge constraints*", 64));
            this.Fields.Add(new BlockField<BallAndSocketConstraintsBlock>("ball and socket constraints*", 64));
            this.Fields.Add(new BlockField<StiffSpringConstraintsBlock>("stiff spring constraints*", 64));
            this.Fields.Add(new BlockField<PrismaticConstraintsBlock>("prismatic constraints*", 64));
            this.Fields.Add(new BlockField<PhantomsBlock>("phantoms*", 1024));
        }
        /// <summary>
        /// Gets and returns the name of the physics_model_block tag block.
        /// </summary>
        public override string Name
        {
            get
            {
                return "physics_model_block";
            }
        }
        /// <summary>
        /// Gets and returns the display name of the physics_model_block tag block.
        /// </summary>
        public override string DisplayName
        {
            get
            {
                return "physics_model";
            }
        }
        /// <summary>
        /// Gets and returns the maximum number of elements allowed of the physics_model_block tag block.
        /// </summary>
        public override int MaximumElementCount
        {
            get
            {
                return 1;
            }
        }
        /// <summary>
        /// Gets and returns the alignment of the physics_model_block tag block.
        /// </summary>
        public override int Alignment
        {
            get
            {
                return 4;
            }
        }
    }
}
