void Awake() { if (_instance == null) { _instance = this; } else { Debug.LogError("There should not be 2 RotatingWheels, destroys the newly created RotatingWheels"); Destroy(gameObject); } }
public void ResolveInteraction(string interactionId, GameObject obj) { Debug.Log("Resolving interaction: " + interactionId); if (interactionId == "breakable_door_00") { GameObject.Find("InputController").GetComponent <InputController>().ActionTutorialPass(); Player.GetComponentInChildren <Animator>().SetBool("headbutt", true); } else if (interactionId == "exit_door_00" || interactionId == "exit_door_01" || interactionId == "exit_door_02" || interactionId == "exit_door_04") { ExitDoor exitDoor = obj.GetComponent <ExitDoor>(); if (!exitDoor.usable) { return; } exitDoor.usable = false; Player.GetComponent <CharacterController2D>().WalkRightEndlessly = true; if (interactionId == "exit_door_00") { GameObject depthWall = GameObject.FindGameObjectWithTag("DepthWall"); Transform depthWallTransform = depthWall.transform; depthWallTransform.position = new Vector3( depthWallTransform.position.x, depthWallTransform.position.y, -5.0f); } LevelTransitionManager.Instance.LoadNextLevel(); } else if (interactionId == "wall_fish_00" || interactionId == "wall_fish_01" || interactionId == "wall_fish_02") { RotatingWheel rotatingWheel = obj.GetComponent <RotatingWheel>(); if (!rotatingWheel.usable) { return; } rotatingWheel.Rotate(); } else if (interactionId == "wheel_puzzle_ok") { StartCoroutine(WheelPuzzleActions()); } else if (interactionId == "exit_door_desert") { ExitDoorDesert door = obj.GetComponent <ExitDoorDesert>(); if (!door.usable) { return; } if (door.numberTimesUsed == 0 || door.numberTimesUsed == 1) { Player.GetComponent <CharacterInteractions>().InteractionsEnabled = false; Player.GetComponent <CharacterController2D>().WalkRightEndlessly = true; StartCoroutine(TransitionDesert(door)); } else { door.usable = false; Player.GetComponent <CharacterInteractions>().InteractionsEnabled = false; Player.GetComponent <CharacterController2D>().WalkRightEndlessly = true; LevelTransitionManager.Instance.LoadNextLevel(); } } }