Exemple #1
0
    List <IceBlockObject> GetConnectedBlocksInRadius(IceBlockObject obj, float rangeSqr)
    {
        List <IceBlockObject> list = new List <IceBlockObject>();

        foreach (IceBlockObject ibo in blocks)
        {
            float distanceSqr = (obj.unityObject.transform.position - ibo.unityObject.transform.position).sqrMagnitude;
            if ((distanceSqr > 0) && (distanceSqr < rangeSqr))
            {
                if (ibo.isSwimming())
                {
                    list.Add(ibo);
                }
            }
        }
        return(list);
    }
Exemple #2
0
    public void generateBlocks()
    {
        //Сначала заспавните нужные блоки
        int i = Random.Range(0, blocks.Count);
        // if (i == defaultSpawnBlock)
        //  {
        //     continue;
        //  }
        IceBlockObject targetBlock = blocks[i];
        int            r           = Random.Range(0, 101);

        // loh
        if (r >= percent)
        {
            List <IceBlockObject> list = GetConnectedBlocksInRadius(targetBlock, 30);
            if (list.Count > 1)
            {
                targetBlock.setSwimming();
                //targetBlock.unityObject.SetActive(false);
            }
        }
        else
        {
            List <IceBlockObject> list = GetConnectedBlocksInRadius(targetBlock, 30);
            {
                targetBlock.setUp();
                // targetBlock.unityObject.SetActive(true);
            }
        }


        // Проверьте одиночные блоки
        for (int j = 0; i < blocks.Count; i++)
        {
            targetBlock = blocks[j];
            List <IceBlockObject> list = GetConnectedBlocksInRadius(targetBlock, 30);
            if (list.Count == 0)
            {
                //targetBlock.checkerSwim(false);
                //targetBlock.unityObject.SetActive(false);
            }
        }
    }
Exemple #3
0
 public void RemoveCube(IceBlockObject obj)
 {
     // TODO: add check block
     blocks.Remove(obj);
 }
Exemple #4
0
 public void AddCube(IceBlockObject obj)
 {
     blocks.Add(obj);
 }