namespace FishNet.Object { /// /// Action to take when despawning a NetworkObject. /// public enum DespawnType : byte { Destroy = 0, Pool = 1 } /// /// Current state of the NetworkObject. /// internal enum NetworkObjectState : byte { /// /// State has not been set. This occurs when the object has never been spawned or despawned. /// Unset = 0, /// /// Object is currently spawned. /// Spawned = 1, /// /// Object is currently despawned. /// Despawned = 2 } /// /// Options on retrieving nested NetworkObjects. /// [System.Flags] internal enum GetNetworkObjectOption : int { /// /// Include NetworkObject which nested are being returned for. /// Self = 1 << 0, /// /// Include initialize nested. /// InitializedNested = 1 << 1, /// /// Include runtime nested. /// RuntimeNested = 1 << 2, /// /// Recursively iterate nested includes. /// /// This only functions if Initialized or Runtime is flagged. Recursive = 1 << 3, /// /// Uses InitializedNested and RuntimeNested flags. /// AllNested = InitializedNested | RuntimeNested, /// /// Uses InitializedNested, RuntimeNested, and Recursive flags. /// AllNestedRecursive = InitializedNested | RuntimeNested | Recursive, /// /// Sets all flags. /// All = ~0 } internal static class GetNetworkObjectOptionExtensions { /// /// True if whole contains part. /// public static bool FastContains(this GetNetworkObjectOption whole, GetNetworkObjectOption part) => (whole & part) == part; } }