Apply some minor code cleanups

This commit is contained in:
sfan5 2025-01-17 18:10:49 +01:00
parent 94239153b5
commit e5f276ecee
8 changed files with 18 additions and 30 deletions

View file

@ -1750,11 +1750,6 @@ void Client::addUpdateMeshTaskForNode(v3s16 nodepos, bool ack_to_server, bool ur
addUpdateMeshTask(blockpos + v3s16(0, 0, -1), false, urgent);
}
void Client::updateCameraOffset(v3s16 camera_offset)
{
m_mesh_update_manager->m_camera_offset = camera_offset;
}
ClientEvent *Client::getClientEvent()
{
FATAL_ERROR_IF(m_client_event_queue.empty(),

View file

@ -300,8 +300,6 @@ public:
void addUpdateMeshTaskWithEdge(v3s16 blockpos, bool ack_to_server=false, bool urgent=false);
void addUpdateMeshTaskForNode(v3s16 nodepos, bool ack_to_server=false, bool urgent=false);
void updateCameraOffset(v3s16 camera_offset);
bool hasClientEvents() const { return !m_client_event_queue.empty(); }
// Get event from queue. If queue is empty, it triggers an assertion failure.
ClientEvent * getClientEvent();

View file

@ -2901,7 +2901,8 @@ void Game::updateChat(f32 dtime)
void Game::updateCamera(f32 dtime)
{
LocalPlayer *player = client->getEnv().getLocalPlayer();
ClientEnvironment &env = client->getEnv();
LocalPlayer *player = env.getLocalPlayer();
/*
For interaction purposes, get info about the held item
@ -2940,7 +2941,7 @@ void Game::updateCamera(f32 dtime)
float full_punch_interval = playeritem_toolcap.full_punch_interval;
float tool_reload_ratio = runData.time_from_last_punch / full_punch_interval;
tool_reload_ratio = MYMIN(tool_reload_ratio, 1.0);
tool_reload_ratio = std::min(tool_reload_ratio, 1.0f);
camera->update(player, dtime, tool_reload_ratio);
camera->step(dtime);
@ -2953,13 +2954,12 @@ void Game::updateCamera(f32 dtime)
v3f camera_position = camera->getPosition();
v3f camera_direction = camera->getDirection();
client->getEnv().getClientMap().updateCamera(camera_position,
auto &env = client->getEnv();
env.getClientMap().updateCamera(camera_position,
camera_direction, camera_fov, camera_offset, player->light_color);
if (m_camera_offset_changed) {
client->updateCameraOffset(camera_offset);
client->getEnv().updateCameraOffset(camera_offset);
env.updateCameraOffset(camera_offset);
clouds->updateCameraOffset(camera_offset);
}
}

View file

@ -608,7 +608,7 @@ void PartialMeshBuffer::draw(video::IVideoDriver *driver) const
MapBlockMesh
*/
MapBlockMesh::MapBlockMesh(Client *client, MeshMakeData *data, v3s16 camera_offset):
MapBlockMesh::MapBlockMesh(Client *client, MeshMakeData *data):
m_tsrc(client->getTextureSource()),
m_shdrsrc(client->getShaderSource()),
m_bounding_sphere_center((data->m_side_length * 0.5f - 0.5f) * BS),
@ -692,7 +692,6 @@ MapBlockMesh::MapBlockMesh(Client *client, MeshMakeData *data, v3s16 camera_offs
auto &info = m_animation_info[{layer, i}];
info.tile = p.layer;
info.frame = 0;
info.frame_offset = 0;
// Replace tile texture with the first animation frame
p.layer.texture = (*p.layer.frames)[0].texture;
}
@ -815,8 +814,8 @@ bool MapBlockMesh::animate(bool faraway, float time, int crack,
for (auto &it : m_animation_info) {
const TileLayer &tile = it.second.tile;
// Figure out current frame
int frameno = (int)(time * 1000 / tile.animation_frame_length_ms
+ it.second.frame_offset) % tile.animation_frame_count;
int frameno = (int)(time * 1000 / tile.animation_frame_length_ms) %
tile.animation_frame_count;
// If frame doesn't change, skip
if (frameno == it.second.frame)
continue;

View file

@ -180,7 +180,7 @@ class MapBlockMesh
{
public:
// Builds the mesh given
MapBlockMesh(Client *client, MeshMakeData *data, v3s16 camera_offset);
MapBlockMesh(Client *client, MeshMakeData *data);
~MapBlockMesh();
// Main animation function, parameters:
@ -248,7 +248,6 @@ public:
private:
struct AnimationInfo {
int frame; // last animation frame
int frame_offset;
TileLayer tile;
};

View file

@ -202,8 +202,8 @@ void MeshUpdateQueue::fillDataFromMapBlocks(QueuedMeshUpdate *q)
MeshUpdateWorkerThread
*/
MeshUpdateWorkerThread::MeshUpdateWorkerThread(Client *client, MeshUpdateQueue *queue_in, MeshUpdateManager *manager, v3s16 *camera_offset) :
UpdateThread("Mesh"), m_client(client), m_queue_in(queue_in), m_manager(manager), m_camera_offset(camera_offset)
MeshUpdateWorkerThread::MeshUpdateWorkerThread(Client *client, MeshUpdateQueue *queue_in, MeshUpdateManager *manager) :
UpdateThread("Mesh"), m_client(client), m_queue_in(queue_in), m_manager(manager)
{
m_generation_interval = g_settings->getU16("mesh_generation_interval");
m_generation_interval = rangelim(m_generation_interval, 0, 50);
@ -220,7 +220,7 @@ void MeshUpdateWorkerThread::doUpdate()
ScopeProfiler sp(g_profiler, "Client: Mesh making (sum)");
MapBlockMesh *mesh_new = new MapBlockMesh(m_client, q->data, *m_camera_offset);
MapBlockMesh *mesh_new = new MapBlockMesh(m_client, q->data);
MeshUpdateResult r;
r.p = q->p;
@ -254,7 +254,7 @@ MeshUpdateManager::MeshUpdateManager(Client *client):
infostream << "MeshUpdateManager: using " << number_of_threads << " threads" << std::endl;
for (int i = 0; i < number_of_threads; i++)
m_workers.push_back(std::make_unique<MeshUpdateWorkerThread>(client, &m_queue_in, this, &m_camera_offset));
m_workers.push_back(std::make_unique<MeshUpdateWorkerThread>(client, &m_queue_in, this));
}
void MeshUpdateManager::updateBlock(Map *map, v3s16 p, bool ack_block_to_server,

View file

@ -93,7 +93,7 @@ class MeshUpdateManager;
class MeshUpdateWorkerThread : public UpdateThread
{
public:
MeshUpdateWorkerThread(Client *client, MeshUpdateQueue *queue_in, MeshUpdateManager *manager, v3s16 *camera_offset);
MeshUpdateWorkerThread(Client *client, MeshUpdateQueue *queue_in, MeshUpdateManager *manager);
protected:
virtual void doUpdate();
@ -102,7 +102,6 @@ private:
Client *m_client;
MeshUpdateQueue *m_queue_in;
MeshUpdateManager *m_manager;
v3s16 *m_camera_offset;
// TODO: Add callback to update these when g_settings changes
int m_generation_interval;
@ -121,8 +120,6 @@ public:
bool getNextResult(MeshUpdateResult &r);
v3s16 m_camera_offset;
void start();
void stop();
void wait();

View file

@ -120,9 +120,6 @@ struct TileLayer
MATERIAL_FLAG_TILEABLE_HORIZONTAL|
MATERIAL_FLAG_TILEABLE_VERTICAL;
//! If true, the tile has its own color.
bool has_color = false;
std::vector<FrameSpec> *frames = nullptr;
/*!
@ -131,6 +128,9 @@ struct TileLayer
*/
video::SColor color = video::SColor(0, 0, 0, 0);
//! If true, the tile has its own color.
bool has_color = false;
u8 scale = 1;
};