State Button Device
Module — 2 files
These files compile together (same module folder).
file_1.verse
using { /Fortnite.com/UI }
using { /UnrealEngine.com/Temporary/UI }
StateButtonDefaultText<public><localizes>:message="Default Text"
state_button_option<public> := interface<castable>:
Title<public>:message
GetTitle<public>():message=
Title
state_button_default_option<public> := class(state_button_option):
Title<override>:message = StateButtonDefaultText
state_button_base<public> := class<abstract>:
Button<public>:text_button_base
Options<public>:[]state_button_option
var<private> CurrentOptionIndex<public>:int = 0
GetWidget<public>():widget=
Update()
Button
Update<public>():void=
ActiveIndex := Clamp(CurrentOptionIndex, 0, Options.Length - 1)
if:
TargetOption := Options[ActiveIndex]
then:
Button.SetText(TargetOption.GetTitle())
SetOption<public>(Index:int):void=
set CurrentOptionIndex = Clamp(Index, 0, Options.Length - 1)
Update()
SetOption<public>(option_type:castable_subtype(state_button_option)):void=
for:
Index -> Option : Options
option_type[Option]
do:
SetOption(Index)
ScrollOption<public>(Direction:int):void=
NewIndex := Options.Scroll(CurrentOptionIndex, Direction)
SetOption(NewIndex)
GetCurrentOption<public>():state_button_option=
Options[CurrentOptionIndex] or state_button_default_option{}
state_button_loud<public> := class<final>(state_button_base):
Button<override>:text_button_base = button_loud{}
(Array:[]any).Scroll<public>(Base:int, Direction:int):int=
NewIndex := Base + Direction
if(NewIndex < 0):
Array.Length - 1
else if(NewIndex >= Array.Length):
0
else:
NewIndex
Sign in to download module
Copy-paste each file above is always free.