Skip to content

Game.Prefabs.MeshGroupFlags

Assembly: Assembly-CSharp
Namespace: Game.Prefabs

Type: public enum (flags)

Base: System.Enum (underlying type: System.UInt32)

Summary:
Bitwise flags describing requirements or restrictions for a mesh group used by prefabs. Marked with [Flags], this enum is intended to be combined to represent multiple requirements/restrictions that affect which mesh variants are valid or should be used at runtime (for example selecting meshes appropriate for cold/warm conditions, home/homeless states, or vehicle type restrictions).


Fields

  • RequireCold = 1u
    Indicates the mesh group is intended for "cold" conditions or contexts. Use this flag to select meshes suitable for cold-themed variants.

  • RequireWarm = 2u
    Indicates the mesh group is intended for "warm" conditions or contexts. Use this flag to select meshes suitable for warm-themed variants.

  • RequireHome = 4u
    Indicates the mesh group is intended for "home" contexts (for example meshes used for residents or home-related variants).

  • RequireHomeless = 8u
    Indicates the mesh group is intended for "homeless" contexts (for example meshes used for homeless NPC variants or similar).

  • RequireMotorcycle = 0x10u
    Indicates the mesh group is intended for motorcycles (i.e., it requires a motorcycle vehicle type).

  • ForbidMotorcycle = 0x20u
    Indicates motorcycles are forbidden for this mesh group (i.e., this mesh should not be used for motorcycle vehicles).

Properties

  • This enum has no properties. It is a set of named constant values used as bit flags.

Constructors

  • Enums do not declare explicit constructors in source. The runtime provides the usual enum semantics; values are defined as named constants with the specified underlying unsigned integer values.

Methods

  • No instance methods are declared on the enum. Standard System.Enum methods (ToString, HasFlag, etc.) are available.

Usage Example

// Combine flags
MeshGroupFlags flags = MeshGroupFlags.RequireCold | MeshGroupFlags.RequireMotorcycle;

// Check for a specific flag
bool needsCold = (flags & MeshGroupFlags.RequireCold) != 0;
// or
bool needsMotorcycle = flags.HasFlag(MeshGroupFlags.RequireMotorcycle);

// Remove a flag
flags &= ~MeshGroupFlags.RequireMotorcycle;

// Typical use: filter mesh groups by matching required/forbidden flags
bool IsCompatible(MeshGroupFlags groupFlags, MeshGroupFlags desiredFlags)
{
    // All desired requirements must be present
    if ((groupFlags & desiredFlags) != desiredFlags) return false;

    // If group forbids motorcycles but desired includes motorcycle, it's incompatible
    if (groupFlags.HasFlag(MeshGroupFlags.ForbidMotorcycle) &&
        desiredFlags.HasFlag(MeshGroupFlags.RequireMotorcycle)) return false;

    return true;
}