// Use this for initialization
    void Start()
    {
        InvokeRepeating("AddObject", 0.0f, 2.2f);
        GameObject thePlayer = GameObject.Find("player");

        turtleController = thePlayer.GetComponent <TurtleController>();
    }
Exemplo n.º 2
0
    void CastRay()
    {
        // Create ray cast from mouse input
        Ray   ray         = Camera.main.ScreenPointToRay(Input.mousePosition);
        Plane playerPlane = new Plane(Vector3.back, player.transform.position); // Set player
        float distance;

        // Creates a ray cast from player to mouse click
        if (playerPlane.Raycast(ray, out distance))
        {
            Vector3 hitPt         = ray.GetPoint(distance);
            Ray     playerToClick = new Ray(player.transform.position, hitPt - player.transform.position);
            //RaycastHit2D hit = Physics2D.Raycast(playerToClick.origin, playerToClick.direction, pickUpRange, LayerMask);
            RaycastHit2D hit = Physics2D.Raycast(playerToClick.origin, playerToClick.direction, float.MaxValue, LayerMask);

            // Debug.DrawRay(playerToClick.origin, playerToClick.direction * 50, Color.yellow);
            if (hit)
            {
                Debug.Log(hit.collider.gameObject.name);
                //int collisionLayerMask = 1 << hit.collider.gameObject.layer;

                TurtleController         turtleController         = hit.collider.gameObject.GetComponent <TurtleController>();
                FallingPlasticController fallingPlasticController = hit.collider.gameObject.GetComponent <FallingPlasticController>();

                if (currentCoroutine != null)
                {
                    StopCoroutine(currentCoroutine);
                }

                currentCoroutine = StartCoroutine(CheckIfNear(turtleController, fallingPlasticController));
            }
        }
    }
Exemplo n.º 3
0
    IEnumerator Rescue(TurtleController turtleController)
    {
        yield return(new WaitForSeconds(rescuingAnimation.length));

        enabled = true;
        GetComponent <Movement>().enabled = true;
        animator.SetBool("isRescuing", false);
        turtleController.isChoking = false;
    }
    public void GenerateString(int weight)
    {
        l_system = new L_System();

        controller = GetComponent <TurtleController>();
        sentence   = l_system.setUp(weight);
        for (int i = 0; i < itt; i++)
        {
            sentence = l_system.nextSentence(sentence);
        }
    }
Exemplo n.º 5
0
    IEnumerator CheckIfNear(TurtleController tc, FallingPlasticController pc)
    {
        if (tc)
        {
            yield return(new WaitUntil(() => Vector2.Distance(player.transform.position, tc.transform.position) <= pickUpRange));

            if (tc.isChoking && tc.isAlive)
            {
                animator.SetBool("isRescuing", true);
                tc.plasticInContact.ShowOutline(true); // Show the outline similar to pickup
                StartCoroutine(Rescue(tc));
            }
        }
        else if (pc)
        {
            yield return(new WaitUntil(() => Vector2.Distance(player.transform.position, pc.transform.position) <= pickUpRange));

            animator.SetBool("isRescuing", true);
            rb.velocity = Vector3.zero;
            pc.PickUp();
            StartCoroutine(PickupPlastic(pc));
        }
    }
Exemplo n.º 6
0
    public void Generate(int _type, float size, int _numberOfSites, float _mainRoadWidth, float _sideRoadWidth)
    {
        lStreets = new List <GameObject>();
        siteGen  = GetComponent <SiteGenerator>();
        vBuilder = GetComponent <VoronoiBuilder>();
        Ground.transform.localScale = new Vector3(size, 0.01f, size);
        groundRad     = size / 2f;
        numberOfSites = _numberOfSites;
        mainRoadWidth = _mainRoadWidth;
        sideRoadWidth = _sideRoadWidth;
        type          = (GenerationType)_type;


        List <Vector2> sites = new List <Vector2>();

        switch (type)
        {
        case GenerationType.Orgnic:
            sites = siteGen.GenerateRandom(new Vector2(Ground.transform.position.x, Ground.transform.position.z), groundRad, width, height, numberOfSites);
            break;

        case GenerationType.Circular:
            sites = siteGen.GenerateCircular(height, width, groundRad, new Vector2(Ground.transform.position.x, Ground.transform.position.z), 3, numberOfSites);
            break;

        case GenerationType.Grid:
            sites = siteGen.GenerateGrid(new Vector2(Ground.transform.position.x, Ground.transform.position.z), groundRad, 400, 400);
            break;

        default:
            break;
        }



        List <Edge> vEdges = vBuilder.GenerateVoronoi(sites, new Vector2(Ground.transform.position.x, Ground.transform.position.z), groundRad);
        int         i      = 0;

        for (i = 0; i < vEdges.Count; i++)
        {
            // check to see if the curent edge is entirely out of the worldbound
            if (CheckWholeEdge(vEdges[i]))
            {
                continue;
            }
            if (!CheckPositiontoWorldBounds(vEdges[i].start))
            {
                Vector2[] inter = EdgeToCircleIntersection(vEdges[i]);


                float dis1 = Vector2.Distance(vEdges[i].start, inter[0]);
                float dis2 = Vector2.Distance(vEdges[i].start, inter[1]);

                if (dis1 < dis2)
                {
                    vEdges[i].start = inter[0];
                }
                else
                {
                    vEdges[i].start = inter[1];
                }
            }
            if (!CheckPositiontoWorldBounds(vEdges[i].end))
            {
                Vector2[] inter = EdgeToCircleIntersection(vEdges[i]);


                float dis1 = Vector2.Distance(vEdges[i].start, inter[0]);
                float dis2 = Vector2.Distance(vEdges[i].start, inter[1]);

                if (dis1 < dis2)
                {
                    vEdges[i].end = inter[0];
                }
                else
                {
                    vEdges[i].end = inter[1];
                }
            }
            GameObject newMainRoad = Instantiate(mainRoadPF, new Vector3(vEdges[i].start.x, 0.1f, vEdges[i].start.y), Quaternion.identity);
            newMainRoad.GetComponent <MeshBuilderVoronoi>().GenerateMesh(vEdges[i].start, vEdges[i].end, mainRoadWidth);
            newMainRoad.transform.rotation = Quaternion.LookRotation(new Vector3(vEdges[i].ndir.x, 0, vEdges[i].ndir.y));
            newMainRoad.name = vEdges[i].LR;
            newMainRoad.GetComponent <AttachPoints>().CreateAttachPoints(Vector3.Distance(vEdges[i].start, vEdges[i].end), 5);

            Vector2 midPoint = new Vector2((vEdges[i].start.x + vEdges[i].end.x) / 2, (vEdges[i].start.y + vEdges[i].end.y) / 2f);
            Vector2 rotation = Vector2.Perpendicular(vEdges[i].ndir);

            GameObject       t  = Instantiate(turtlePf, new Vector3(midPoint.x, 0.1f, midPoint.y), Quaternion.LookRotation(new Vector3(rotation.x, 0, rotation.y)));
            TurtleController tc = t.GetComponent <TurtleController>();
            tc.streeWidth  = sideRoadWidth;
            tc.startStreet = newMainRoad;
            if (type == GenerationType.Circular)
            {
                float disToMid = Vector2.Distance(midPoint, Ground.transform.position);
                float p        = disToMid * 100 / groundRad;
                int   itt      = 0;
                if (p < 33.3f)
                {
                    itt = 3;
                }
                else if (p < 66.6f)
                {
                    itt = 2;
                }
                else
                {
                    itt = 1;
                }

                tc.Generate(itt);
            }
            else
            {
                tc.Generate(1);
            }
        }
    }
Exemplo n.º 7
0
 void Start()
 {
     turtleController = GetComponent<TurtleController>();
     nearbyBarrierDistanceThreshold = 75f;
     barrierController = GetComponent<BarrierController>();
 }
Exemplo n.º 8
0
 void Awake()
 {
     player = GameObject.FindWithTag("Player");
     turtleController = player.GetComponent<TurtleController>();
     playerStateController = player.GetComponent<TurtleStateController>();
     playerMovementController = player.GetComponent<TurtleMovementController>();
     waterSurfaceLevel = playerStateController.WaterSurfaceLevel();
 }
Exemplo n.º 9
0
 void Start()
 {
     deprecatedPlayerController = GameObject.FindWithTag("Player").GetComponent<TurtleController>();
 }
Exemplo n.º 10
0
    void Start()
    {
        player = GameObject.FindWithTag("Player");
        turtleController = player.GetComponent<TurtleController>();
        forwardSpeed = 16f;
        shoalingSpeed = 7f;
        burstSpeed = 25f;
        followingSpeed = 16.1f;
        if (rushingSpeed == 0) rushingSpeed = 35f;
        if (fastRotationSpeed == 0) fastRotationSpeed = 75f;
        obstacleAvoidanceRotationSpeed = 1.5f;
        followingRotationSpeed = 1.6f;
        shoalingRotationSpeed = 1.8f;
        if (rushRotationSpeed == 0) rushRotationSpeed = 5f;
        quickChangeOfDirectionDistance = .75f;
        patienceLeft = patienceSeed;
        particleEmitter = GetComponent<ParticleSystem>();

        InvokeRepeating("checkIfShouldStartDoingCalculations", Random.Range(3,15), 5);
    }
Exemplo n.º 11
0
 void Start()
 {
     parent = GetComponentInParent <TurtleController>();
 }