// Token: 0x06000993 RID: 2451 RVA: 0x00028AA8 File Offset: 0x00026CA8
    public static void EnsurePrefabIsPlayerRootCompatible(string name)
    {
        global::NetMainPrefab.EnsurePrefabName(name);
        byte b;

        if (!global::ControllablePrefab.playerRootCompatibilityCache.TryGetValue(name, out b))
        {
            global::ControllablePrefab controllablePrefab = global::NetMainPrefab.Lookup <global::ControllablePrefab>(name);
            if (!controllablePrefab)
            {
                b = 0;
            }
            else if (!controllablePrefab.playerRootComapatable)
            {
                b = 2;
            }
            else
            {
                b = 1;
            }
            global::ControllablePrefab.playerRootCompatibilityCache[name] = b;
        }
        if (b == 0)
        {
            throw new global::NonControllableException(name);
        }
        if (b == 2)
        {
            throw new global::NonPlayerRootControllableException(name);
        }
    }
    // Token: 0x06000997 RID: 2455 RVA: 0x00028C38 File Offset: 0x00026E38
    public static void EnsurePrefabIsAIRootCompatible(string name, out bool staticGroup)
    {
        global::NetMainPrefab.EnsurePrefabName(name);
        sbyte b;

        if (!global::ControllablePrefab.aiRootCompatibilityCache.TryGetValue(name, out b))
        {
            global::ControllablePrefab controllablePrefab = global::NetMainPrefab.Lookup <global::ControllablePrefab>(name);
            if (!controllablePrefab)
            {
                b = 0;
            }
            else if (!controllablePrefab.aiRootComapatable)
            {
                b = 2;
            }
            else
            {
                b = ((!((global::Character)controllablePrefab.serverPrefab).controllable.classFlagsStaticGroup) ? 1 : -1);
            }
            global::ControllablePrefab.aiRootCompatibilityCache[name] = b;
        }
        sbyte b2 = b;

        switch (b2 + 1)
        {
        case 0:
            staticGroup = true;
            return;

        case 2:
            staticGroup = false;
            return;

        case 3:
            throw new global::NonAIRootControllableException(name);
        }
        throw new global::NonControllableException(name);
    }
    // Token: 0x06000994 RID: 2452 RVA: 0x00028B24 File Offset: 0x00026D24
    private static byte GetVesselCompatibility(string name)
    {
        global::NetMainPrefab.EnsurePrefabName(name);
        byte b;

        if (global::ControllablePrefab.vesselCompatibilityCache.TryGetValue(name, out b))
        {
            return(b);
        }
        global::ControllablePrefab controllablePrefab = global::NetMainPrefab.Lookup <global::ControllablePrefab>(name);

        if (!controllablePrefab)
        {
            b = 0;
        }
        else
        {
            b = controllablePrefab.vesselCompatibility;
        }
        global::ControllablePrefab.vesselCompatibilityCache[name] = b;
        return(b);
    }