void SetNodeAt(ChunkSet node, int x, int y) { int index = y * currentWidth + x; map[index] = node; node.SetCoordinates(x, y); }
/// <summary> ///Adds a chunk at the given coordinates and expands the map /// </summary> /// <param name="node"> ///The chunk you wish to add to the map /// </param> /// <param name="x"> ///The x target coordinate /// </param> /// <param name="y"> ///The y target coordinate /// </param> public void AddNodeAt(ChunkSet node, int x, int y) { node.SetCoordinates(x, y); if (x < 0) { //Debug.Log("ABS X: " + x); //expand and shuffle by Mathf.Abs(x) ExpandWidth(currentWidth + Mathf.Abs(x)); ShuffleMap(Mathf.Abs(x), 0); node.SetCoordinates(0, node.GetY()); } else if (x >= currentWidth) { //we just need to expand out by x - (currentWidth - 1), no need to shuffle if (currentWidth == 0) { ExpandWidth(x + 1); } else { ExpandWidth(x + 1); } } if (y < 0) { //Debug.Log("ABS Y: " + x); //expand and shuffle by Mathf.Abs(y) ExpandHeight(currentHeight + Mathf.Abs(y)); ShuffleMap(0, Mathf.Abs(y)); node.SetCoordinates(node.GetX(), 0); } else if (y >= currentHeight) { //we just need to expand up by y - (currentHeight - 1), no need to shuffle ExpandHeight(y + 1); } SetNodeAt(node, node.GetX(), node.GetY()); }