update entity.spawn(...): now returns an Entity instead of id

This commit is contained in:
MihailRis 2024-06-29 21:10:23 +03:00
parent fc3994446a
commit d22948f45c
4 changed files with 8 additions and 6 deletions

View File

@ -4,4 +4,5 @@ end
function on_grounded()
entity.transform:set_rot(mat4.rotate({0, 1, 0}, math.random()*360))
entity:despawn()
end

View File

@ -6,11 +6,11 @@ function on_hud_open()
local pid = hud.get_player()
local pvel = {player.get_vel(pid)}
local ppos = vec3.add({player.get_pos(pid)}, {0, 0.7, 0})
local eid = entity.spawn("base:drop", ppos)
local throw_force = vec3.mul(player.get_dir(pid), DROP_FORCE)
__rigidbody.set_vel(eid, vec3.add(throw_force, vec3.add(pvel, DROP_INIT_VEL)))
__transform.set_rot(eid,
mat4.rotate(mat4.rotate(mat4.rotate({0, 1, 0}, math.random() * 360),
local drop = entity.spawn("base:drop", ppos)
drop.rigidbody:set_vel(vec3.add(throw_force, vec3.add(pvel, DROP_INIT_VEL)))
drop.transform:set_rot(mat4.rotate(mat4.rotate(mat4.rotate({0, 1, 0}, math.random() * 360),
{1, 0, 0}, math.random() * 360), {0, 0, 1}, math.random() * 360))
end)
end

View File

@ -31,8 +31,8 @@ static int l_spawn(lua::State* L) {
auto defname = lua::tostring(L, 1);
auto& def = content->entities.require(defname);
auto pos = lua::tovec3(L, 2);
auto id = level->entities->spawn(def, pos);
return lua::pushinteger(L, id);
level->entities->spawn(def, pos);
return 1;
}
static int l_despawn(lua::State* L) {

View File

@ -271,6 +271,7 @@ scriptenv scripting::on_entity_spawn(const EntityDef& def, entityid_t eid, entit
lua::pushenv(L, *entityenv);
funcsset.on_grounded = lua::hasfield(L, "on_grounded");
funcsset.on_despawn = lua::hasfield(L, "on_despawn");
lua::pop(L, 2);
return entityenv;
}