private static void OnSwitchAmmoMagazineFailure(MySyncControllableEntity sync, ref SwitchAmmoMagazineMsg msg, MyNetworkClient sender)
 {
     var handler = sync.SwitchAmmoMagazineFailureHandler;
     if (handler != null)
         handler();
 }
        private static void OnSwitchAmmoMagazineRequest(MySyncControllableEntity sync, ref SwitchAmmoMagazineMsg msg, MyNetworkClient sender)
        {
            if (!sync.Entity.CanSwitchAmmoMagazine())
            {
                Sync.Layer.SendMessage(ref msg, sender.SteamUserId, MyTransportMessageEnum.Failure);
                return;
            }

            OnSwitchAmmoMagazineSuccess(sync, ref msg, Sync.Clients.LocalClient);
            Sync.Layer.SendMessageToAll(ref msg, MyTransportMessageEnum.Success);
        }
        private static void OnSwitchAmmoMagazineSuccess(MySyncControllableEntity sync, ref SwitchAmmoMagazineMsg msg, MyNetworkClient sender)
        {
            if (!Sync.IsServer)
            {
                // Update the counter only if we are waiting for it
                if (sync.m_switchAmmoMagazineCounter > 0)
                {
                    sync.m_switchAmmoMagazineCounter--;
                }
            }

            var handler = sync.SwitchAmmoMagazineSuccessHandler;
            if (handler != null)
                handler();
        }
        public void RequestSwitchAmmoMagazine()
        {
            var msg = new SwitchAmmoMagazineMsg();
            msg.ControlledEntityId = SyncedEntityId;

            Sync.Layer.SendMessageToServer(ref msg);
        }
        public void RequestSwitchAmmoMagazine()
        {
            if (!Sync.IsServer)
            {
                m_switchAmmoMagazineCounter++;
            }

            var msg = new SwitchAmmoMagazineMsg();
            msg.ControlledEntityId = SyncedEntityId;

            Sync.Layer.SendMessageToServer(ref msg);
        }