public static async void ClientTakeVehicle(uint vehicleGameObjectId) { var vehicleAssemblyBay = InteractionCheckerSystem.SharedGetCurrentInteraction( ClientCurrentCharacterHelper.Character); var result = await Instance.CallServer(_ => _.ServerRemote_TakeVehicle(vehicleGameObjectId)); if (result == TakeVehicleResult.Success) { Client.Audio.PlayOneShot(SoundResourceTakeVehicle, vehicleAssemblyBay); WindowObjectVehicleAssemblyBay.CloseActiveMenu(); return; } if (result == TakeVehicleResult.BaseUnderRaidblock) { LandClaimSystem.SharedSendNotificationActionForbiddenUnderRaidblock( ClientCurrentCharacterHelper.Character); return; } var error = result.GetDescription(); if (string.IsNullOrEmpty(error)) { return; } var currentInteractionObject = InteractionCheckerSystem.SharedGetCurrentInteraction(ClientCurrentCharacterHelper.Character); if (!(currentInteractionObject?.ProtoWorldObject is IProtoVehicleAssemblyBay protoVehicleAssemblyBay)) { return; } NotificationSystem.ClientShowNotification( Notification_CannotTakeVehicle_Title, error, NotificationColor.Bad, protoVehicleAssemblyBay.Icon); }
public BaseUserControlWithWindow ClientOpenUI(IWorldObject worldObject) { return(WindowObjectVehicleAssemblyBay.Open((IStaticWorldObject)worldObject)); }