Inheritance: MonoBehaviour
Ejemplo n.º 1
0
 private void Update()
 {
     if (PlayerHere && gm.playState == _GM_Script.PlayState.PLAYER)
     {
         if (Input.GetKeyDown(KeyCode.E))
         {
             if (scene.SceneIndex != 5)
             {
                 GetOnElevator();
             }
             else
             {
                 elevator = GameObject.Find("Elevator").GetComponent <ElevatorScript>();
                 elevator.GetCurrentFloor();
                 elevator.ExitToFloor();
             }
         }
         else if (Input.GetKeyDown(KeyCode.JoystickButton1))
         {
             if (scene.SceneIndex != 5)
             {
                 GetOnElevator();
             }
             else
             {
                 elevator = GameObject.Find("Elevator").GetComponent <ElevatorScript>();
                 elevator.GetCurrentFloor();
                 elevator.ExitToFloor();
             }
         }
     }
 }
Ejemplo n.º 2
0
    void Start()
    {
        es = elevator.GetComponent <ElevatorScript>();
        gc = GameObject.Find("GameController").GetComponent <GameController>();


        if (gc.fallEnabled)
        {
            ToggleFallColliders(true);
        }
        else
        {
            ToggleFallColliders(false);
        }

        foreach (GameObject plank in planks)
        {
            plank.GetComponent <PositionCalibration>().LoadPosition();
        }

        //InstantiateTorch();
        //RandomizeSpinnerSymbols();
        //GameObject.Find("Clue Generator").GetComponent<ClueGenerator>().AssignClues(correctSpinnerSymbols[0], correctSpinnerSymbols[1], correctSpinnerSymbols[2]);

        audios       = GetComponents <AudioSource>();
        ambientSound = audios[0];
        spinnerSound = audios[1];
    }
Ejemplo n.º 3
0
    //finds the other elevator access points
    private void FindOtherElevators()
    {
        //gridPos.X
        //10 is subject to change

        TileScript _thisTile = LevelManager.Instance.Tiles [gridPos];

        for (int _y = 0; _y < 10; _y++)
        {
            Point _point = new Point(gridPos.X, _y, gridPos.Z);

            if (!LevelManager.Instance.InBounds(_point))
            {
                break;
            }

            TileScript _tile = LevelManager.Instance.Tiles [_point];
            if (_tile.HasElevator)
            {
                accessDict.Add(_y, _tile);
                accessIndexList.Add(_y);

                if (_y != gridPos.Y)
                {
                    ElevatorScript _elevator = _tile.transform.GetChild(6).GetChild(0).GetComponent <ElevatorScript> ();
                    _elevator.accessDict.Add(_thisTile.GridPosition.Y, _thisTile);
                    _elevator.accessIndexList.Add(_thisTile.GridPosition.Y);
                    //Debug.Log (y);
                }
            }
        }
    }
Ejemplo n.º 4
0
        public CarClass(GameObject platform, ElevatorScript wrapper, Transform spawn, Transform destintion)
        {
            this.elevator    = wrapper;
            this.platform    = (GameObject)Instantiate(elevator.platform);
            this.spawn       = spawn;
            this.destination = destintion;

            platform.transform.position = spawn.transform.position;
        }
Ejemplo n.º 5
0
    void Start()
    {
        elevatorScript = FindObjectOfType <ElevatorScript>();
        buttonRenderer = gameObject.GetComponent <Renderer>();

        buttonRenderer.material = darkMaterial;
        buttonLight             = GetComponent <Light>();
        buttonLight.enabled     = true;
    }
 /* Takes care of closing other elevators at the floor,
  * when an elevator wants to open its door */
 public void closeAllElevatorsAtFloor(GameObject elToOpen, int floorNr)
 {
     foreach (Transform elevator in elevators)
     {
         ElevatorScript elScript = elevator.GetComponent <ElevatorScript> ();
         if (elScript.currFloor == floorNr && elScript.destFloor == floorNr && !elScript.movingUp && !elScript.movingDown)
         {
             elScript.closeDoor();
         }
     }
 }
    /* Takes care of opening the elevator that just arrived if there is
     * no other elevator at the floor */
    public void elevatorArrived(GameObject elevator)
    {
        ElevatorScript e = elevator.GetComponent <ElevatorScript> ();

        Debug.Log("Elevetor arrived at floor number: " + e.currFloor);
        if (getOpenElevatorAtFloor(e.currFloor) == null)
        {
            e.openDoor();
        }
        // letOutMonsters is triggered by open door animation
        // e.letOutMonsters ();
    }
 /*              Find the elevator that is open at requested floor, return null if none. */
 public Transform getOpenElevatorAtFloor(int floorNr)
 {
     foreach (Transform elevator in elevators)
     {
         ElevatorScript e = elevator.gameObject.GetComponent <ElevatorScript>();
         if (e.currFloor == floorNr && e.destFloor == floorNr && !e.movingUp && !e.movingDown && e.doorOpen)
         {
             return(elevator);
         }
     }
     return(null);
 }
 private void Awake()
 {
     personQueue    = new Queue <GameObject>();
     elevatorScript = elevatorObj.GetComponent <ElevatorScript>();
     eleTransition  = new GameObjectTransition(elevatorObj, elevatorObj.transform.position, elevatorScript.eleSpeed);
     travelledUp    = new Queue <GameObject> [elevatorScript.numFloors];
     for (int i = 0; i < elevatorScript.numFloors; i++)
     {
         travelledUp[i] = new Queue <GameObject>();
     }
     personTransitionList = new List <GameObjectTransition>();
     eventList            = CSVReader.Read("DataCSVModified");
     sizeFloor            = 2 * yLimit / numFloors;
 }
Ejemplo n.º 10
0
    private void DoElevatorMenu()
    {
        //Debug.Log ("ele- ele- elevator!");


        isOccupied    = true;
        usingElevator = true;

        elevatorMenu.SetActive(true);
        //give the menu the elevator reference

        ElevatorScript _elevator = elevator.GetComponent <ElevatorScript> ();

        elevatorMenu.transform.GetChild(1).GetComponent <ElevatorBtnPanelScr> ().SetBtns(_elevator);
    }
Ejemplo n.º 11
0
    /*
     * void Start () {
     *      for (int i = 0; i < btnArr.Length; i++) {
     *              btnArr [i] = transform.GetChild (i).gameObject;
     *      }
     * }
     */


    public void SetBtns(ElevatorScript _elevator)
    {
        //Debug.Log ("elevatro");

        for (int i = 0; i < btnArr.Length; i++)
        {
            btnArr [i].gameObject.SetActive(false);
        }

        List <int> _levels = _elevator.AccessIndexList;

        for (int i = 0; i < _levels.Count; i++)
        {
            btnArr [_levels [i] - 1].gameObject.SetActive(true);
        }
    }
 /* Takes care of opening another elevator if there is one at the floor
  * that the elevator is leaving from. */
 public void elevatorLeftFloor(int floorNr)
 {
     if (getOpenElevatorAtFloor(floorNr) == null)
     {
         foreach (Transform elevator in elevators)
         {
             ElevatorScript e = elevator.gameObject.GetComponent <ElevatorScript>();
             if (e.currFloor == floorNr && e.destFloor == floorNr && !e.movingUp && !e.movingDown && !e.doorOpen)
             {
                 e.requestOpenDoor();
                 break;
                 // e.openDoor();
                 // return;
             }
         }
     }
 }
    public override void OnInspectorGUI()
    {
        ElevatorScript scr = (ElevatorScript)target;

        Rigidbody2D rb = scr.GetComponent <Rigidbody2D>();

        scr.rb = rb;

        base.OnInspectorGUI();

        if (scr.usedButton == null && !scr.alwaysActive)
        {
            EditorGUILayout.HelpBox("No button is assigned! Assign a button in the scene or enable Always Active.", MessageType.Error);
        }
        else if (!scr.usedButton.GetComponent <ButtonScript>() && !scr.alwaysActive)
        {
            EditorGUILayout.HelpBox("The 'Used Button' does not have a ButtonScript.cs component attached! The elevator/door will not function.", MessageType.Error);
        }

        GUILayout.Space(10);
        EditorGUILayout.LabelField("Set Platform Positions", EditorStyles.boldLabel);
        EditorGUILayout.LabelField("Sets the target move position for the platform. Position on scene start will be its starting position.", EditorStyles.miniLabel);

        if (!Application.isPlaying)
        {
            startPos.vector2Value = scr.rb.position;


            if (GUILayout.Button("Set Target Position"))
            {
                endPos.vector2Value = scr.rb.position;
            }
        }



        EditorGUILayout.LabelField("Start Position: " + scr.PlatStart);
        EditorGUILayout.LabelField("Target Position: " + scr.PlatEnd);

        serializedObject.ApplyModifiedProperties();
    }
Ejemplo n.º 14
0
    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Escape) && !introFinished && !skipped)
        {
            status  = 3;
            skipped = true;
            briefMusic.Stop();
            images[0].enabled  = false;
            images[1].enabled  = false;
            background.enabled = false;
            images[2].enabled  = false;
        }
        switch (status)
        {
        case 0:
            timer -= Time.deltaTime;
            Camera.SetupCurrent(introCamera);
            if (timer < 0)
            {
                status            = 1;
                images[0].enabled = false;
                images[1].enabled = true;
                timer             = imageTime;
            }
            break;

        case 1:
            timer -= Time.deltaTime;
            if (timer < 0)
            {
                status            = 2;
                images[1].enabled = false;
                images[2].enabled = true;
                briefMusic.Play();
            }
            break;

        case 2:
            float t = briefMusic.time / briefMusic.clip.length;
            Debug.Log(t + " " + Time.time);
            briefRt.position = Vector3.Lerp(textInitial, textFinal, t);
            if (!briefMusic.isPlaying)
            {
                background.enabled = false;
                images[2].enabled  = false;
                status             = 3;
            }
            break;

        case 3:
            if (!ElevatorScript.opening && !ElevatorScript.opened)
            {
                ElevatorScript.open();
            }
            if (ElevatorScript.opened)
            {
                status = 4;
            }
            break;

        case 4:
            imBack.Play();
            status = 5;
            break;

        case 5:
            introCamera.transform.Translate(introCamera.transform.forward * cameraSpeed * Time.deltaTime);
            if (!imBack.isPlaying)
            {
                status = 6;
                startCameraMoveTime   = Time.time;
                initialIntroCameraPos = Camera.current.transform.position;
                player.animController.SetBool("walking", true);
            }
            break;

        case 6:
            float f = (Time.time - startCameraMoveTime) / cameraPanDuration;
            Camera.current.transform.position     = Vector3.Slerp(initialIntroCameraPos, mainCamera.transform.position, f);
            player.gameObject.transform.position += player.gameObject.transform.forward * 3 * Time.deltaTime;
            Camera.current.transform.LookAt(player.transform.position);

            if (f > 0.95)
            {
                status = 7;
            }
            break;

        case 7:
            ElevatorScript.close();
            player.animController.SetBool("walking", false);
            status = 8;
            codecSound.Play();
            break;

        case 8:
            if (!codecSound.isPlaying)
            {
                status = 9;
            }
            break;

        case 9:
            codecOverlay.SetActive(true);
            textImages[textImagePointer].gameObject.SetActive(true);
            textImages[textImagePointer].enabled = true;
            status = 10;
            break;

        case 10:
            if (Input.anyKeyDown)
            {
                textImages[textImagePointer].gameObject.SetActive(false);
                textImages[textImagePointer++].enabled = false;
                if (textImagePointer == textImages.Length)
                {
                    status = 1000;
                    break;
                }
                textImages[textImagePointer].gameObject.SetActive(true);
                textImages[textImagePointer].enabled = true;
            }
            break;

        case 1000:
            foreach (Image i in images)
            {
                i.enabled = false;
            }
            foreach (Image i in textImages)
            {
                i.enabled = false;
            }
            background.enabled = false;
            codecOverlay.SetActive(false);
            introFinished       = true;
            introCamera.enabled = false;
            MusicScript.start   = true;
            HUD.SetActive(true);
            break;
        }
    }
Ejemplo n.º 15
0
    private void Update()
    {
        if (level == 1)
        {
            //Gate1
            if (stateButton1 || stateButton2)
            {
                if (gate1_moved < 20)
                {
                    Gate1.transform.Translate(0, 0.15f, 0);
                    gate1_moved++;
                }
            }
            else
            {
                if (gate1_moved > 0)
                {
                    Gate1.transform.Translate(0, -0.15f, 0);
                    gate1_moved--;
                }
            }

            //Gate2
            if (stateButton3)
            {
                if (gate2_moved < 12)
                {
                    Gate2.transform.Translate(0, 0.15f, 0);
                    gate2_moved++;
                }
            }
            else
            {
                if (gate2_moved > 0)
                {
                    Gate2.transform.Translate(0, -0.15f, 0);
                    gate2_moved--;
                }
            }

            //Gate3
            if (stateButton4)
            {
                if (gate3_moved < 10)
                {
                    Gate3.transform.localScale = Gate3.transform.localScale - new Vector3(0, 0.2f, 0);
                    Gate3.transform.Translate(0, 0.1f, 0);
                    gate3_moved++;
                }
            }
            else
            {
                if (gate3_moved > 0)
                {
                    Gate3.transform.Translate(0, -0.1f, 0);
                    Gate3.transform.localScale = Gate3.transform.localScale + new Vector3(0, 0.2f, 0);
                    gate3_moved--;
                }
            }

            //Platform
            //Upwards Movement
            if (stateButton5 && platform_moved_right == 0)
            {
                if (platform_moved_up < 59)
                {
                    Platform.transform.Translate(0, 0.05f, 0);
                    if (MovingPlatformScript.getRobotCollision)
                    {
                        Robo.transform.Translate(0, 0.05f, 0);
                    }
                    if (MovingPlatformScript.getProfCollision)
                    {
                        Prof.transform.Translate(0, 0.05f, 0);
                    }
                    platform_moved_up++;
                }
            }
            else
            {
                if (platform_moved_up > 0)
                {
                    Platform.transform.Translate(0, -0.05f, 0);
                    if (MovingPlatformScript.getRobotCollision)
                    {
                        Robo.transform.Translate(0, -0.05f, 0);
                    }
                    if (MovingPlatformScript.getProfCollision)
                    {
                        Prof.transform.Translate(0, -0.05f, 0);
                    }
                    platform_moved_up--;
                }
            }
            //Sideways Movement
            if (stateButton6 && platform_moved_up == 0)
            {
                if (platform_moved_right < 90)
                {
                    Platform.transform.Translate(0.05f, 0, 0);
                    if (MovingPlatformScript.getRobotCollision)
                    {
                        Robo.transform.Translate(0.05f, 0, 0);
                    }
                    if (MovingPlatformScript.getProfCollision)
                    {
                        Prof.transform.Translate(0.05f, 0, 0);
                    }
                    platform_moved_right++;
                }
            }
            else
            {
                if (platform_moved_right > 0)
                {
                    Platform.transform.Translate(-0.05f, 0, 0);
                    if (MovingPlatformScript.getRobotCollision)
                    {
                        Robo.transform.Translate(-0.05f, 0, 0);
                    }
                    if (MovingPlatformScript.getProfCollision)
                    {
                        Prof.transform.Translate(-0.05f, 0, 0);
                    }
                    platform_moved_right--;
                }
            }

            //Gate4
            if (stateButtonPerma1)
            {
                if (gate4_moved < 10)
                {
                    Gate4.transform.Translate(0, 0.2f, 0);
                    gate4_moved++;
                }
            }

            //Elevator
            if (stateButtonMulti1_both)
            {
                ElevatorScript.setActive();
            }
        }

        else if (level == 2)
        {
            //Elevator
            if (stateButtonMulti2_all)
            {
                ElevatorScript.setActive();
            }

            //Ramp
            if (stateButton1)
            {
                if (rampMovedUp < 40)
                {
                    rampMovedUp++;
                    Ramp.transform.eulerAngles = new Vector3(0, 0, (float)rampMovedUp / 4 * 3);
                }
            }
            else
            {
                if (rampMovedUp > 0)
                {
                    rampMovedUp--;
                    Ramp.transform.eulerAngles = new Vector3(0, 0, (float)rampMovedUp / 4 * 3);
                }
            }
        }
    }
Ejemplo n.º 16
0
    void FixedUpdate()
    {
        if (skeleton != null)
        {
            List <RigidNode_Base> nodes = skeleton.ListAllNodes();

            unityPacket.OutputStatePacket packet = udp.GetLastPacket();


            DriveJoints.UpdateAllMotors(skeleton, packet.dio);
            //TODO put this code in drivejoints, figure out nullreference problem with cDriver
            foreach (RigidNode_Base node in nodes)
            {
                UnityRigidNode uNode = (UnityRigidNode)node;
                if (uNode.GetSkeletalJoint() != null)
                {
                    if (uNode.GetSkeletalJoint().GetJointType() == SkeletalJointType.LINEAR && uNode.GetSkeletalJoint().cDriver != null && uNode.GetSkeletalJoint().cDriver.GetDriveType() == JointDriverType.ELEVATOR)
                    {
                        ElevatorScript es = uNode.unityObject.GetComponent <ElevatorScript>();

                        float[] pwm = packet.dio[0].pwmValues;
                        if (Input.anyKey)
                        {
                            pwm[3] += (Input.GetKey(KeyCode.Alpha1) ? 1f : 0f);
                            pwm[3] += (Input.GetKey(KeyCode.Alpha2) ? -1f : 0f);
                        }
                        if (es != null)
                        {
                            for (int i = 0; i < 8; i++)
                            {
                                if (uNode.GetSkeletalJoint().cDriver.portA == i)
                                {
                                    es.currentTorque = pwm[i] * 2;
                                }
                            }
                        }
                    }
                }
            }
            DriveJoints.UpdateSolenoids(skeleton, packet.solenoid);

            #region HANDLE_SENSORS
            InputStatePacket sensorPacket = new InputStatePacket();
            foreach (RigidNode_Base node in nodes)
            {
                UnityRigidNode uNode = (UnityRigidNode)node;

                if (node.GetSkeletalJoint() == null)
                {
                    continue;
                }

                foreach (RobotSensor sensor in node.GetSkeletalJoint().attachedSensors)
                {
                    int aiValue; //int between 0 and 1024, typically
                    InputStatePacket.DigitalState dioValue;
                    switch (sensor.type)
                    {
                    case RobotSensorType.POTENTIOMETER:
                        if (node.GetSkeletalJoint() != null && node.GetSkeletalJoint() is RotationalJoint_Base)
                        {
                            float angle = DriveJoints.GetAngleBetweenChildAndParent(uNode) + ((RotationalJoint_Base)uNode.GetSkeletalJoint()).currentAngularPosition;
                            sensorPacket.ai[sensor.module - 1].analogValues[sensor.port - 1] = (int)sensor.equation.Evaluate(angle);
                        }
                        break;

                    case RobotSensorType.ENCODER:
                        throw new NotImplementedException();
                        break;

                    case RobotSensorType.LIMIT:
                        throw new NotImplementedException();
                        break;

                    case RobotSensorType.GYRO:
                        throw new NotImplementedException();
                        break;

                    case RobotSensorType.MAGNETOMETER:
                        throw new NotImplementedException();
                        break;

                    case RobotSensorType.ACCELEROMETER:
                        throw new NotImplementedException();
                        break;

                    case RobotSensorType.LIMIT_HALL:
                        throw new NotImplementedException();
                        break;
                    }
                }
            }
            udp.WritePacket(sensorPacket);
            #endregion
        }
    }
Ejemplo n.º 17
0
 public ElevatorMovesDown(ElevatorScript rayElevator)
 {
     this.rayElevator = rayElevator;
 }
Ejemplo n.º 18
0
    // Use this for initialization
    void Start()
    {
        GameObject go = GameObject.FindGameObjectWithTag("elevator");

        elevatorScript = go.GetComponent <ElevatorScript>();
    }
Ejemplo n.º 19
0
    void Start()
    {
        shirtcolor  = Random.Range(0, 3);
        jumping     = false;
        jumpcounter = 0;
        timer       = 0;

        rend = GetComponent <SpriteRenderer>();

        speed *= 1 + ((Random.value - 0.5f) / 5);

        switch (shirtcolor)
        {
        case 0:
            rend.sprite = red;
            break;

        case 1:
            rend.sprite = blue;
            break;

        case 2:
            rend.sprite = green;
            break;

        default:
            print("No shirt color chosen. This shouldn't be possible.");
            break;
        }

        ypos = gameObject.transform.position.y;
        if (ypos == 21)
        {
            currentFloor = 5;
        }
        else if (ypos == 10.5)
        {
            currentFloor = 4;
        }
        else if (ypos == 0)
        {
            currentFloor = 3;
        }
        else if (ypos == -10.5)
        {
            currentFloor = 2;
        }
        else if (ypos == -21)
        {
            currentFloor = 1;
        }
        else
        {
            print("FFFFFUUUUU");
        }
        do
        {
            destination = Random.Range(1, 6);
        } while (destination == currentFloor);

        destText.text = destination.ToString();

        thinkbubble = gameObject.transform.GetChild(0);
        thinkbubble.transform.Translate(Vector3.forward * Random.value);

        // Assign elevator
        if (gameObject.transform.position.x > 0)
        {
            elevator = GameObject.Find("elevator2");
        }
        else
        {
            elevator = GameObject.Find("elevator1");
        }
        elevscript     = elevator.GetComponent <ElevatorScript> ();
        gameController = GameObject.Find("GameController");
        gamescript     = gameController.GetComponent <GameController> ();

        elevatorSeat = 4 + Random.Range(0, 3);

        bubble_exist = true;
    }
Ejemplo n.º 20
0
 public ElevatorMoveUp(ElevatorScript rayElevator)
 {
     this.rayElevator = rayElevator;
 }
Ejemplo n.º 21
0
    void FixedUpdate()
    {
        if (skeleton != null)
        {
            List <RigidNode_Base> nodes = skeleton.ListAllNodes();

            unityPacket.OutputStatePacket packet = udp.GetLastPacket();

            //stops robot while menu is open
            if (gui.guiVisible)
            {
                mainNode.rigidbody.isKinematic = true;
            }
            else
            {
                mainNode.rigidbody.isKinematic = false;
            }

            DriveJoints.UpdateAllMotors(skeleton, packet.dio);
            //TODO put this code in drivejoints, figure out nullreference problem with cDriver
            foreach (RigidNode_Base node in nodes)
            {
                UnityRigidNode uNode = (UnityRigidNode)node;
                if (uNode.GetSkeletalJoint() != null)
                {
                    if (uNode.GetSkeletalJoint().GetJointType() == SkeletalJointType.LINEAR && uNode.GetSkeletalJoint().cDriver != null && uNode.GetSkeletalJoint().cDriver.GetDriveType() == JointDriverType.ELEVATOR)
                    {
                        ElevatorScript es = uNode.unityObject.GetComponent <ElevatorScript>();

                        float[] pwm = packet.dio[0].pwmValues;
                        if (Input.anyKey)
                        {
                            pwm[3] += (Input.GetKey(KeyCode.Alpha1) ? 1f : 0f);
                            pwm[3] += (Input.GetKey(KeyCode.Alpha2) ? -1f : 0f);
                        }
                        if (es != null)
                        {
                            for (int i = 0; i < 8; i++)
                            {
                                if (uNode.GetSkeletalJoint().cDriver.portA == i)
                                {
                                    es.currentTorque = pwm[i] * 2;
                                }
                            }
                        }
                    }
                }
            }
            DriveJoints.UpdateSolenoids(skeleton, packet.solenoid);

            #region HANDLE_SENSORS
            InputStatePacket sensorPacket = new InputStatePacket();
            foreach (RigidNode_Base node in nodes)
            {
                UnityRigidNode uNode = (UnityRigidNode)node;

                if (node.GetSkeletalJoint() == null)
                {
                    continue;
                }

                foreach (RobotSensor sensor in node.GetSkeletalJoint().attachedSensors)
                {
                    int aiValue;                     //int between 0 and 1024, typically
                    InputStatePacket.DigitalState dioValue;
                    switch (sensor.type)
                    {
                    case RobotSensorType.POTENTIOMETER:
                        if (node.GetSkeletalJoint() != null && node.GetSkeletalJoint() is RotationalJoint_Base)
                        {
                            float angle = DriveJoints.GetAngleBetweenChildAndParent(uNode) + ((RotationalJoint_Base)uNode.GetSkeletalJoint()).currentAngularPosition;
                            sensorPacket.ai [sensor.module - 1].analogValues [sensor.port - 1] = (int)sensor.equation.Evaluate(angle);
                        }
                        break;

                    case RobotSensorType.ENCODER:
                        throw new NotImplementedException();
                        break;

                    case RobotSensorType.LIMIT:
                        throw new NotImplementedException();
                        break;

                    case RobotSensorType.GYRO:
                        throw new NotImplementedException();
                        break;

                    case RobotSensorType.MAGNETOMETER:
                        throw new NotImplementedException();
                        break;

                    case RobotSensorType.ACCELEROMETER:
                        throw new NotImplementedException();
                        break;

                    case RobotSensorType.LIMIT_HALL:
                        throw new NotImplementedException();
                        break;
                    }
                }
            }
            udp.WritePacket(sensorPacket);
            #endregion

            //calculates stats of robot
            if (mainNode != null)
            {
                speed        = (float)Math.Abs(mainNode.rigidbody.velocity.magnitude);
                weight       = (float)Math.Round(mainNode.rigidbody.mass * 2.20462 * 860, 1);
                angvelo      = (float)Math.Abs(mainNode.rigidbody.angularVelocity.magnitude);
                acceleration = (float)(mainNode.rigidbody.velocity.magnitude - oldSpeed) / Time.deltaTime;
                oldSpeed     = speed;
                if (!time_stop)
                {
                    time += Time.deltaTime;
                }
            }
        }
    }
Ejemplo n.º 22
0
 public void IsElevatorNear(bool _isNear, ElevatorScript _elevator)
 {
     elevatorIsNear = _isNear;
     elevator       = _elevator;
 }
Ejemplo n.º 23
0
    public void loadGraph()
    {
        //Destroy all nodes


        //read file
        string line;

        using (StreamReader sr = new StreamReader(path)) {
            line = sr.ReadToEnd();
        }

        JsonReader reader = new JsonReader();

        var output = reader.Read <Dictionary <string, object> >(line);

        Dictionary <string, object>[] jnode = (Dictionary <string, object>[])output ["nodes"];
        //create nodes
        print("CREATE NODES");
        foreach (Dictionary <string, object> jNode in jnode)
        {
            GameObject node = (GameObject)Instantiate(nodeTemp);


            node.name = jNode["id"].ToString();
            NodeScript scpt = node.GetComponent <NodeScript>();

            scpt.Id        = jNode["id"].ToString();
            scpt.occupants = (int)jNode["arrivals"];
            scpt.goalState = (bool)jNode["isGoal"];

            Dictionary <string, object> pos = (Dictionary <string, object>)jNode["position"];
            node.transform.position = new Vector3(float.Parse(pos["x"].ToString()),
                                                  float.Parse(pos["y"].ToString()),
                                                  float.Parse(pos["z"].ToString()));
        }
        print("CREATE EDGES");
        //Create edges
        foreach (Dictionary <string, object> jNode in jnode)
        {
            try {
                foreach (Dictionary <string, object> jEdge in (Dictionary <string, object>[])jNode["edges"])
                {
                    GameObject start = GameObject.Find(jEdge["start"].ToString());
                    GameObject end   = GameObject.Find(jEdge["end"].ToString());

                    GameObject edge = (GameObject)Instantiate(edgeTemp,
                                                              start.transform.position,
                                                              start.transform.rotation);
                    edge.name = jEdge ["start"].ToString() + "->" + jEdge ["end"].ToString();
                    EdgeScript edgeScpt = edge.GetComponent <EdgeScript> ();


                    edgeScpt.flowRate     = (int)jEdge ["flowRate"];
                    edgeScpt.cost         = (int)jEdge ["cost"];
                    edgeScpt.start        = start;
                    edgeScpt.end          = end;
                    edge.transform.parent = start.transform;
                }
            } catch (InvalidCastException e) {
            }
        }

        //Create elevators
        try {
            foreach (Dictionary <string, object> jElevator in (Dictionary <string, object>[])output ["elevators"])
            {
                //instantiate new elevator
                GameObject elevator = (GameObject)Instantiate(elevatorTemp);
                elevator.name = jElevator["id"].ToString() + "elevator";
                ElevatorScript scpt = elevator.GetComponent <ElevatorScript>();

                Dictionary <string, object>[] jNodes = (Dictionary <string, object>[])jElevator["nodes"];

                GameObject[] nodes = new GameObject[jNodes.Length];
                //Create new Edge array
                int index = 0;

                foreach (Dictionary <string, object> node in jNodes)
                {
                    nodes[index] = GameObject.Find(node["id"].ToString());
                    index++;
                }

                scpt.Id              = jElevator["id"].ToString();
                scpt.nodes           = nodes;
                scpt.initialLocation = jElevator["initialLocation"].ToString();
                //Find edges by name
            }
        } catch (InvalidCastException e) {
        }
    }
Ejemplo n.º 24
0
    public void SaveGraph()
    {
        JSONObject json = JSONObject.obj;

        JSONObject nodes = JSONObject.arr;

        GameObject[] Nodes = GameObject.FindGameObjectsWithTag("Node");
        print(Nodes.Length);
        foreach (GameObject node in Nodes)
        {
            NodeScript scptNode = node.GetComponent <NodeScript>();
            JSONObject jNode    = JSONObject.obj;
            jNode.AddField("id", scptNode.Id);
            JSONObject position = JSONObject.obj;
            position.AddField("x", node.transform.position.x);
            position.AddField("y", node.transform.position.y);
            position.AddField("z", node.transform.position.z);
            jNode.AddField("position", position);
            jNode.AddField("arrivals", scptNode.occupants);
            jNode.AddField("isGoal", scptNode.goalState);
            //EDGES
            JSONObject jEdges = JSONObject.arr;
            foreach (EdgeScript edge in scptNode.GetComponentsInChildren <EdgeScript>())
            {
                //EdgeScript scptEdge = edge.GetComponent<EdgeScript>();
                NodeScript A = edge.start.GetComponent <NodeScript>();
                NodeScript B = edge.end.GetComponent <NodeScript>();

                JSONObject jEdge = JSONObject.obj;
                jEdge.AddField("start", A.Id);
                jEdge.AddField("end", B.Id);
                jEdge.AddField("cost", edge.cost);
                jEdge.AddField("flowRate", edge.flowRate);
                jEdges.Add(jEdge);
            }
            jNode.AddField("edges", jEdges);
            nodes.Add(jNode);
        }

        json.AddField("nodes", nodes);

        JSONObject elevators = JSONObject.arr;

        GameObject[] Elevators = GameObject.FindGameObjectsWithTag("Elevator");

        foreach (GameObject elevator in Elevators)
        {
            ElevatorScript elevate = elevator.GetComponent <ElevatorScript>();

            JSONObject jElevator = JSONObject.obj;
            jElevator.AddField("id", elevate.Id);
            jElevator.AddField("initialLocation", elevate.initialLocation);
            JSONObject jNodes = JSONObject.arr;

            foreach (GameObject node in elevate.nodes)
            {
                JSONObject jNode = JSONObject.obj;
                NodeScript scpt  = node.GetComponent <NodeScript>();

                jNode.AddField("id", scpt.Id);
                jNodes.Add(jNode);
            }
            jElevator.AddField("nodes", jNodes);
            elevators.Add(jElevator);
        }

        json.AddField("elevators", elevators);

        StreamWriter fileOut = File.CreateText(path);

        fileOut.WriteLine(json.ToString());
        fileOut.Close();
    }
Ejemplo n.º 25
0
 private void OnEnable()
 {
     Instance = this;
 }