add gfx.text3d OOP wrapper
This commit is contained in:
parent
4a74e56eda
commit
3a1e90f517
@ -1,7 +1,7 @@
|
|||||||
local DROP_FORCE = 8
|
local DROP_FORCE = 8
|
||||||
local DROP_INIT_VEL = {0, 3, 0}
|
local DROP_INIT_VEL = {0, 3, 0}
|
||||||
|
|
||||||
local textid
|
local note
|
||||||
|
|
||||||
function on_hud_open()
|
function on_hud_open()
|
||||||
input.add_callback("player.drop", function ()
|
input.add_callback("player.drop", function ()
|
||||||
@ -27,7 +27,7 @@ function on_hud_open()
|
|||||||
drop.rigidbody:set_vel(velocity)
|
drop.rigidbody:set_vel(velocity)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
textid = gfx.text3d.show({0.5, 99.5, 0.0015}, "Segmentation fault", {
|
note = gfx.text3d.new({0.5, 99.5, 0.0015}, "Segmentation fault", {
|
||||||
scale=0.005,
|
scale=0.005,
|
||||||
color={0, 0, 0, 1},
|
color={0, 0, 0, 1},
|
||||||
displayMode="static_billboard"
|
displayMode="static_billboard"
|
||||||
@ -35,7 +35,7 @@ function on_hud_open()
|
|||||||
end
|
end
|
||||||
|
|
||||||
function on_hud_render()
|
function on_hud_render()
|
||||||
gfx.text3d.update_settings(textid, {
|
note:update_settings({
|
||||||
color={math.sin(time.uptime() * 12) * 0.5 + 0.5, 0, 0, 1}
|
color={math.sin(time.uptime() * 12) * 0.5 + 0.5, 0, 0, 1}
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|||||||
13
res/scripts/hud_classes.lua
Normal file
13
res/scripts/hud_classes.lua
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
local Text3D = {__index={
|
||||||
|
hide=function(self) return gfx.text3d.hide(self.id) end,
|
||||||
|
get_pos=function(self) return gfx.text3d.get_pos(self.id) end,
|
||||||
|
set_pos=function(self, v) return gfx.text3d.set_pos(self.id, v) end,
|
||||||
|
get_text=function(self) return gfx.text3d.get_text(self.id) end,
|
||||||
|
set_text=function(self, s) return gfx.text3d.set_text(self.id, s) end,
|
||||||
|
update_settings=function(self, t) return gfx.text3d.update_settings(self.id, t) end,
|
||||||
|
}}
|
||||||
|
|
||||||
|
gfx.text3d.new = function(pos, text, preset, extension)
|
||||||
|
local id = gfx.text3d.show(pos, text, preset, extension)
|
||||||
|
return setmetatable({id=id}, Text3D)
|
||||||
|
end
|
||||||
@ -17,6 +17,14 @@ static debug::Logger logger("scripting-hud");
|
|||||||
Hud* scripting::hud = nullptr;
|
Hud* scripting::hud = nullptr;
|
||||||
WorldRenderer* scripting::renderer = nullptr;
|
WorldRenderer* scripting::renderer = nullptr;
|
||||||
|
|
||||||
|
static void load_script(const std::string& name) {
|
||||||
|
auto file = engine->getPaths()->getResourcesFolder() / "scripts" / name;
|
||||||
|
std::string src = files::read_string(file);
|
||||||
|
logger.info() << "loading script " << file.u8string();
|
||||||
|
|
||||||
|
lua::execute(lua::get_main_state(), 0, src, file.u8string());
|
||||||
|
}
|
||||||
|
|
||||||
void scripting::on_frontend_init(Hud* hud, WorldRenderer* renderer) {
|
void scripting::on_frontend_init(Hud* hud, WorldRenderer* renderer) {
|
||||||
scripting::hud = hud;
|
scripting::hud = hud;
|
||||||
scripting::renderer = renderer;
|
scripting::renderer = renderer;
|
||||||
@ -27,6 +35,8 @@ void scripting::on_frontend_init(Hud* hud, WorldRenderer* renderer) {
|
|||||||
lua::openlib(L, "gfx", "particles", particleslib);
|
lua::openlib(L, "gfx", "particles", particleslib);
|
||||||
lua::openlib(L, "gfx", "text3d", text3dlib);
|
lua::openlib(L, "gfx", "text3d", text3dlib);
|
||||||
|
|
||||||
|
load_script("hud_classes.lua");
|
||||||
|
|
||||||
if (lua::getglobal(L, "__vc_create_hud_rules")) {
|
if (lua::getglobal(L, "__vc_create_hud_rules")) {
|
||||||
lua::call_nothrow(L, 0, 0);
|
lua::call_nothrow(L, 0, 0);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user