CabinGame/Luxe/blocks/ui.wren

61 lines
No EOL
1.7 KiB
Text

import "luxe: draw" for Draw, PathStyle
import "luxe: world" for Entity, Transform, UI, UIRenderMode
import "luxe: ui/control" for Control
import "luxe: ui/panel" for UIPanel
import "luxe: ui/list" for UIList
import "luxe: ui/button" for UIButton
import "luxe: ui/image" for UIImage
import "luxe: assets" for Assets
import "globals" for Globals
import "blocks/ui/image_button" for ImageButton
class Ui{
construct new(app){
_ui = Entity.create(app.ui, "UI Root")
var ui_rect = Globals["UiRect"]
UI.create(_ui, ui_rect.x, ui_rect.y, ui_rect.width, ui_rect.height, 0, app.ui_camera)
UI.set_render_mode(_ui, UIRenderMode.world)
var list = UIList.create(_ui)
//todo: make list horizontal?
Control.set_pos(list, 0, ui_rect.height-16)
Control.set_size(list, ui_rect.width, 16)
var adventureButtons = Assets.image("assets/AdventureButtons")
var tiles = 10
for(i in 0...6){
var button = UIButton.create(_ui)
Control.set_size(button, 16, 16)
UIButton.set_text(button, "%(i)")
UIButton.set_text_size(button, 10)
Control.set_pos(button, i*16, 0)
var image = UIImage.create(_ui)
UIImage.set_image(image, adventureButtons)
UIImage.set_uv(image, i/tiles, 0, (i+1)/tiles, 1)
Control.child_add(button, image)
UIList.add(list, button)
}
//UIList.refresh(list) //uncomment this when list learns not to be vertical
_test = ImageButton.create(_ui)
UIImage.set_image(_test, adventureButtons)
ImageButton.set_state_change(_test) {|state, element|
if(state["press"]) {
System.print("heck %(element)")
}
}
UI.commit(_ui)
}
test(){
ImageButton.get_data(_test)
}
}