Subversion Repository Public Repository

Nextrek

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
/*
 *
 *	Adventure Creator
 *	by Chris Burton, 2013-2014
 *	
 *	"MenuLink.cs"
 * 
 *	This script connects to a Menu Element defined
 *  in the Menu Manager, allowing for 3D, scene-based menus
 * 
 */

using UnityEngine;
using System.Collections;

namespace AC
{

	public class MenuLink : MonoBehaviour
	{

		public string menuName = "";
		public string elementName = "";
		public int slot = 0;

		private Menu menu;
		private MenuElement element;
		private PlayerMenus playerMenus;
	

		private void Awake ()
		{
			if (GameObject.FindWithTag (Tags.gameEngine) && GameObject.FindWithTag (Tags.gameEngine).GetComponent <PlayerMenus>())
			{
				playerMenus = GameObject.FindWithTag (Tags.gameEngine).GetComponent <PlayerMenus>();
			}
		}


		private void Start ()
		{
			if (menuName == "" || elementName == "")
			{
				return;
			}

			try
			{
				menu = PlayerMenus.GetMenuWithName (menuName);
				element = PlayerMenus.GetElementWithName (menuName, elementName);
			}
			catch
			{
				Debug.LogWarning ("Cannot find Menu Element with name: " + elementName + " on Menu: " + menuName);
			}
		}


		private void FixedUpdate ()
		{
			if (element && guiText)
			{
				guiText.text = GetLabel ();
			}
		}


		public string GetLabel ()
		{
			if (element)
			{
				return element.GetLabel (slot);
			}

			return "";
		}


		public bool IsVisible ()
		{
			if (element && menu)
			{
				if (!menu.IsVisible ())
				{
					return false;
				}

				return element.isVisible;
			}

			return false;
		}


		public void Interact ()
		{
			if (element && playerMenus)
			{
				if (!element.isClickable)
				{
					Debug.Log ("Cannot click on " + elementName);
				}

				playerMenus.SimulateClick (menuName, element, slot);
			}
		}


		private void OnDestroy ()
		{
			playerMenus = null;
			element = null;
			menu = null;
		}

	}

}

Commits for Nextrek/SpaceCrew/SpaceCrew/Assets/AdventureCreator/Scripts/Object/MenuLink.cs

Diff revisions: vs.
Revision Author Commited Message
83 FMMortaroli picture FMMortaroli Tue 13 May, 2014 11:32:51 +0000