move player animation to base:player_animator component
This commit is contained in:
parent
9cd3f3e4c8
commit
43dc88c6b5
@ -3,7 +3,9 @@ local body = entity.rigidbody
|
||||
local rig = entity.skeleton
|
||||
|
||||
local itemid = 0
|
||||
local headIndex = rig:index("head")
|
||||
local itemIndex = rig:index("item")
|
||||
local bodyIndex = rig:index("body")
|
||||
|
||||
local function refresh_model(id)
|
||||
itemid = id
|
||||
@ -16,6 +18,11 @@ function on_render()
|
||||
if pid == -1 then
|
||||
return
|
||||
end
|
||||
|
||||
local rx, ry, rz = player.get_rot(pid)
|
||||
rig:set_matrix(headIndex, mat4.rotate({1, 0, 0}, ry))
|
||||
rig:set_matrix(bodyIndex, mat4.rotate({0, 1, 0}, rx))
|
||||
|
||||
local invid, slotid = player.get_inventory(pid)
|
||||
local id, _ = inventory.get(invid, slotid)
|
||||
if id ~= itemid then
|
||||
|
||||
@ -170,8 +170,8 @@ void CameraControl::update(
|
||||
switchCamera();
|
||||
}
|
||||
|
||||
auto& spCamera = player.spCamera;
|
||||
auto& tpCamera = player.tpCamera;
|
||||
const auto& spCamera = player.spCamera;
|
||||
const auto& tpCamera = player.tpCamera;
|
||||
|
||||
refresh();
|
||||
|
||||
@ -316,15 +316,15 @@ static int determine_rotation(
|
||||
if (name == "pipe") {
|
||||
if (norm.x < 0.0f)
|
||||
return BLOCK_DIR_WEST;
|
||||
else if (norm.x > 0.0f)
|
||||
if (norm.x > 0.0f)
|
||||
return BLOCK_DIR_EAST;
|
||||
else if (norm.y > 0.0f)
|
||||
if (norm.y > 0.0f)
|
||||
return BLOCK_DIR_UP;
|
||||
else if (norm.y < 0.0f)
|
||||
if (norm.y < 0.0f)
|
||||
return BLOCK_DIR_DOWN;
|
||||
else if (norm.z > 0.0f)
|
||||
if (norm.z > 0.0f)
|
||||
return BLOCK_DIR_NORTH;
|
||||
else if (norm.z < 0.0f)
|
||||
if (norm.z < 0.0f)
|
||||
return BLOCK_DIR_SOUTH;
|
||||
} else if (name == "pane") {
|
||||
if (abs(camDir.x) > abs(camDir.z)) {
|
||||
|
||||
@ -170,23 +170,9 @@ void Player::postUpdate() {
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: ERASE & FORGET
|
||||
auto& skeleton = entity->getSkeleton();
|
||||
|
||||
skeleton.visible = currentCamera != fpCamera;
|
||||
|
||||
auto body = skeleton.config->find("body");
|
||||
auto head = skeleton.config->find("head");
|
||||
|
||||
if (body) {
|
||||
skeleton.pose.matrices[body->getIndex()] = glm::rotate(
|
||||
glm::mat4(1.0f), glm::radians(rotation.x), glm::vec3(0, 1, 0)
|
||||
);
|
||||
}
|
||||
if (head) {
|
||||
skeleton.pose.matrices[head->getIndex()] = glm::rotate(
|
||||
glm::mat4(1.0f), glm::radians(rotation.y), glm::vec3(1, 0, 0)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
void Player::teleport(glm::vec3 position) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user