Пример #1
0
        void GenerateSyncReport(Report report)
        {
            report.Frame        = orderManager.NetFrameNumber;
            report.SyncedRandom = orderManager.world.SharedRandom.Last;
            report.TotalCount   = orderManager.world.SharedRandom.TotalCount;
            report.Traits.Clear();
            foreach (var a in orderManager.world.ActorsWithTrait <ISync>())
            {
                var sync = Sync.CalculateSyncHash(a.Trait);
                if (sync != 0)
                {
                    var tr = new TraitReport()
                    {
                        ActorID = a.Actor.ActorID,
                        Type    = a.Actor.Info.Name,
                        Owner   = (a.Actor.Owner == null) ? "null" : a.Actor.Owner.PlayerName,
                        Trait   = a.Trait.GetType().Name,
                        Hash    = sync
                    };

                    tr.Fields = DumpSyncTrait(a.Trait);
                    report.Traits.Add(tr);
                }
            }
        }
Пример #2
0
        void GenerateSyncReport(Report report)
        {
            report.Frame = orderManager.NetFrameNumber;
            report.SyncedRandom = orderManager.world.SharedRandom.Last;
            report.TotalCount = orderManager.world.SharedRandom.TotalCount;
            report.Traits.Clear();
            foreach (var a in orderManager.world.ActorsWithTrait<ISync>())
            {
                var sync = Sync.CalculateSyncHash(a.Trait);
                if (sync != 0)
                {
                    var tr = new TraitReport()
                    {
                        ActorID = a.Actor.ActorID,
                        Type = a.Actor.Info.Name,
                        Owner = (a.Actor.Owner == null) ? "null" : a.Actor.Owner.PlayerName,
                        Trait = a.Trait.GetType().Name,
                        Hash = sync
                    };

                    tr.Fields = DumpSyncTrait(a.Trait);
                    report.Traits.Add(tr);
                }
            }

            foreach (var e in orderManager.world.Effects)
            {
                var sync = e as ISync;
                if (sync != null)
                {
                    var hash = Sync.CalculateSyncHash(sync);
                    if (hash != 0)
                    {
                        var er = new EffectReport()
                        {
                            Name = sync.ToString().Split('.').Last(),
                            Hash = hash
                        };

                        er.Fields = DumpSyncTrait(sync);
                        report.Effects.Add(er);
                    }
                }
            }
        }