borken again

This commit is contained in:
Ronja 2020-09-19 16:06:46 +02:00
parent 488a913cd9
commit 58abf3fffa
10 changed files with 111 additions and 29 deletions

View file

@ -1,15 +1,16 @@
[ [
//the text decides how the resources are actually dealt with //the text decides how the resources are actually dealt with
//this is mainly here to define a order in the UI //this is mainly here to define a order in the UI
{name: "wood", "alwaysSingular": true}, {name:"wood" alwaysSingular:true}
{name: "clothes", "alwaysSingular":true}, {name:"clothes" alwaysSingular:true}
{name: "tent"}, {name:"tent"}
{name: "water bag"}, {name:"water bag"}
{name: "dog"}, {name:"cat"}
{name: "map"}, {name:"dog"}
{name: "marble"}, {name:"map"}
{name: "gold", "alwaysSingular":true}, {name:"marble"}
{name: "tea", "alwaysSingular": true}, {name:"gold" alwaysSingular:true}
{name: "spices", "alwaysSingular": true}, {name:"tea" alwaysSingular:true}
{name: "sunscreen", "alwaysSingular": true}, {name:"spices" alwaysSingular:true}
{name:"sunscreen" alwaysSingular:true}
] ]

View file

@ -0,0 +1,33 @@
import "math/observable" for Observable
import "luxe: Game" for Game
import "luxe: world" for Entity, Values, Tags
class Adventures{
planning{_planning}
construct new(){
_planning = Observable.new()
_in_progress = []
_archive = []
}
plan_new(){
var adventure = Entity.create(Game.app.world, "Adventure")
Values.set(adventure, "adventurers", [])
Values.set(adventure, "resources", {})
Values.set(adventure, "data", {})
Tags.add(adventure, "Adventure")
_planning.value = adventure
return adventure
}
new_or_current(){
if(_planning.value) return _planning.value
return plan_new()
}
discard(){
Entity.destroy(_planning.value)
_planning.value = null
}
}

View file

@ -14,6 +14,7 @@ modifier = {
//todo: turn this into a implicit number via references from adventure list //todo: turn this into a implicit number via references from adventure list
//todo: make this int? //todo: make this int?
{ name="adventure_count" type="number" default=0 } { name="adventure_count" type="number" default=0 }
{ name="diary" type="id32" default="{}" }
] ]
} }
} }

View file

@ -160,6 +160,7 @@ import "luxe: world" for Block
_name = "unnamed" _name = "unnamed"
_color = [1, 0, 0, 1] _color = [1, 0, 0, 1]
_adventure_count = 0 _adventure_count = 0
_diary = "{}"
} //new } //new
active { _active } active { _active }
@ -174,6 +175,9 @@ import "luxe: world" for Block
adventure_count { _adventure_count } adventure_count { _adventure_count }
adventure_count=(vvv) { _adventure_count = vvv } adventure_count=(vvv) { _adventure_count = vvv }
diary { _diary }
diary=(vvv) { _diary = vvv }
} //ModifierData } //ModifierData
//`blocks/human/human > data` compilers //`blocks/human/human > data` compilers
@ -195,6 +199,8 @@ import "luxe: world" for Block
size = size + 8 // adventure_count size = size + 8 // adventure_count
size = size + 4 // diary
size = size + 0 size = size + 0
return size return size
@ -211,6 +217,7 @@ import "luxe: world" for Block
"name": false, "name": false,
"color": false, "color": false,
"adventure_count": false, "adventure_count": false,
"diary": false,
} }
for(element in elements) { for(element in elements) {
var instance = element.value var instance = element.value
@ -257,13 +264,18 @@ import "luxe: world" for Block
out.write_float64(adventure_count) out.write_float64(adventure_count)
var diary = instance["diary"]
if(diary == null) diary = "{}"
out.write_uint32((diary && diary != "") ? compiler.string.hash(diary) : 0)
return out return out
} //write } //write
bytes_count_block() { bytes_count_block() {
return 72 return 84
} //bytes_count_block } //bytes_count_block
@ -273,7 +285,7 @@ import "luxe: world" for Block
out.write_uint32(compiler.string.hash("blocks/human/human > data")) out.write_uint32(compiler.string.hash("blocks/human/human > data"))
//fields count //fields count
out.write_int32(4) out.write_int32(5)
// active // active
out.write_uint32(compiler.string.hash("active")) out.write_uint32(compiler.string.hash("active"))
@ -306,6 +318,13 @@ import "luxe: world" for Block
out.write_float64(adventure_count_default) out.write_float64(adventure_count_default)
// diary
out.write_uint32(compiler.string.hash("diary"))
out.write_uint32(2729592961) //type id32
var diary_default = "{}"
out.write_uint32((diary_default && diary_default != "") ? compiler.string.hash(diary_default) : 0)
} //write_block } //write_block
write(instance) { write(instance) {
@ -344,6 +363,7 @@ import "luxe: world" for Block
Block.add(_block, "name", "id32", "unnamed") Block.add(_block, "name", "id32", "unnamed")
Block.add(_block, "color", "float4", [1, 0, 0, 1]) Block.add(_block, "color", "float4", [1, 0, 0, 1])
Block.add(_block, "adventure_count", "number", 0) Block.add(_block, "adventure_count", "number", 0)
Block.add(_block, "diary", "id32", "{}")
Block.set_type(_block, "blocks/human/human > data") Block.set_type(_block, "blocks/human/human > data")
} //new } //new
@ -358,6 +378,8 @@ import "luxe: world" for Block
color=(v) { Block.set(_block, "color", _slot, v) } color=(v) { Block.set(_block, "color", _slot, v) }
adventure_count { Block.get(_block, "adventure_count", _slot) } adventure_count { Block.get(_block, "adventure_count", _slot) }
adventure_count=(v) { Block.set(_block, "adventure_count", _slot, v) } adventure_count=(v) { Block.set(_block, "adventure_count", _slot, v) }
diary { Block.get(_block, "diary", _slot) }
diary=(v) { Block.set(_block, "diary", _slot, v) }
slot { _slot } slot { _slot }
entity { Block.get_handle(_block, _slot) } entity { Block.get_handle(_block, _slot) }
block_set_slot(value) { block_set_slot(value) {

View file

@ -142,4 +142,4 @@ class HumanSystem is ModifierSystem {
var Modifier = HumanSystem //required var Modifier = HumanSystem //required
import "blocks/ui" for Ui //import at the end in case of cyclic dependency import "blocks/ui/ui" for Ui //import at the end in case of cyclic dependency

View file

@ -1,4 +1,5 @@
import "luxe: assets" for Assets import "luxe: assets" for Assets
import "luxe: world" for Entity
import "math/event" for Event import "math/event" for Event
import "math/observable" for Observable import "math/observable" for Observable
import "math/stringUtil" for StringUtil import "math/stringUtil" for StringUtil

View file

@ -14,7 +14,7 @@ import "globals" for Globals
import "blocks/ui/image_button" for ImageButton import "blocks/ui/image_button" for ImageButton
import "math/observable" for Observable import "math/observable" for Observable
import "blocks/ui/simple_text" for UISimpleText import "blocks/ui/simple_text" for UISimpleText
import "blocks/ui" for Ui import "blocks/ui/ui" for Ui
class UiAdventure{ class UiAdventure{
root{_root} root{_root}
@ -41,13 +41,11 @@ class UiAdventure{
UILayout.set_margin(_ent, list, 0, 0, 0, 0) UILayout.set_margin(_ent, list, 0, 0, 0, 0)
UILayout.set_contain(_ent, list, UILayoutContain.row | UILayoutContain.start) //| UILayout.set_contain(_ent, list, UILayoutContain.row | UILayoutContain.start) //|
var adventureButtons = Assets.image("assets/AdventureButtons")
var tiles = [10, 1] var tiles = [10, 1]
var button var button
//back to info //back to info
button = _ui.list_button(list) button = _ui.list_button(list)
UIImage.set_image(button, adventureButtons)
ImageButton.set_tooltip(button, "Info") ImageButton.set_tooltip(button, "Info")
ImageButton.set_tile_uv(button, tiles, [1, 0]) ImageButton.set_tile_uv(button, tiles, [1, 0])
ImageButton.set_state_change(button) { |data| ImageButton.set_state_change(button) { |data|
@ -58,31 +56,31 @@ class UiAdventure{
//abort //abort
button = _ui.list_button(list) button = _ui.list_button(list)
UIImage.set_image(button, adventureButtons)
ImageButton.set_tooltip(button, "Abort") ImageButton.set_tooltip(button, "Abort")
ImageButton.set_tile_uv(button, tiles, [0, 0]) ImageButton.set_tile_uv(button, tiles, [0, 0])
ImageButton.set_state_change(button) { |data|
if(data["press"]){
_ui.ui_mode = Ui.Info
}
}
//people //people
button = _ui.list_button(list) button = _ui.list_button(list)
UIImage.set_image(button, adventureButtons)
ImageButton.set_tooltip(button, "People") ImageButton.set_tooltip(button, "People")
ImageButton.set_tile_uv(button, tiles, [2, 0]) ImageButton.set_tile_uv(button, tiles, [2, 0])
//stuff //stuff
button = _ui.list_button(list) button = _ui.list_button(list)
UIImage.set_image(button, adventureButtons)
ImageButton.set_tooltip(button, "Stuff") ImageButton.set_tooltip(button, "Stuff")
ImageButton.set_tile_uv(button, tiles, [4, 0]) ImageButton.set_tile_uv(button, tiles, [4, 0])
//direction //direction
button = _ui.list_button(list) button = _ui.list_button(list)
UIImage.set_image(button, adventureButtons)
ImageButton.set_tooltip(button, "Direction") ImageButton.set_tooltip(button, "Direction")
ImageButton.set_tile_uv(button, tiles, [3, 0]) ImageButton.set_tile_uv(button, tiles, [3, 0])
//go //go
button = _ui.list_button(list) button = _ui.list_button(list)
UIImage.set_image(button, adventureButtons)
ImageButton.set_tooltip(button, "Depart") ImageButton.set_tooltip(button, "Depart")
ImageButton.set_tile_uv(button, tiles, [5, 0]) ImageButton.set_tile_uv(button, tiles, [5, 0])
} }

View file

@ -15,8 +15,9 @@ import "blocks/ui/image_button" for ImageButton
import "math/observable" for Observable import "math/observable" for Observable
import "math/stringUtil" for StringUtil import "math/stringUtil" for StringUtil
import "blocks/ui/simple_text" for UISimpleText import "blocks/ui/simple_text" for UISimpleText
import "blocks/ui" for Ui import "blocks/ui/ui" for Ui
import "blocks/human/human" for Human import "blocks/human/human" for Human
import "luxe: Game" for Game
class UiInfo{ class UiInfo{
root{_root} root{_root}
@ -81,6 +82,7 @@ class UiInfo{
ImageButton.set_tile_uv(button, tiles, [1, 0]) ImageButton.set_tile_uv(button, tiles, [1, 0])
ImageButton.set_state_change(button) { |data| ImageButton.set_state_change(button) { |data|
if(data["press"]){ if(data["press"]){
Game.adventures.new_or_current()
_ui.ui_mode = Ui.Planning _ui.ui_mode = Ui.Planning
} }
} }

View file

@ -62,11 +62,34 @@ class Ui{
var button = ImageButton.create(_ent) var button = ImageButton.create(_ent)
Control.set_size(button, 16, 16) Control.set_size(button, 16, 16)
Control.child_add(parent, button) Control.child_add(parent, button)
var adventureButtons = Assets.image("assets/AdventureButtons")
UIImage.set_image(button, adventureButtons)
return button return button
} }
list_button(parent, tile){
var tiles = [10, 1]
var button = list_button(parent)
ImageButton.set_tile_uv(button, tiles, tile)
return button
}
list_button(parent, tile, tooltip){
var button = list_button(parent, tile)
ImageButton.set_tooltip(button, tooltip)
}
list_button(parent, tile, tooltip, pressFn){
var button = list_button(parent, tile)
ImageButton.set_state_change(button) { |data|
if(data["press"]){
_ui.ui_mode = Ui.Info
}
}
}
} }
//this is behind the class def to make cyclic dependency happy lol //this is behind the class def to make cyclic dependency happy lol
import "blocks/human/human" for Human import "blocks/ui/info" for UiInfo
import "blocks/info" for UiInfo import "blocks/ui/adventure" for UiAdventure
import "blocks/adventure" for UiAdventure

View file

@ -9,7 +9,7 @@ import "luxe: color" for Color
import "outline/app" for App import "outline/app" for App
import "outline/Renderer" for Renderer import "outline/Renderer" for Renderer
import "blocks/ui" for Ui import "blocks/ui/ui" for Ui
import "blocks/debug" for DrawDebug, Holder import "blocks/debug" for DrawDebug, Holder
import "globals" for Globals, RandomInst import "globals" for Globals, RandomInst
import "math/vector" for Vector import "math/vector" for Vector
@ -19,6 +19,7 @@ import "math/observable" for Observable
import "blocks/tooltip" for Tooltip import "blocks/tooltip" for Tooltip
import "blocks/human/human" for Human import "blocks/human/human" for Human
import "blocks/resources" for Resources import "blocks/resources" for Resources
import "blocks/adventures" for Adventures
class Game is Ready { class Game is Ready {
construct ready() { construct ready() {
@ -26,7 +27,7 @@ class Game is Ready {
Globals["Game"] = this Globals["Game"] = this
_focus = Observable.new() _focus = Observable.new()
_adventure = Observable.new() _adventures = Adventures.new()
app = App.new() app = App.new()
_resources = Resources.new() _resources = Resources.new()
@ -101,7 +102,7 @@ class Game is Ready {
} }
Focus{_focus} Focus{_focus}
Adventure{_adventure} adventures{_adventures}
resources{_resources} resources{_resources}
app { _app } app { _app }