entity.get_rot, .set_rot
This commit is contained in:
parent
20ab48ecab
commit
f70e923c7c
@ -1,3 +1,3 @@
|
|||||||
{
|
{
|
||||||
"hitbox": [0.2, 0.2, 0.2]
|
"hitbox": [0.2, 0.15, 0.2]
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,5 +8,6 @@ function on_hud_open()
|
|||||||
local eid = entity.spawn("base:drop")
|
local eid = entity.spawn("base:drop")
|
||||||
local throw_force = vec3.mul(player.get_dir(pid), DROP_FORCE)
|
local throw_force = vec3.mul(player.get_dir(pid), DROP_FORCE)
|
||||||
entity.set_vel(eid, vec3.add(throw_force, vec3.add(pvel, DROP_INIT_VEL)))
|
entity.set_vel(eid, vec3.add(throw_force, vec3.add(pvel, DROP_INIT_VEL)))
|
||||||
|
entity.set_rot(eid, mat4.rotate({0, 1, 0}, math.random() * 360))
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|||||||
@ -45,9 +45,25 @@ static int l_set_vel(lua::State* L) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int l_get_rot(lua::State* L) {
|
||||||
|
if (auto entity = get_entity(L, 1)) {
|
||||||
|
return lua::pushmat4(L, entity->getTransform().rot);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int l_set_rot(lua::State* L) {
|
||||||
|
if (auto entity = get_entity(L, 1)) {
|
||||||
|
entity->getTransform().rot = lua::tomat4(L, 2);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
const luaL_Reg entitylib [] = {
|
const luaL_Reg entitylib [] = {
|
||||||
{"spawn", lua::wrap<l_spawn>},
|
{"spawn", lua::wrap<l_spawn>},
|
||||||
{"get_vel", lua::wrap<l_get_vel>},
|
{"get_vel", lua::wrap<l_get_vel>},
|
||||||
{"set_vel", lua::wrap<l_set_vel>},
|
{"set_vel", lua::wrap<l_set_vel>},
|
||||||
|
{"get_rot", lua::wrap<l_get_rot>},
|
||||||
|
{"set_rot", lua::wrap<l_set_rot>},
|
||||||
{NULL, NULL}
|
{NULL, NULL}
|
||||||
};
|
};
|
||||||
|
|||||||
@ -46,9 +46,9 @@ void Entities::updatePhysics(float delta){
|
|||||||
1.0f,
|
1.0f,
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
hitbox.linear_damping = hitbox.grounded * 5;
|
hitbox.linear_damping = hitbox.grounded * 12;
|
||||||
transform.pos = hitbox.position;
|
transform.pos = hitbox.position;
|
||||||
transform.rot = glm::rotate(glm::mat4(transform.rot), delta, glm::vec3(0, 1, 0));
|
//transform.rot = glm::rotate(glm::mat4(transform.rot), delta, glm::vec3(0, 1, 0));
|
||||||
if (hitbox.grounded) {
|
if (hitbox.grounded) {
|
||||||
//hitbox.velocity.y = 10;
|
//hitbox.velocity.y = 10;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user