public NodeChunkTransfersTestScene()
        {
            const float chunkSize    = 40;
            const int   chunksAmount = 10;

            chunksManager     = new ChunksManager(new Vector2(chunksAmount), chunkSize);
            simulationManager = new ChunksSimulationManager(chunksManager);
            CreateChunkDrawables();
            nodes    = new TestNode[3];
            nodes[0] = new TestNode(50);
            nodes[1] = new TestNode(30);
            nodes[2] = new TestNode(10);
            var         i      = 0;
            const float center = chunkSize * chunksAmount * 0.5f;

            foreach (var node in nodes)
            {
                chunksManager.AddNode(node);
                AddChild(new TestNodeDisplay(node, i));
                node.Position = new Vector3(center, 0, center);
                i++;
            }
            AddChild(new SpriteText
            {
                RelativeSizeAxes = Axes.Both,
                Text             = "Each circle represents a node of a different size.\n" +
                                   "Chunks - children count legend:\n" +
                                   "red - 3\n" +
                                   "yellow - 2\n" +
                                   "green - 1\n" +
                                   "gray - 0\n"
            });
        }
Пример #2
0
 private void Awake()
 {
     Physics.autoSimulation = false;
     instance  = this;
     regions   = Resources.LoadAll <Region>("Regions/");
     blockMat  = Resources.LoadAll <Material>("Materials/")[0];
     chunkPrfb = Resources.LoadAll <GameObject>("Prefabs/")[0];
     Chance.Initialize();
 }
Пример #3
0
 public TestSuite()
 {
     ChunksManager     = new ChunksManager(new Vector2(4), 1);
     SimulationManager = new ChunksSimulationManager(ChunksManager);
     Nodes             = new TestNode[4][];
     for (var y = 0; y <= 3; y++)
     {
         Nodes[y] = new TestNode[4];
         for (var x = 0; x <= 3; x++)
         {
             ChunksManager.AddNode(Nodes[y][x] = new TestNode {
                 Position = new Vector3(x, 0, y)
             });
         }
     }
 }
Пример #4
0
 public IEnumerable <Chunk> GetChunksAroundArea(RectangleF area) => ChunksManager.GetChunksForRectangle(area);
Пример #5
0
 public IEnumerable <Node> GetNodesAroundArea(RectangleF area) => ChunksManager.GetChunksForRectangle(area).SelectMany(chunk => chunk.Nodes);
Пример #6
0
 /// <summary>
 ///     Returns <see cref="Medium"/> mediums that
 ///     are in chunks that are inside
 ///     the specified <paramref name="area"/>.
 /// </summary>
 public IEnumerable <Medium> GetMediumsAroundArea(RectangleF area) => ChunksManager.GetChunksForRectangle(area).SelectMany(chunk => chunk.Mediums);
Пример #7
0
 public void AddMedium(Medium medium) => ChunksManager.AddMedium(medium);
Пример #8
0
 public void AddNode(Node node)
 {
     ChunksManager.AddNode(node);
     node.NodeEjected += OnNodeEjected;
 }
Пример #9
0
 private void Awake()
 {
     chunksManager = GameObject.Find("GameManager").GetComponent <ChunksManager>();
 }