Пример #1
0
 private void Process(Client client, ClientPowerChange msg)
 {
     state.history.power[msg.targetGuid] = msg;
     msg.force = false;
     SendToAll(client.peer, msg);
     msg.force = true;
 }
Пример #2
0
        public void Update()
        {
            if (rateLimiter.Update(8.0f))
            {
                float charge = GetCharge();
                if (Mathf.Abs(lastCharge - charge) >= 5.0f)
                {
                    lastCharge = charge;

                    if (GameModeUtils.RequiresPower())
                    {
                        var res = new ClientPowerChange();
                        res.targetGuid = GuidHelper.Get(gameObject);
                        res.total      = charge;
                        res.force      = false;
                        Multiplayer.main.Send(res);
                    }
                }
            }
        }
Пример #3
0
        private void Process(ClientPowerChange msg)
        {
            var target = GuidHelper.FindComponent <PowerMonitor>(msg.targetGuid);

            if (target == null)
            {
                Log.Warn("Couldn't find power monitor: " + msg.targetGuid);
                return;
            }

            using (new MessageBlocker()) {
                if (msg.force)
                {
                    target.Force(msg.total);
                }
                else
                {
                    target.Correct(msg.total);
                }
            }
        }