bunch of minor tweaks and fixes
This commit is contained in:
parent
09419908cf
commit
a5bf54f0d1
8 changed files with 28 additions and 9 deletions
|
|
@ -7,7 +7,7 @@ import "globals" for Globals
|
||||||
import "math/vector" for Vector
|
import "math/vector" for Vector
|
||||||
|
|
||||||
class Tooltip{
|
class Tooltip{
|
||||||
depth{100}
|
depth{127}
|
||||||
color{[1, 1, 1, 1]}
|
color{[1, 1, 1, 1]}
|
||||||
background{[0, 0, 0, 1]}
|
background{[0, 0, 0, 1]}
|
||||||
|
|
||||||
|
|
@ -25,6 +25,7 @@ class Tooltip{
|
||||||
_shadows = []
|
_shadows = []
|
||||||
for(i in offsets){
|
for(i in offsets){
|
||||||
var shadow = Entity.create(app.ui)
|
var shadow = Entity.create(app.ui)
|
||||||
|
var mat = Material.create("shaders/pixel_text")
|
||||||
Text.create(shadow, mat, 8, "assets/fonts/BabyBlocks", background)
|
Text.create(shadow, mat, 8, "assets/fonts/BabyBlocks", background)
|
||||||
Transform.create(shadow)
|
Transform.create(shadow)
|
||||||
Transform.set_snap(shadow, 1, 1, 0)
|
Transform.set_snap(shadow, 1, 1, 0)
|
||||||
|
|
@ -51,7 +52,7 @@ class Tooltip{
|
||||||
|
|
||||||
var offsets = shadowOffsets
|
var offsets = shadowOffsets
|
||||||
for(i in 0...offsets.count){
|
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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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 "blocks/ui/number_field" for NumberField
|
||||||
import "math/math" for M
|
import "math/math" for M
|
||||||
import "math/util" for Util
|
import "math/util" for Util
|
||||||
|
import "math/event" for MultiListenerToken
|
||||||
import "blocks/human/human" for Human
|
import "blocks/human/human" for Human
|
||||||
|
|
||||||
class UiAdventure{
|
class UiAdventure{
|
||||||
|
|
@ -296,12 +297,14 @@ class UiAdventure{
|
||||||
var x_image = Assets.image("assets/wip/8Cross")
|
var x_image = Assets.image("assets/wip/8Cross")
|
||||||
|
|
||||||
_itemListItems = []
|
_itemListItems = []
|
||||||
|
_itemEvents = MultiListenerToken.new()
|
||||||
adventure.on_change(true) {|adventure|
|
adventure.on_change(true) {|adventure|
|
||||||
//cleanup
|
//cleanup
|
||||||
_itemListItems.each{|item|
|
_itemListItems.each{|item|
|
||||||
Control.destroy(item)
|
Control.destroy(item)
|
||||||
}
|
}
|
||||||
_itemListItems.clear()
|
_itemListItems.clear()
|
||||||
|
_itemEvents.discard()
|
||||||
|
|
||||||
if(!adventure) return
|
if(!adventure) return
|
||||||
|
|
||||||
|
|
@ -334,10 +337,10 @@ class UiAdventure{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//change ui on resource data change
|
//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"]))
|
NumberField.set_value(amount, Math.clamp(value.get(resource["name"]), 0, resource["amount"]))
|
||||||
}
|
}
|
||||||
|
_itemEvents.add(token)
|
||||||
_itemListItems.add(item)
|
_itemListItems.add(item)
|
||||||
}
|
}
|
||||||
UILayout.commit(_ent)
|
UILayout.commit(_ent)
|
||||||
|
|
|
||||||
|
|
@ -36,18 +36,23 @@ class UiCompass{
|
||||||
Control.set_process(compass){|control, state, event, x,y,w,h|
|
Control.set_process(compass){|control, state, event, x,y,w,h|
|
||||||
if(event.control != control) return
|
if(event.control != control) return
|
||||||
|
|
||||||
|
System.print("event: %(event) - currently captured: %(UI.get_captured(ent))")
|
||||||
|
|
||||||
if(event.type == UIEvent.press){
|
if(event.type == UIEvent.press){
|
||||||
var relative_pos = AABB.new(x, y, w, h).relative_pos([event.x, event.y])
|
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
|
var inside = M.length(relative_pos.map{|comp| comp - 0.5}) < 0.5
|
||||||
if(inside) {
|
if(inside) {
|
||||||
state["pressed"] = true
|
state["pressed"] = true
|
||||||
UI.capture(control)
|
UI.capture(control)
|
||||||
|
System.print("CAPTURE COMPASS")
|
||||||
}
|
}
|
||||||
} else if(event.type == UIEvent.release){
|
}
|
||||||
|
if(event.type == UIEvent.release){
|
||||||
state["pressed"] = false
|
state["pressed"] = false
|
||||||
UI.uncapture(control)
|
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 center = [x + w/2, y + h/2]
|
||||||
var diff = [event.x - center.x, event.y - center.y]
|
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°
|
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°
|
||||||
|
|
|
||||||
|
|
@ -77,6 +77,11 @@ class MultiListenerToken{
|
||||||
events{_events}
|
events{_events}
|
||||||
indices{_indices}
|
indices{_indices}
|
||||||
|
|
||||||
|
construct new(){
|
||||||
|
_events = []
|
||||||
|
_indices = []
|
||||||
|
}
|
||||||
|
|
||||||
construct new(tokens){
|
construct new(tokens){
|
||||||
_events = []
|
_events = []
|
||||||
_indices = []
|
_indices = []
|
||||||
|
|
@ -92,5 +97,7 @@ class MultiListenerToken{
|
||||||
Util.for_all([events, indices]) {|event, index|
|
Util.for_all([events, indices]) {|event, index|
|
||||||
event.unlisten(index)
|
event.unlisten(index)
|
||||||
}
|
}
|
||||||
|
events.clear()
|
||||||
|
indices.clear()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -48,8 +48,8 @@ class App {
|
||||||
} //new
|
} //new
|
||||||
|
|
||||||
update_cam(){
|
update_cam(){
|
||||||
Camera.ortho(_camera, 0, 128, 128, 0, -2000, 2000)
|
Camera.ortho(_camera, 0, 128, 128, 0, -128, 128)
|
||||||
Camera.ortho(_ui_camera, 0, Globals["Renderer"].height, Globals["Renderer"].width, 0, -2000, 2000)
|
Camera.ortho(_ui_camera, 0, Globals["Renderer"].height, Globals["Renderer"].width, 0, -128, 128)
|
||||||
}
|
}
|
||||||
|
|
||||||
destroy() {
|
destroy() {
|
||||||
|
|
|
||||||
|
|
@ -115,6 +115,7 @@ class Renderer {
|
||||||
game_render_path(ctx) {
|
game_render_path(ctx) {
|
||||||
|
|
||||||
var layer = RenderLayerDesc.new()
|
var layer = RenderLayerDesc.new()
|
||||||
|
layer.sort = SortType.front_to_back
|
||||||
layer.dest.color[0].render_target = target
|
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].clear_color = ctx.get("clear_color", [1,1,1,1])
|
||||||
layer.dest.color[0].load_action = LoadAction.clear
|
layer.dest.color[0].load_action = LoadAction.clear
|
||||||
|
|
@ -127,6 +128,7 @@ class Renderer {
|
||||||
ui_render_path(ctx) {
|
ui_render_path(ctx) {
|
||||||
|
|
||||||
var layer = RenderLayerDesc.new()
|
var layer = RenderLayerDesc.new()
|
||||||
|
layer.sort = SortType.sort_by_z_reverse
|
||||||
layer.dest.color[0].render_target = target
|
layer.dest.color[0].render_target = target
|
||||||
layer.dest.color[0].load_action = LoadAction.dont_care
|
layer.dest.color[0].load_action = LoadAction.dont_care
|
||||||
layer.dest.depth.load_action = LoadAction.clear
|
layer.dest.depth.load_action = LoadAction.clear
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ engine = {
|
||||||
height = 768
|
height = 768
|
||||||
resizable = false
|
resizable = false
|
||||||
fullscreen = false
|
fullscreen = false
|
||||||
|
title = "Cabin Game"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ class Project is Entry {
|
||||||
construct entry(target) {
|
construct entry(target) {
|
||||||
|
|
||||||
name = "Cabin Game"
|
name = "Cabin Game"
|
||||||
version = "0.0.0"
|
version = "0.1"
|
||||||
renderer = "outline/renderer"
|
renderer = "outline/renderer"
|
||||||
settings = "outline/settings"
|
settings = "outline/settings"
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue