bunch of minor tweaks and fixes

This commit is contained in:
Ronja 2020-10-25 22:20:01 +01:00
parent 09419908cf
commit a5bf54f0d1
8 changed files with 28 additions and 9 deletions

View file

@ -7,7 +7,7 @@ import "globals" for Globals
import "math/vector" for Vector
class Tooltip{
depth{100}
depth{127}
color{[1, 1, 1, 1]}
background{[0, 0, 0, 1]}
@ -25,6 +25,7 @@ class Tooltip{
_shadows = []
for(i in offsets){
var shadow = Entity.create(app.ui)
var mat = Material.create("shaders/pixel_text")
Text.create(shadow, mat, 8, "assets/fonts/BabyBlocks", background)
Transform.create(shadow)
Transform.set_snap(shadow, 1, 1, 0)
@ -51,7 +52,7 @@ class Tooltip{
var offsets = shadowOffsets
for(i in 0...offsets.count){
Transform.set_pos(_shadows[i], pos.x+offsets[i].x, pos.y+offsets[i].y, depth-5)
Transform.set_pos(_shadows[i], pos.x+offsets[i].x, pos.y+offsets[i].y, depth-1)
}
}
}

View file

@ -25,6 +25,7 @@ import "blocks/ui/info" for UiInfo //this is a cyclic dependency waiting to happ
import "blocks/ui/number_field" for NumberField
import "math/math" for M
import "math/util" for Util
import "math/event" for MultiListenerToken
import "blocks/human/human" for Human
class UiAdventure{
@ -296,12 +297,14 @@ class UiAdventure{
var x_image = Assets.image("assets/wip/8Cross")
_itemListItems = []
_itemEvents = MultiListenerToken.new()
adventure.on_change(true) {|adventure|
//cleanup
_itemListItems.each{|item|
Control.destroy(item)
}
_itemListItems.clear()
_itemEvents.discard()
if(!adventure) return
@ -334,10 +337,10 @@ class UiAdventure{
}
}
//change ui on resource data change
adventure.resources.on_change{|value|
var token = adventure.resources.on_change{|value|
NumberField.set_value(amount, Math.clamp(value.get(resource["name"]), 0, resource["amount"]))
}
_itemEvents.add(token)
_itemListItems.add(item)
}
UILayout.commit(_ent)

View file

@ -36,18 +36,23 @@ class UiCompass{
Control.set_process(compass){|control, state, event, x,y,w,h|
if(event.control != control) return
System.print("event: %(event) - currently captured: %(UI.get_captured(ent))")
if(event.type == UIEvent.press){
var relative_pos = AABB.new(x, y, w, h).relative_pos([event.x, event.y])
var inside = M.length(relative_pos.map{|comp| comp - 0.5}) < 0.5
if(inside) {
state["pressed"] = true
UI.capture(control)
System.print("CAPTURE COMPASS")
}
} else if(event.type == UIEvent.release){
}
if(event.type == UIEvent.release){
state["pressed"] = false
UI.uncapture(control)
System.print("UNCAPTURE COMPASS")
}
if((event.type == UIEvent.move || event.type == event.type == UIEvent.press) && state["pressed"]){
if((event.type == UIEvent.move || event.type == UIEvent.press) && state["pressed"]){
var center = [x + w/2, y + h/2]
var diff = [event.x - center.x, event.y - center.y]
var angle = Math.atan2(-diff.y, diff.x) - Num.tau / 4 //flip y because ui coordinates are different; shift by 1/4 circle constant to make up 0°

View file

@ -77,6 +77,11 @@ class MultiListenerToken{
events{_events}
indices{_indices}
construct new(){
_events = []
_indices = []
}
construct new(tokens){
_events = []
_indices = []
@ -92,5 +97,7 @@ class MultiListenerToken{
Util.for_all([events, indices]) {|event, index|
event.unlisten(index)
}
events.clear()
indices.clear()
}
}

View file

@ -48,8 +48,8 @@ class App {
} //new
update_cam(){
Camera.ortho(_camera, 0, 128, 128, 0, -2000, 2000)
Camera.ortho(_ui_camera, 0, Globals["Renderer"].height, Globals["Renderer"].width, 0, -2000, 2000)
Camera.ortho(_camera, 0, 128, 128, 0, -128, 128)
Camera.ortho(_ui_camera, 0, Globals["Renderer"].height, Globals["Renderer"].width, 0, -128, 128)
}
destroy() {

View file

@ -115,6 +115,7 @@ class Renderer {
game_render_path(ctx) {
var layer = RenderLayerDesc.new()
layer.sort = SortType.front_to_back
layer.dest.color[0].render_target = target
layer.dest.color[0].clear_color = ctx.get("clear_color", [1,1,1,1])
layer.dest.color[0].load_action = LoadAction.clear
@ -127,6 +128,7 @@ class Renderer {
ui_render_path(ctx) {
var layer = RenderLayerDesc.new()
layer.sort = SortType.sort_by_z_reverse
layer.dest.color[0].render_target = target
layer.dest.color[0].load_action = LoadAction.dont_care
layer.dest.depth.load_action = LoadAction.clear

View file

@ -5,6 +5,7 @@ engine = {
height = 768
resizable = false
fullscreen = false
title = "Cabin Game"
}
}

View file

@ -5,7 +5,7 @@ class Project is Entry {
construct entry(target) {
name = "Cabin Game"
version = "0.0.0"
version = "0.1"
renderer = "outline/renderer"
settings = "outline/settings"