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" }); }
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(); }
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) }); } } }
public IEnumerable <Chunk> GetChunksAroundArea(RectangleF area) => ChunksManager.GetChunksForRectangle(area);
public IEnumerable <Node> GetNodesAroundArea(RectangleF area) => ChunksManager.GetChunksForRectangle(area).SelectMany(chunk => chunk.Nodes);
/// <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);
public void AddMedium(Medium medium) => ChunksManager.AddMedium(medium);
public void AddNode(Node node) { ChunksManager.AddNode(node); node.NodeEjected += OnNodeEjected; }
private void Awake() { chunksManager = GameObject.Find("GameManager").GetComponent <ChunksManager>(); }