Пример #1
0
    public void tunnelFrom(CaveBody body, Vector3 dir)
    {
        CaveManager.tunnels.Add(this);

        GameObject digObj = CaveManager.getNewDigger();

        digObj.transform.localScale = new Vector3(1, 1, 1);
        digger = digObj.GetComponent <Digger>();
        digger.init(this);
        digger.colID              = body.centerColumnID;
        digger.tier               = body.tier + 1;
        digger.layer              = body.centerDepth + 2;
        destDepth                 = body.centerDepth + tunnelDepth;
        digger.neighbourCount     = 0;
        digger.transform.position = Vector3.zero;
        digger.setScale(tunnelSize);
        digger.gradient = 2;
        direction       = dir;


        digger.right     = Vector3.Cross(direction, -MapManager.manager.getPositionOf(0, body.centerColumnID)).normalized;
        digger.travelDir = direction.normalized;
        //Debug.Log("creating new digger with dir = " + digger.travelDir + " right = " + digger.right);
        digger.nextDest = 3 * MapManager.manager.getPositionOf(0, body.centerColumnID) - 2 * MapManager.manager.getPositionOf(1, body.centerColumnID);

        digger.gameObject.SetActive(true);

        digger.travelToNext();
    }
Пример #2
0
    internal void createEntranceAt(int colID, Vector3 dir)
    {
        columnID = colID;

        CaveManager.entrances.Add(this);

        GameObject digObj = CaveManager.getNewDigger();

        digObj.transform.localScale = new Vector3(1, 1, 1);
        digger = digObj.GetComponent <Digger>();
        digger.init(this);
        digger.colID              = colID;
        digger.tier               = 0;
        digger.layer              = 0;
        digger.neighbourCount     = 0;
        digger.transform.position = Vector3.zero;
        digger.setScale(entrancesize);
        digger.gradient = 2;
        direction       = dir.normalized;
        if (direction.magnitude != 1)
        {
            Debug.LogError("digging entrance with no direction, dir = " + direction);
        }


        digger.right     = Vector3.Cross(direction, -MapManager.manager.getPositionOf(0, columnID)).normalized;
        digger.travelDir = direction.normalized;
        //Debug.Log("creating new digger with dir = " + digger.travelDir + " right = " + digger.right);
        digger.nextDest = 3 * MapManager.manager.getPositionOf(0, colID) - 2 * MapManager.manager.getPositionOf(1, colID);

        digger.gameObject.SetActive(true);

        digger.travelToNext();
    }