예제 #1
0
파일: Lot.cs 프로젝트: Cdrix/SM
 //returns current index of this lot.
 public int IndexOfCurrentLotBeingHover(Vector3 objPos)
 {
     if (UMesh.Contains(objPos, squareStart, squareEnd))
     {
         return(Index);
     }
     return(-1);
 }
예제 #2
0
    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);
    }
예제 #3
0
    /// <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;
            }
        }
    }