From 1f11290635df3d23e9954238dccc965083a42a0a Mon Sep 17 00:00:00 2001 From: MihailRis Date: Mon, 13 May 2024 21:28:55 +0300 Subject: [PATCH] more test commands --- res/layouts/console.xml | 4 ++-- res/layouts/console.xml.lua | 2 ++ res/scripts/stdlib.lua | 27 +++++++++++++++++++++++++++ src/graphics/ui/elements/TextBox.cpp | 4 ++-- src/logic/scripting/lua/libblock.cpp | 3 +++ 5 files changed, 36 insertions(+), 4 deletions(-) diff --git a/res/layouts/console.xml b/res/layouts/console.xml index ec728c68..f0995f4a 100644 --- a/res/layouts/console.xml +++ b/res/layouts/console.xml @@ -1,5 +1,5 @@ - - + + diff --git a/res/layouts/console.xml.lua b/res/layouts/console.xml.lua index 9d2cd876..fb66aec3 100644 --- a/res/layouts/console.xml.lua +++ b/res/layouts/console.xml.lua @@ -8,6 +8,8 @@ function submit(text) document.log.text = document.log.text..tostring(result)..'\n' end document.prompt.text = "" + document.prompt.focused = true + print(document.log.pos) end function on_open() diff --git a/res/scripts/stdlib.lua b/res/scripts/stdlib.lua index fe3c0be7..04992148 100644 --- a/res/scripts/stdlib.lua +++ b/res/scripts/stdlib.lua @@ -291,6 +291,33 @@ console.add_command( player.set_pos(unpack(args)) end ) +console.add_command( + "echo value:str", + function (args, kwargs) + return args[1] + end +) +console.add_command( + "time.set value:num", + function (args, kwargs) + return world.set_day_time(args[1]) + end +) +console.add_command( + "fill id:str x:num~pos.x y:num~pos.y z:num~pos.z w:int h:int d:int", + function (args, kwargs) + local name, x, y, z, w, h, d = unpack(args) + local id = block.index(name) + for ly=0,h-1 do + for lz=0,d-1 do + for lx=0,w-1 do + block.set(x+lx, y+ly, z+lz, id) + end + end + end + return tostring(w*h*d).." blocks set" + end +) -- Deprecated functions block_index = block.index diff --git a/src/graphics/ui/elements/TextBox.cpp b/src/graphics/ui/elements/TextBox.cpp index 7d6690de..3d97dbca 100644 --- a/src/graphics/ui/elements/TextBox.cpp +++ b/src/graphics/ui/elements/TextBox.cpp @@ -78,7 +78,7 @@ void TextBox::drawBackground(const DrawContext* pctx, Assets*) { batch->texture(nullptr); auto subctx = pctx->sub(); - subctx.setScissors(glm::vec4(pos.x, pos.y, size.x, size.y)); + subctx.setScissors(glm::vec4(pos.x, pos.y-0.5, size.x, size.y+1)); if (valid) { if (isFocused() && !multiline) { @@ -334,10 +334,10 @@ void TextBox::performEditingKeyboardEvents(keycode key) { if (multiline) { paste(L"\n"); } else { + defocus(); if (validate() && consumer) { consumer(label->getText()); } - defocus(); } } else if (key == keycode::TAB) { paste(L" "); diff --git a/src/logic/scripting/lua/libblock.cpp b/src/logic/scripting/lua/libblock.cpp index 9e408f5d..2de58401 100644 --- a/src/logic/scripting/lua/libblock.cpp +++ b/src/logic/scripting/lua/libblock.cpp @@ -64,6 +64,9 @@ int l_set_block(lua_State* L) { if (id < 0 || size_t(id) >= scripting::indices->countBlockDefs()) { return 0; } + if (!scripting::level->chunks->get(x, y, z)) { + return 0; + } scripting::level->chunks->set(x, y, z, id, states); scripting::level->lighting->onBlockSet(x,y,z, id); if (!noupdate)