Game.Objects.TransformFlags
Assembly:
Assembly-CSharp (game code / modding assembly)
Namespace:
Game.Objects
Type:
public enum (with [Flags]) — underlying type: System.UInt32
Base:
System.Enum (underlying type System.UInt32)
Summary:
Bitmask enum used to represent a set of transform/visual/animation states for in-game objects (typically vehicles/units). Each enum value represents a single flag (light states, turn signals, braking, boarding doors, aircraft states, etc.). The [Flags] attribute indicates values can be combined using bitwise operations to represent multiple simultaneous states. This enum is intended for efficient state checks and combined state storage.
Fields
-
MainLights = 1u
Main/front headlights or primary vehicle lights. -
ExtraLights = 2u
Additional auxiliary lights (fog lights, extra front lights). -
TurningLeft = 4u
Left turn signal/animation active. -
TurningRight = 8u
Right turn signal/animation active. -
Braking = 0x10u
Brake lights / braking state. -
RearLights = 0x20u
Rear lights (tail lights) on. -
BoardingLeft = 0x40u
Left boarding/door animation (e.g., passenger entry/exit) active. -
BoardingRight = 0x80u
Right boarding/door animation active. -
InteriorLights = 0x100u
Interior cabin lights enabled. -
Pantograph = 0x200u
Pantograph raised (electric rail vehicles). -
WarningLights = 0x400u
Warning or hazard lights active. -
Reversing = 0x800u
Reverse gear / reversing lights active. -
WorkLights = 0x1000u
Work lights (scene-specific utility lights) active. -
SignalAnimation1 = 0x2000u
First signal/animation bit (game-specific animation flag). -
SignalAnimation2 = 0x4000u
Second signal/animation bit (game-specific animation flag). -
TakingOff = 0x8000u
Aircraft taking off animation/state. -
Landing = 0x10000u
Aircraft landing animation/state. -
Flying = 0x20000u
Aircraft in-flight state.
Properties
- This enum type defines flags only and exposes no properties.
Constructors
- Enums in .NET do not declare explicit constructors in user code. Instances are created by assignment/casting. Example:
TransformFlags flags = TransformFlags.MainLights;
Methods
- No instance methods defined on the enum. Use standard bitwise operations or System.Enum helpers:
- Bitwise checks and manipulation (recommended for performance).
Enum.HasFlag
is available but slower; prefer(flags & TransformFlags.X) != 0
in hot code paths.
Usage Example
// Combine flags
TransformFlags flags = TransformFlags.MainLights | TransformFlags.RearLights;
// Set a flag
flags |= TransformFlags.Braking;
// Clear a flag
flags &= ~TransformFlags.Braking;
// Toggle a flag
flags ^= TransformFlags.ExtraLights;
// Test a flag (fast)
bool isTurningLeft = (flags & TransformFlags.TurningLeft) != 0;
// Test a flag (convenience, slower)
bool isFlying = flags.HasFlag(TransformFlags.Flying);
// Casting to underlying numeric type
uint raw = (uint)flags;
// Example usage in update/render logic
if ((flags & (TransformFlags.TurningLeft | TransformFlags.TurningRight)) != 0)
{
// play turn-signal animation
}
{{ This enum is typically used by vehicle/object transform/animation systems to drive visual states (lights, doors, pantograph, flight states, etc.). Because it is a bitmask, it is efficient to store multiple boolean states in a single 32-bit value. When writing performance-sensitive mod code that checks these flags frequently, prefer bitwise operations over Enum.HasFlag. }}