//////////////////////////////////////////////////////////////////////////// // Create World Nodes /////////////////////////////////////////////////// public static void CreateWorldNodes(List <Vector3> nodeVects) { // build inital map Node _WorldNodes = new List <WorldNode>(); int rowMultipler = MapSettings.worldSizeX; int colMultiplier = MapSettings.worldSizeZ; int totalMultiplier = MapSettings.worldSizeX * MapSettings.worldSizeZ; WorldNodeData_01 worldFloor = ScriptableObject.CreateInstance <WorldNodeData_01>(); List <int[, ]> floors = worldFloor.floors; int countFloorX = 0; // complicated to explain to future me int countFloorZ = 0; int countFloorY = 1; int count = 1; foreach (Vector3 vect in nodeVects) { int rotation = 0; int mapType = -1; int mapPiece = -1; WorldNode nodeScript = WorldBuilder._nodeBuilder.CreateNode <WorldNode>(WorldManager._WorldContainer.transform, vect, rotation, mapType, mapPiece, NodeTypes.WorldNode); nodeScript.worldNodeCount = (count - 1); nodeScript.NodeLayerCount = countFloorY * 12; // 12 is the number of (mapieces + vents layers) in the y axis of a worldnode // for the specified map structures if (MapSettings.LOADPREBUILT_STRUCTURE) { int[,] floor = floors[countFloorY - 1]; if (floor[countFloorX, countFloorZ] == 01) { int randSize = MapSettings.getRandomMapSize; nodeScript.NodeSize = randSize; } else { nodeScript.NodeSize = 0; } } else { int randSize = MapSettings.getRandomMapSize; nodeScript.NodeSize = randSize; } int shipEntranceProbablity = 20; if (nodeScript.NodeSize == 3 && Random.Range(0, shipEntranceProbablity) == 0) { WorldBuilder._nodeBuilder.AttachCoverToNode(nodeScript, nodeScript.gameObject, CoverTypes.LargeGarageCover, new Vector3(0, 0, 0)); nodeScript.entrance = true; } _WorldNodes.Add(nodeScript); // for counting, best not to change, even tho its ugly countFloorX++; if (count % totalMultiplier == 0) { countFloorY++; } if (countFloorX % rowMultipler == 0) { countFloorX = 0; countFloorZ++; } if (countFloorZ % colMultiplier == 0) { countFloorZ = 0; } // think need to add world nodes to layer sytem LayerManager.AddNodeToLayer(nodeScript); // for camera layers // for the dynamic grid experiment LocationManager.SetNodeScriptToLocation_CLIENT(vect, nodeScript); //LocationManager.SetNodeScriptToLocation_SERVER(vect, nodeScript); // this needs to do this in the server count++; } }
//////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////// // Create the Nodes from the Vects /////// //////////////////////////////////////////// // Create World Nodes /////////////////////////////////////////////////// private List <WorldNode> CreateWorldNodes(List <Vector3> nodeVects) { // build inital map Node List <WorldNode> worldNodes = new List <WorldNode>(); int rowMultipler = _mapSettings.worldSizeX; int colMultiplier = _mapSettings.worldSizeZ; int totalMultiplier = _mapSettings.worldSizeX * _mapSettings.worldSizeZ; WorldNodeData_01 worldFloor = ScriptableObject.CreateInstance <WorldNodeData_01>(); List <int[, ]> floors = worldFloor.floors; int countFloorX = 0; // complicated to explain to future me int countFloorZ = 0; int countFloorY = 1; int count = 1; foreach (Vector3 vect in nodeVects) { int rotation = 0; int mapType = -1; int mapPiece = -1; WorldNode nodeScript = CreateNode <WorldNode>(this.transform, vect, rotation, mapType, mapPiece, NodeTypes.WorldNode); nodeScript.worldNodeCount = (count - 1); // for the specified map structures if (LOADPREBUILT_STRUCTURE) { int[,] floor = floors[countFloorY - 1]; if (floor[countFloorX, countFloorZ] == 01) { int randSize = _mapSettings.getRandomMapSize; nodeScript.nodeSize = randSize; } else { nodeScript.nodeSize = 0; } } else { int randSize = _mapSettings.getRandomMapSize; nodeScript.nodeSize = randSize; } worldNodes.Add(nodeScript); // for counting, best not to change, even tho its ugly countFloorX++; if (count % totalMultiplier == 0) { countFloorY++; } if (countFloorX % rowMultipler == 0) { countFloorX = 0; countFloorZ++; } if (countFloorZ % colMultiplier == 0) { countFloorZ = 0; } count++; } return(worldNodes); }