Exemple #1
0
#pragma warning disable RefCounter001,RefCounter002 // possible reference counter error
        public GameEntityPlayBackDiffComparator Init(IEntityMapCompareHandler handler, IInterpolationInfo interpolationInfo, EntityMap localEntityMap)
        {
            base.Init(handler);
            _interpolationInfo = interpolationInfo;
            _localEntityMap    = localEntityMap;
            return(this);
        }
Exemple #2
0
        public virtual void Init(IEntityMapCompareHandler handler)
        {
            _handler = handler;

            _componentComparator.Init(_handler);
            _isIncludeDelegate = IsIncludeDelegate;
        }
Exemple #3
0
        public static void Diff(
            EntityMap left,
            EntityMap right,
            IEntityMapCompareHandler handler,
            string staticsticId = "",
            IGameEntityComparator gameEntityComparator = null, bool skipMissHandle = false)
        {
            if (gameEntityComparator == null)
            {
                gameEntityComparator = new GameEntityComparator(handler);
            }

            EntityMapComparaeStatisticOne oneStat = UnsortedEntityMapComparator.Diff(left, right, handler, gameEntityComparator, skipMissHandle);

            RecordStatistics(staticsticId, oneStat);
        }
Exemple #4
0
        public static EntityMapComparaeStatisticOne Diff(EntityMap left, EntityMap right, IEntityMapCompareHandler handler, IGameEntityComparator gameEntityComparator, bool skipMissHandle = false)
        {
            int      entityCount    = 0;
            int      componentCount = 0;
            DateTime startTime      = DateTime.Now;

            foreach (var rightEntry in right)
            {
                entityCount++;
                if (handler.IsBreak())
                {
                    break;
                }
                var         entityKey   = rightEntry.Key;
                var         rightEntity = rightEntry.Value;
                IGameEntity leftEntity;
                left.TryGetValue(entityKey, out leftEntity);

                if (leftEntity == null)
                {
                    if (!skipMissHandle)
                    {
                        handler.OnLeftEntityMissing(rightEntity);
                    }
                    continue;
                }

                componentCount += gameEntityComparator.Diff(leftEntity, rightEntity, skipMissHandle);
            }

            if (!handler.IsBreak() && !skipMissHandle)
            {
                foreach (var leftEntry in left)
                {
                    var entityKey  = leftEntry.Key;
                    var leftEntity = leftEntry.Value;

                    IGameEntity rightEntity;
                    if (!right.TryGetValue(entityKey, out rightEntity))
                    {
                        entityCount++;
                        handler.OnRightEntityMissing(leftEntity);
                    }
                }
            }

            return(new EntityMapComparaeStatisticOne
            {
                EntityCount = entityCount,
                ComponentCount = componentCount,
                CreateTime = DateTime.Now,
                Interval = (int)(startTime - startTime).TotalMilliseconds
            });
        }
Exemple #5
0
 public GameEntityComparatorHandler(IEntityMapCompareHandler handler)
 {
     _handler    = handler;
     _comparator = new GameEntityComparator(handler);
 }
Exemple #6
0
 public GameEntityComparator(IEntityMapCompareHandler handler)
 {
     base.Init(handler);
 }
Exemple #7
0
 public GameEntitySelfLatestComparator Init(IEntityMapCompareHandler handler, int serverTime)
 {
     base.Init(handler);
     _serverTime = serverTime;
     return(this);
 }
Exemple #8
0
 public void Init(IEntityMapCompareHandler handler)
 {
     _handler     = handler;
     _leftEntity  = null;
     _rightEntity = null;
 }