示例#1
0
        private static void OnStatChangedMessage(long entityId, List <StatInfo> changedStats)
        {
            MyEntity entity;

            if (!MyEntities.TryGetEntityById(entityId, out entity))
            {
                return;
            }

            MyEntityStatComponent statComp = null;

            if (!entity.Components.TryGet <MyEntityStatComponent>(out statComp))
            {
                return;
            }

            foreach (var statChange in changedStats)
            {
                MyEntityStat localStat;
                if (!statComp.TryGetStat(statChange.StatId, out localStat))
                {
                    continue;
                }
                localStat.Value         = statChange.Amount;
                localStat.StatRegenLeft = statChange.RegenLeft;
            }
        }
        private static void OnStatChangedRequest(ref EntityStatChangedMsg msg, MyNetworkClient sender)
        {
            Debug.Assert(Sync.IsServer);

            MyEntity entity;

            if (!MyEntities.TryGetEntityById(msg.EntityId, out entity))
            {
                return;
            }

            MyEntityStatComponent statComp = null;

            if (!entity.Components.TryGet <MyEntityStatComponent>(out statComp))
            {
                return;
            }

            foreach (var statChange in msg.ChangedStats)
            {
                MyEntityStat localStat;
                if (!statComp.TryGetStat(statChange.StatId, out localStat))
                {
                    continue;
                }
                localStat.Value = statChange.Amount;
            }
        }
        private static void OnStatChangedMessage(ref EntityStatChangedMsg msg, MyNetworkClient sender)
        {
            MyEntity entity;

            if (!MyEntities.TryGetEntityById(msg.EntityId, out entity))
            {
                return;
            }

            MyEntityStatComponent statComp = null;

            if (!entity.Components.TryGet <MyEntityStatComponent>(out statComp))
            {
                return;
            }

            foreach (var statChange in msg.ChangedStats)
            {
                MyEntityStat localStat;
                if (!statComp.TryGetStat(statChange.StatId, out localStat))
                {
                    continue;
                }
                localStat.Value         = statChange.Amount;
                localStat.StatRegenLeft = statChange.RegenLeft;
            }
        }
示例#4
0
        private static void OnStatChangedMessage(long entityId, List <StatInfo> changedStats)
        {
            MyEntity entity;

            if (MyEntities.TryGetEntityById(entityId, out entity, false))
            {
                MyEntityStatComponent component = null;
                if (entity.Components.TryGet <MyEntityStatComponent>(out component))
                {
                    foreach (StatInfo info in changedStats)
                    {
                        MyEntityStat stat;
                        if (component.TryGetStat(info.StatId, out stat))
                        {
                            stat.Value         = info.Amount;
                            stat.StatRegenLeft = info.RegenLeft;
                        }
                    }
                }
            }
        }