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;
}