Ejemplo n.º 1
0
        public static IBin2DManager GetReplicationBin2DManager(float minX, float minY, float maxX, float maxY,
                                                               int visibleRadius, Dictionary <int, int> customVisibleRadiusDict)
        {
            IBin2DManager bin2DManager = new Bin2DManager();

            for (int i = 0; i < (int)EEntityType.End; i++)
            {
                var v = visibleRadius;
                if (customVisibleRadiusDict.ContainsKey(i))
                {
                    v = customVisibleRadiusDict[i];
                }

                var         cell    = next_p2(v) / 4 > 8 ? next_p2(v) / 4 : 8;
                Bin2DConfig _config = new Bin2DConfig(minX, minY, maxX, maxY, cell, v);
                if (i == (int)EEntityType.SceneObject || i == (int)EEntityType.MapObject)
                {
                    bin2DManager.AddBin2D(i, new Bin2D <IGameEntity>(_config), v, SceneObjectFilter);
                }
                else
                {
                    bin2DManager.AddBin2D(i, new Bin2D <IGameEntity>(_config), v);
                }
            }

            return(bin2DManager);
        }
Ejemplo n.º 2
0
 public void Dispose()
 {
     Bin2DManager.Dispose();
     contexts.session.commonSession.Dispose();
     contexts.session.serverSessionObjects.Dispose();
     contexts.Reset();
     contexts = null;
 }