//returns current index of this lot. public int IndexOfCurrentLotBeingHover(Vector3 objPos) { if (UMesh.Contains(objPos, squareStart, squareEnd)) { return(Index); } return(-1); }
bool ComplyWithTerraRules(Vector3 toEval) { bool isOnTheStartZone = UMesh.Contains(toEval, voidNWCorner, voidSECorner); bool regionContainTerraCry = MeshController.CrystalManager1.DoesMyRegionHasTerraCrystal(toEval); bool isHasMinHeight = toEval.y > minHeightToSpawn; bool isLowerThanMaxHeight = toEval.y < maxHeightToSpawn; return(!isOnTheStartZone && !regionContainTerraCry && isHasMinHeight && isLowerThanMaxHeight); }
/// <summary> /// Spawns specific type of object /// </summary> /// <param name="typePass">type of object</param> /// <param name="amountToSpawn">how many will spawn</param> void SpawnObj(H typePass, int amountToSpawn) { if (!isSpawned) { if (p.MeshController.AllVertexs.Count > 0) { List <Vector3> AllVertexs = p.MeshController.AllVertexs; //print(AllVertexs.Count + ".|AllVertexs.count"); if (usedVertexPos == null) { usedVertexPos = new bool[AllVertexs.Count]; } for (int i = 0; i < amountToSpawn; i++) { int index = rand.Next(0, AllVertexs.Count); //print(index + " index"); //this is where I ask for a root and will return me a random string root int rootToSpawnIndex = ReturnRandomRootIndex(typePass); bool isOnTheStartZone = UMesh.Contains(AllVertexs[index], voidNWCorner, voidSECorner); bool regionContainTerraCry = MeshController.CrystalManager1.DoesMyRegionHasTerraCrystal(AllVertexs[index]); bool isHasMinHeight = AllVertexs[index].y > minHeightToSpawn; bool isLowerThanMaxHeight = AllVertexs[index].y < maxHeightToSpawn; if (isHasMinHeight && isLowerThanMaxHeight && !usedVertexPos[index] && !isOnTheStartZone && !regionContainTerraCry) { Vector3 finaPos = ReturnIniPosOfSpawn(typePass, AllVertexs[index], 0); CreateObjAndAddToMainList(typePass, finaPos, rootToSpawnIndex, index); } else { //todo fix //showing rejected positions //UVisHelp.CreateText(AllVertexs[index], index + ""); //Debug.Log("terra: " + index + "." + isOnTheStartZone + "." + regionContainTerraCry + "." + // isHasMinHeight + "." + isLowerThanMaxHeight + "." + !usedVertexPos[index]); i--; } } isSpawned = true; } } }