public override void Declare ()
		{
			label = "Button";
			hotspotLabel = "";
			hotspotLabelID = -1;
			isVisible = true;
			isClickable = true;
			textEffects = TextEffects.None;
			buttonClickType = AC_ButtonClickType.RunActionList;
			simulateInput = SimulateInputType.Button;
			simulateValue = 1f;
			numSlots = 1;
			anchor = TextAnchor.MiddleCenter;
			SetSize (new Vector2 (10f, 5f));
			doFade = false;
			switchMenuTitle = "";
			inventoryBoxTitle = "";
			shiftInventory = AC_ShiftInventory.ShiftLeft;
			loopJournal = false;
			actionList = null;
			inputAxis = "";
			clickTexture = null;
			clickAlpha = 0f;
			shiftAmount = 1;
			onlyShowWhenEffective = false;
			allowContinuousClick = false;

			base.Declare ();
		}
Beispiel #2
0
        /**
         * Initialises the element when it is created within MenuManager.
         */
        public override void Declare()
        {
            uiButton        = null;
            uiText          = null;
            label           = "Button";
            hotspotLabel    = "";
            hotspotLabelID  = -1;
            isVisible       = true;
            isClickable     = true;
            textEffects     = TextEffects.None;
            buttonClickType = AC_ButtonClickType.RunActionList;
            simulateInput   = SimulateInputType.Button;
            simulateValue   = 1f;
            numSlots        = 1;
            anchor          = TextAnchor.MiddleCenter;
            SetSize(new Vector2(10f, 5f));
            doFade                = false;
            switchMenuTitle       = "";
            inventoryBoxTitle     = "";
            shiftInventory        = AC_ShiftInventory.ShiftLeft;
            loopJournal           = false;
            actionList            = null;
            inputAxis             = "";
            clickTexture          = null;
            clickAlpha            = 0f;
            shiftAmount           = 1;
            onlyShowWhenEffective = false;
            allowContinuousClick  = false;
            parameterID           = -1;
            parameterValue        = 0;

            base.Declare();
        }
Beispiel #3
0
        /**
         * <summary>Copies the values from another MenuButton instance.</summary>
         * <param name = "_element">The MenuButton to copy values from</param>
         */
        public void CopyButton(MenuButton _element)
        {
            uiButton              = _element.uiButton;
            uiText                = _element.uiText;
            label                 = _element.label;
            hotspotLabel          = _element.hotspotLabel;
            hotspotLabelID        = _element.hotspotLabelID;
            anchor                = _element.anchor;
            textEffects           = _element.textEffects;
            buttonClickType       = _element.buttonClickType;
            simulateInput         = _element.simulateInput;
            simulateValue         = _element.simulateValue;
            doFade                = _element.doFade;
            switchMenuTitle       = _element.switchMenuTitle;
            inventoryBoxTitle     = _element.inventoryBoxTitle;
            shiftInventory        = _element.shiftInventory;
            loopJournal           = _element.loopJournal;
            actionList            = _element.actionList;
            inputAxis             = _element.inputAxis;
            clickTexture          = _element.clickTexture;
            clickAlpha            = _element.clickAlpha;
            shiftAmount           = _element.shiftAmount;
            onlyShowWhenEffective = _element.onlyShowWhenEffective;
            allowContinuousClick  = _element.allowContinuousClick;
            parameterID           = _element.parameterID;
            parameterValue        = _element.parameterValue;

            base.Copy(_element);
        }
Beispiel #4
0
        public void CopyButton(MenuButton _element)
        {
            uiButton = _element.uiButton;
            uiText = _element.uiText;
            label = _element.label;
            hotspotLabel = _element.hotspotLabel;
            hotspotLabelID = _element.hotspotLabelID;
            anchor = _element.anchor;
            textEffects = _element.textEffects;
            buttonClickType = _element.buttonClickType;
            simulateInput = _element.simulateInput;
            simulateValue = _element.simulateValue;
            doFade = _element.doFade;
            switchMenuTitle = _element.switchMenuTitle;
            inventoryBoxTitle = _element.inventoryBoxTitle;
            shiftInventory = _element.shiftInventory;
            loopJournal = _element.loopJournal;
            actionList = _element.actionList;
            inputAxis = _element.inputAxis;
            clickTexture = _element.clickTexture;
            clickAlpha = _element.clickAlpha;
            shiftAmount = _element.shiftAmount;
            onlyShowWhenEffective = _element.onlyShowWhenEffective;
            allowContinuousClick = _element.allowContinuousClick;
            parameterID = _element.parameterID;
            parameterValue = _element.parameterValue;

            base.Copy (_element);
        }
 /**
  * <summary>A Constructor in which the unique identifier is explicitly set.</summary>
  * <param name = "_ID">The unique identifier</param>
  */
 public ActiveInput(int _ID)
 {
     inputName       = "";
     gameState       = GameState.Normal;
     actionListAsset = null;
     enabledOnStart  = true;
     ID            = _ID;
     inputType     = SimulateInputType.Button;
     axisThreshold = 0.2f;
 }
Beispiel #6
0
 /**
  * <summary>A Constructor in which the unique identifier is explicitly set.</summary>
  * <param name = "_ID">The unique identifier</param>
  */
 public ActiveInput(int _ID)
 {
     inputName       = string.Empty;
     gameState       = GameState.Normal;
     actionListAsset = null;
     enabledOnStart  = true;
     ID            = _ID;
     inputType     = SimulateInputType.Button;
     buttonType    = ActiveInputButtonType.OnButtonDown;
     axisThreshold = 0.2f;
 }
        /**
         * <summary>A Constructor in which the unique identifier is explicitly set.</summary>
         * <param name = "_ID">The unique identifier</param>
         */
        public ActiveInput(int _ID)
        {
            inputName       = "";
            gameState       = GameState.Normal;
            actionListAsset = null;
            enabledOnStart  = true;
            ID            = _ID;
            inputType     = SimulateInputType.Button;
            axisThreshold = 0.2f;

                        #if UNITY_EDITOR
            isEditing = false;
                        #endif
        }
Beispiel #8
0
        public void ShowGUI()
        {
            string defaultName = "ActiveInput_" + Label;

            label     = CustomGUILayout.TextField("Label:", label, string.Empty, "An Editor-friendly name");
            inputName = CustomGUILayout.TextField("Input button:", inputName, string.Empty, "The name of the Input button, as defined in the Input Manager");
            inputType = (SimulateInputType)CustomGUILayout.EnumPopup("Input type:", inputType, string.Empty, "What type of input is expected");
            if (inputType == SimulateInputType.Axis)
            {
                axisThreshold = CustomGUILayout.Slider("Axis threshold:", axisThreshold, -1f, 1f, string.Empty, "The threshold value for the axis to trigger the ActionListAsset");
            }
            else if (inputType == SimulateInputType.Button)
            {
                buttonType = (ActiveInputButtonType)CustomGUILayout.EnumPopup("Responds to:", buttonType, string.Empty, "What type of button press this responds to");
            }
            enabledOnStart  = CustomGUILayout.Toggle("Enabled by default?", enabledOnStart, string.Empty, "If True, the active input is enabled when the game begins");
            gameState       = (GameState)CustomGUILayout.EnumPopup("Available when game is:", gameState, string.Empty, "What state the game must be in for the actionListAsset to run");
            actionListAsset = ActionListAssetMenu.AssetGUI("ActionList when triggered:", actionListAsset, defaultName, string.Empty, "The ActionListAsset to run when the input button is pressed");
        }
        /**
         * The default Constructor.
         */
        public ActiveInput(int[] idArray)
        {
            inputName       = "";
            gameState       = GameState.Normal;
            actionListAsset = null;
            enabledOnStart  = true;
            ID            = 1;
            inputType     = SimulateInputType.Button;
            axisThreshold = 0.2f;

            // Update id based on array
            foreach (int _id in idArray)
            {
                if (ID == _id)
                {
                    ID++;
                }
            }
        }
Beispiel #10
0
        private void CopyButton(MenuButton _element, bool ignoreUnityUI)
        {
            if (ignoreUnityUI)
            {
                uiButton = null;
                uiText   = null;
            }
            else
            {
                uiButton = _element.uiButton;
                uiText   = _element.uiText;
            }
            uiPointerState = _element.uiPointerState;

            label                 = _element.label;
            hotspotLabel          = _element.hotspotLabel;
            hotspotLabelID        = _element.hotspotLabelID;
            anchor                = _element.anchor;
            textEffects           = _element.textEffects;
            outlineSize           = _element.outlineSize;
            buttonClickType       = _element.buttonClickType;
            simulateInput         = _element.simulateInput;
            simulateValue         = _element.simulateValue;
            doFade                = _element.doFade;
            switchMenuTitle       = _element.switchMenuTitle;
            inventoryBoxTitle     = _element.inventoryBoxTitle;
            shiftInventory        = _element.shiftInventory;
            loopJournal           = _element.loopJournal;
            actionList            = _element.actionList;
            inputAxis             = _element.inputAxis;
            clickTexture          = _element.clickTexture;
            clickAlpha            = _element.clickAlpha;
            shiftAmount           = _element.shiftAmount;
            onlyShowWhenEffective = _element.onlyShowWhenEffective;
            allowContinuousClick  = _element.allowContinuousClick;
            parameterID           = _element.parameterID;
            parameterValue        = _element.parameterValue;
            uiSelectableHideStyle = _element.uiSelectableHideStyle;

            base.Copy(_element);
        }
Beispiel #11
0
        /**
         * Initialises the element when it is created within MenuManager.
         */
        public override void Declare()
        {
            uiText          = null;
            uiButton        = null;
            uiPointerState  = UIPointerState.PointerClick;
            label           = "Button";
            hotspotLabel    = string.Empty;
            hotspotLabelID  = -1;
            isVisible       = true;
            isClickable     = true;
            textEffects     = TextEffects.None;
            outlineSize     = 2f;
            buttonClickType = AC_ButtonClickType.RunActionList;
            simulateInput   = SimulateInputType.Button;
            simulateValue   = 1f;
            numSlots        = 1;
            anchor          = TextAnchor.MiddleCenter;
            SetSize(new Vector2(10f, 5f));
            doFade                = false;
            switchMenuTitle       = string.Empty;
            inventoryBoxTitle     = string.Empty;
            shiftInventory        = AC_ShiftInventory.ShiftPrevious;
            loopJournal           = false;
            actionList            = null;
            inputAxis             = "";
            clickTexture          = null;
            clickAlpha            = 0f;
            shiftAmount           = 1;
            onlyShowWhenEffective = false;
            allowContinuousClick  = false;
            parameterID           = -1;
            parameterValue        = 0;
            uiSelectableHideStyle = UISelectableHideStyle.DisableObject;

            base.Declare();
        }
		public override void ShowGUI ()
		{
			EditorGUILayout.BeginVertical ("Button");
				label = EditorGUILayout.TextField ("Button text:", label);
				anchor = (TextAnchor) EditorGUILayout.EnumPopup ("Text alignment:", anchor);
				textEffects = (TextEffects) EditorGUILayout.EnumPopup ("Text effect:", textEffects);
				hotspotLabel = EditorGUILayout.TextField ("Hotspot label override:", hotspotLabel);

				EditorGUILayout.BeginHorizontal ();
					EditorGUILayout.LabelField ("Click texture:", GUILayout.Width (145f));
					clickTexture = (Texture2D) EditorGUILayout.ObjectField (clickTexture, typeof (Texture2D), false, GUILayout.Width (70f), GUILayout.Height (30f));
				EditorGUILayout.EndHorizontal ();

				buttonClickType = (AC_ButtonClickType) EditorGUILayout.EnumPopup ("Click type:", buttonClickType);
			
				if (buttonClickType == AC_ButtonClickType.TurnOffMenu)
				{
					doFade = EditorGUILayout.Toggle ("Do transition?", doFade);
				}
				else if (buttonClickType == AC_ButtonClickType.Crossfade)
				{
					switchMenuTitle = EditorGUILayout.TextField ("Menu to switch to:", switchMenuTitle);
				}
				else if (buttonClickType == AC_ButtonClickType.OffsetInventoryOrDialogue)
				{
					inventoryBoxTitle = EditorGUILayout.TextField ("Element to affect:", inventoryBoxTitle);
					shiftInventory = (AC_ShiftInventory) EditorGUILayout.EnumPopup ("Offset type:", shiftInventory);
					shiftAmount = EditorGUILayout.IntField ("Offset amount:", shiftAmount);
					onlyShowWhenEffective = EditorGUILayout.Toggle ("Only show when effective?", onlyShowWhenEffective);
				}
				else if (buttonClickType == AC_ButtonClickType.OffsetJournal)
				{
					inventoryBoxTitle = EditorGUILayout.TextField ("Journal to affect:", inventoryBoxTitle);
					shiftInventory = (AC_ShiftInventory) EditorGUILayout.EnumPopup ("Offset type:", shiftInventory);
					loopJournal = EditorGUILayout.Toggle ("Cycle pages?", loopJournal);
				}
				else if (buttonClickType == AC_ButtonClickType.RunActionList)
				{
					actionList = (ActionListAsset) EditorGUILayout.ObjectField ("ActionList to run:", actionList, typeof (ActionListAsset), false);
				}
				else if (buttonClickType == AC_ButtonClickType.CustomScript)
				{
					allowContinuousClick = EditorGUILayout.Toggle ("Accept held-down clicks?", allowContinuousClick);
					ShowClipHelp ();
				}
				else if (buttonClickType == AC_ButtonClickType.SimulateInput)
				{
					simulateInput = (SimulateInputType) EditorGUILayout.EnumPopup ("Simulate:", simulateInput);
					inputAxis = EditorGUILayout.TextField ("Input axis:", inputAxis);
					if (simulateInput == SimulateInputType.Axis)
					{
						simulateValue = EditorGUILayout.FloatField ("Input value:", simulateValue);
					}
				}
			EditorGUILayout.EndVertical ();
			
			base.ShowGUI ();
		}
Beispiel #13
0
        public override void ShowGUI(MenuSource source)
        {
            EditorGUILayout.BeginVertical("Button");

            if (source != MenuSource.AdventureCreator)
            {
                uiButton = LinkedUiGUI <UnityEngine.UI.Button> (uiButton, "Linked Button:", source);
                EditorGUILayout.EndVertical();
                EditorGUILayout.BeginVertical("Button");
            }

            label = EditorGUILayout.TextField("Button text:", label);

            if (source == MenuSource.AdventureCreator)
            {
                anchor      = (TextAnchor)EditorGUILayout.EnumPopup("Text alignment:", anchor);
                textEffects = (TextEffects)EditorGUILayout.EnumPopup("Text effect:", textEffects);
            }

            hotspotLabel = EditorGUILayout.TextField("Hotspot label override:", hotspotLabel);

            if (source == MenuSource.AdventureCreator)
            {
                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.LabelField("Click texture:", GUILayout.Width(145f));
                clickTexture = (Texture2D)EditorGUILayout.ObjectField(clickTexture, typeof(Texture2D), false, GUILayout.Width(70f), GUILayout.Height(30f));
                EditorGUILayout.EndHorizontal();
            }

            buttonClickType = (AC_ButtonClickType)EditorGUILayout.EnumPopup("Click type:", buttonClickType);

            if (buttonClickType == AC_ButtonClickType.TurnOffMenu)
            {
                doFade = EditorGUILayout.Toggle("Do transition?", doFade);
            }
            else if (buttonClickType == AC_ButtonClickType.Crossfade)
            {
                switchMenuTitle = EditorGUILayout.TextField("Menu to switch to:", switchMenuTitle);
            }
            else if (buttonClickType == AC_ButtonClickType.OffsetElementSlot)
            {
                inventoryBoxTitle     = EditorGUILayout.TextField("Element to affect:", inventoryBoxTitle);
                shiftInventory        = (AC_ShiftInventory)EditorGUILayout.EnumPopup("Offset type:", shiftInventory);
                shiftAmount           = EditorGUILayout.IntField("Offset amount:", shiftAmount);
                onlyShowWhenEffective = EditorGUILayout.Toggle("Only show when effective?", onlyShowWhenEffective);
            }
            else if (buttonClickType == AC_ButtonClickType.OffsetJournal)
            {
                inventoryBoxTitle     = EditorGUILayout.TextField("Journal to affect:", inventoryBoxTitle);
                shiftInventory        = (AC_ShiftInventory)EditorGUILayout.EnumPopup("Offset type:", shiftInventory);
                loopJournal           = EditorGUILayout.Toggle("Cycle pages?", loopJournal);
                shiftAmount           = EditorGUILayout.IntField("Offset amount:", shiftAmount);
                onlyShowWhenEffective = EditorGUILayout.Toggle("Only show when effective?", onlyShowWhenEffective);
            }
            else if (buttonClickType == AC_ButtonClickType.RunActionList)
            {
                ActionListGUI();
            }
            else if (buttonClickType == AC_ButtonClickType.CustomScript)
            {
                allowContinuousClick = EditorGUILayout.Toggle("Accept held-down clicks?", allowContinuousClick);
                ShowClipHelp();
            }
            else if (buttonClickType == AC_ButtonClickType.SimulateInput)
            {
                simulateInput = (SimulateInputType)EditorGUILayout.EnumPopup("Simulate:", simulateInput);
                inputAxis     = EditorGUILayout.TextField("Input axis:", inputAxis);
                if (simulateInput == SimulateInputType.Axis)
                {
                    simulateValue = EditorGUILayout.FloatField("Input value:", simulateValue);
                }
            }

            ChangeCursorGUI(source);
            EditorGUILayout.EndVertical();

            base.ShowGUI(source);
        }
Beispiel #14
0
        public override void ShowGUI(Menu menu)
        {
            string apiPrefix = "(AC.PlayerMenus.GetElementWithName (\"" + menu.title + "\", \"" + title + "\") as AC.MenuButton)";

            EditorGUILayout.BeginVertical("Button");
            MenuSource source = menu.menuSource;

            if (source != MenuSource.AdventureCreator)
            {
                uiButton = LinkedUiGUI <UnityEngine.UI.Button> (uiButton, "Linked Button:", source);
                uiSelectableHideStyle = (UISelectableHideStyle)CustomGUILayout.EnumPopup("When invisible:", uiSelectableHideStyle, apiPrefix + ".uiSelectableHideStyle");
                uiPointerState        = (UIPointerState)CustomGUILayout.EnumPopup("Responds to:", uiPointerState, apiPrefix + ".uiPointerState");
                EditorGUILayout.EndVertical();
                EditorGUILayout.BeginVertical("Button");
            }

            label           = CustomGUILayout.TextField("Button text:", label, apiPrefix + ".label");
            buttonClickType = (AC_ButtonClickType)CustomGUILayout.EnumPopup("Click type:", buttonClickType, apiPrefix + ".buttonClickType");

            if (buttonClickType == AC_ButtonClickType.TurnOffMenu)
            {
                doFade = CustomGUILayout.Toggle("Do transition?", doFade, apiPrefix + ".doFade");
            }
            else if (buttonClickType == AC_ButtonClickType.Crossfade)
            {
                switchMenuTitle = CustomGUILayout.TextField("Menu to switch to:", switchMenuTitle, apiPrefix + ".switchMenutitle");
            }
            else if (buttonClickType == AC_ButtonClickType.OffsetElementSlot)
            {
                inventoryBoxTitle     = CustomGUILayout.TextField("Element to affect:", inventoryBoxTitle, apiPrefix + ".inventoryBoxTitle");
                shiftInventory        = (AC_ShiftInventory)CustomGUILayout.EnumPopup("Offset type:", shiftInventory, apiPrefix + ".shiftInventory");
                shiftAmount           = CustomGUILayout.IntField("Offset amount:", shiftAmount, apiPrefix + ".shiftAmount");
                onlyShowWhenEffective = CustomGUILayout.Toggle("Only show when effective?", onlyShowWhenEffective, apiPrefix + ".onlyShowWhenEffective");
            }
            else if (buttonClickType == AC_ButtonClickType.OffsetJournal)
            {
                inventoryBoxTitle     = CustomGUILayout.TextField("Journal to affect:", inventoryBoxTitle, apiPrefix + ".inventoryBoxTitle");
                shiftInventory        = (AC_ShiftInventory)CustomGUILayout.EnumPopup("Offset type:", shiftInventory, apiPrefix + ".shiftInventory");
                loopJournal           = CustomGUILayout.Toggle("Cycle pages?", loopJournal, apiPrefix + ".loopJournal");
                shiftAmount           = CustomGUILayout.IntField("Offset amount:", shiftAmount, apiPrefix + ".shiftAmount");
                onlyShowWhenEffective = CustomGUILayout.Toggle("Only show when effective?", onlyShowWhenEffective, apiPrefix + ".onlyShowWhenEffective");
            }
            else if (buttonClickType == AC_ButtonClickType.RunActionList)
            {
                ActionListGUI(menu.title, apiPrefix);
            }
            else if (buttonClickType == AC_ButtonClickType.CustomScript)
            {
                allowContinuousClick = CustomGUILayout.Toggle("Accept held-down clicks?", allowContinuousClick, apiPrefix + ".allowContinuousClick");
                ShowClipHelp();
            }
            else if (buttonClickType == AC_ButtonClickType.SimulateInput)
            {
                simulateInput = (SimulateInputType)CustomGUILayout.EnumPopup("Simulate:", simulateInput, apiPrefix + ".simulateInput");
                inputAxis     = CustomGUILayout.TextField("Input axis:", inputAxis, apiPrefix + ".inputAxis");
                if (simulateInput == SimulateInputType.Axis)
                {
                    simulateValue = CustomGUILayout.FloatField("Input value:", simulateValue, apiPrefix + ".simulateValue");
                }
            }

            hotspotLabel           = CustomGUILayout.TextField("Hotspot label override:", hotspotLabel, apiPrefix + ".hotspotLabel");
            alternativeInputButton = CustomGUILayout.TextField("Alternative input button:", alternativeInputButton, apiPrefix + ".alternativeInputButton");
            ChangeCursorGUI(menu);
            EditorGUILayout.EndVertical();

            base.ShowGUI(menu);
        }
Beispiel #15
0
        /**
         * <summary>Simulates the pressing of an Input button or axis.</summary>
         * <param name = "input">The type of Input this is simulating (Button, Axis)</param>
         * <param name = "axis">The name of the Input button or axis</param>
         * <param name = "value">The value to assign the Input axis, if input = SimulateInputType.Axis</param>
         */
        public void SimulateInput(SimulateInputType input, string axis, float value)
        {
            if (axis != "")
            {
                menuInput = input;
                menuButtonInput = axis;

                if (input == SimulateInputType.Button)
                {
                    menuButtonValue = 1f;
                }
                else
                {
                    menuButtonValue = value;
                }

                CancelInvoke ();
                Invoke ("StopSimulatingInput", 0.1f);
            }
        }
Beispiel #16
0
        public override void ShowGUI(Menu menu)
        {
            string apiPrefix = "(AC.PlayerMenus.GetElementWithName (\"" + menu.title + "\", \"" + title + "\") as AC.MenuButton)";

            CustomGUILayout.BeginVertical();
            MenuSource source = menu.menuSource;

            if (source != MenuSource.AdventureCreator)
            {
                uiButton = LinkedUiGUI <UnityEngine.UI.Button> (uiButton, "Linked Button:", source, "The Unity UI Button this is linked to");
                uiSelectableHideStyle = (UISelectableHideStyle)CustomGUILayout.EnumPopup("When invisible:", uiSelectableHideStyle, apiPrefix + ".uiSelectableHideStyle", "The method by which this element is hidden from view when made invisible");
                uiPointerState        = (UIPointerState)CustomGUILayout.EnumPopup("Responds to:", uiPointerState, apiPrefix + ".uiPointerState", "What pointer state registers as a 'click' for Unity UI Menus");
                CustomGUILayout.EndVertical();
                CustomGUILayout.BeginVertical();
            }

            label           = CustomGUILayout.TextField("Button text:", label, apiPrefix + ".label", "The text that's displayed on-screen");
            buttonClickType = (AC_ButtonClickType)CustomGUILayout.EnumPopup("Click type:", buttonClickType, apiPrefix + ".buttonClickType", "The type of reaction that occurs when clicked");

            if (buttonClickType == AC_ButtonClickType.TurnOffMenu)
            {
                doFade = CustomGUILayout.Toggle("Do transition?", doFade, apiPrefix + ".doFade", "If True, then the menu will transition as it turns off");
            }
            else if (buttonClickType == AC_ButtonClickType.Crossfade)
            {
                switchMenuTitle = CustomGUILayout.TextField("Menu to switch to:", switchMenuTitle, apiPrefix + ".switchMenutitle", "The name of the menu to crossfade to");
            }
            else if (buttonClickType == AC_ButtonClickType.OffsetElementSlot)
            {
                inventoryBoxTitle     = CustomGUILayout.TextField("Element to affect:", inventoryBoxTitle, apiPrefix + ".inventoryBoxTitle", "The name of the element (in the same menu) with slots to shift");
                shiftInventory        = (AC_ShiftInventory)CustomGUILayout.EnumPopup("Offset type:", shiftInventory, apiPrefix + ".shiftInventory", "The direction to shift slots");
                shiftAmount           = CustomGUILayout.IntField("Offset amount:", shiftAmount, apiPrefix + ".shiftAmount", "The amount to shift slots by");
                onlyShowWhenEffective = CustomGUILayout.Toggle("Only show when effective?", onlyShowWhenEffective, apiPrefix + ".onlyShowWhenEffective", "If True, then the button will only be visible if the slots it affects can actually be shifted");
            }
            else if (buttonClickType == AC_ButtonClickType.OffsetJournal)
            {
                inventoryBoxTitle     = CustomGUILayout.TextField("Journal to affect:", inventoryBoxTitle, apiPrefix + ".inventoryBoxTitle", "The name of the Journal element (in the same menu)");
                shiftInventory        = (AC_ShiftInventory)CustomGUILayout.EnumPopup("Offset type:", shiftInventory, apiPrefix + ".shiftInventory", "The direction to shift pages in");
                loopJournal           = CustomGUILayout.Toggle("Cycle pages?", loopJournal, apiPrefix + ".loopJournal", "If True, then shifting past the last Journal page will open the first");
                shiftAmount           = CustomGUILayout.IntField("Offset amount:", shiftAmount, apiPrefix + ".shiftAmount", "The number of pages to shift by");
                onlyShowWhenEffective = CustomGUILayout.Toggle("Only show when effective?", onlyShowWhenEffective, apiPrefix + ".onlyShowWhenEffective", "If True, then the button will only be visible if the Journal it affects can actually be shifted");
            }
            else if (buttonClickType == AC_ButtonClickType.RunActionList)
            {
                ActionListGUI(menu.title, apiPrefix);
            }
            else if (buttonClickType == AC_ButtonClickType.CustomScript)
            {
                allowContinuousClick = CustomGUILayout.Toggle("Accept held-down clicks?", allowContinuousClick, apiPrefix + ".allowContinuousClick", "If True, then the button will respond to the mouse button being held down");
                ShowClipHelp();
            }
            else if (buttonClickType == AC_ButtonClickType.SimulateInput)
            {
                simulateInput = (SimulateInputType)CustomGUILayout.EnumPopup("Simulate:", simulateInput, apiPrefix + ".simulateInput", "The type of Input to simulate when clicked");
                inputAxis     = CustomGUILayout.TextField("Input axis:", inputAxis, apiPrefix + ".inputAxis", "The name of the Input axis to simulate when clicked");
                if (simulateInput == SimulateInputType.Axis)
                {
                    simulateValue = CustomGUILayout.FloatField("Input value:", simulateValue, apiPrefix + ".simulateValue", "The value of the Input axis to simulate when clicked");
                }
            }

            hotspotLabel           = CustomGUILayout.TextField("Hotspot label override:", hotspotLabel, apiPrefix + ".hotspotLabel", "The text that appears in the Hotspot label buffer when the mouse hovers over");
            alternativeInputButton = CustomGUILayout.TextField("Alternative input button:", alternativeInputButton, apiPrefix + ".alternativeInputButton", "The name of the input button that triggers the element when pressed");
            ChangeCursorGUI(menu);
            CustomGUILayout.EndVertical();

            base.ShowGUI(menu);
        }