enderalse/source/scripts/uidyemenu.psc

85 lines
2.1 KiB
Plaintext

Scriptname UIDyeMenu extends UIMenuBase
string property ROOT_MENU = "CustomMenu" autoReadonly
string Property MENU_ROOT = "_root.dyeMenu." autoReadonly
Form _form = None
Form _dyes = None
bool _consumeItems = true
int _maxBlend = 3
string Function GetMenuName()
return "UIDyeMenu"
EndFunction
int Function OpenMenu(Form inForm = None, Form akReceiver = None)
_form = inForm
_dyes = akReceiver
If !_dyes || !(_dyes as ObjectReference)
_dyes = Game.GetPlayer()
Endif
If !BlockUntilClosed() || !WaitForReset()
return 0
Endif
RegisterForModEvent("UIDyeMenu_LoadMenu", "OnLoadMenu")
RegisterForModEvent("UIDyeMenu_CloseMenu", "OnUnloadMenu")
RegisterForModEvent("UIDyeMenu_ConsumeItem", "OnConsumeItem")
UI.OpenCustomMenu("dyemenu")
return 1
EndFunction
Function ResetMenu()
_consumeItems = true
_maxBlend = 3
EndFunction
Function SetPropertyBool(string propertyName, bool value)
If propertyName == "consumeItems"
_consumeItems = value
Endif
EndFunction
Function SetPropertyInt(string propertyName, int value)
If propertyName == "maxBlend"
_maxBlend = value
Endif
EndFunction
Event OnLoadMenu(string eventName, string strArg, float numArg, Form formArg)
NiOverride.EnableTintTextureCache()
UpdateItemSourceForm()
UpdateDyeSourceForm()
UpdateConsumeItems()
UpdateMaxBlending()
EndEvent
Event OnUnloadMenu(string eventName, string strArg, float numArg, Form formArg)
UnregisterForModEvent("UIDyeMenu_LoadMenu")
UnregisterForModEvent("UIDyeMenu_CloseMenu")
NiOverride.ReleaseTintTextureCache()
EndEvent
Event OnConsumeItem(string eventName, string strArg, float numArg, Form formArg)
ObjectReference akContainer = (_dyes as ObjectReference)
akContainer.RemoveItem(formArg, 1, true)
EndEvent
Function UpdateItemSourceForm()
UI.InvokeForm(ROOT_MENU, MENU_ROOT + "setItemSourceForm", _form)
EndFunction
Function UpdateDyeSourceForm()
UI.InvokeForm(ROOT_MENU, MENU_ROOT + "setDyeSourceForm", _dyes)
EndFunction
Function UpdateConsumeItems()
UI.InvokeBool(ROOT_MENU, MENU_ROOT + "setConsumeItems", _consumeItems)
EndFunction
Function UpdateMaxBlending()
UI.InvokeInt(ROOT_MENU, MENU_ROOT + "setMaxBlending", _maxBlend)
EndFunction