public static void EnsurePrefabIsVessel(string name, out ControllablePrefab.VesselInfo vi) { byte vesselCompatibility = ControllablePrefab.GetVesselCompatibility(name); if ((vesselCompatibility & 1) != 1) { if ((vesselCompatibility & 64) != 64) { throw new NonControllableException(name); } throw new NonVesselControllableException(name); } if ((vesselCompatibility & 24) == 0) { throw new NonControllableException("The vessel has not been marked for either ai and/or player control. not bothering to spawn it."); } vi = new ControllablePrefab.VesselInfo(vesselCompatibility); }
public static void EnsurePrefabIsVessel(string name, Controllable forControllable, out ControllablePrefab.VesselInfo vi) { ControllablePrefab.EnsurePrefabIsVessel(name, out vi); if (forControllable && forControllable.controlled) { if (forControllable.aiControlled) { if (!vi.supportsAI) { throw new NonAIVesselControllableException(name); } } else if (forControllable.playerControlled && !vi.supportsPlayer) { throw new NonPlayerVesselControllableException(name); } } }