일단 오늘은 이걸로..

This commit is contained in:
2025-06-19 22:35:02 +09:00
parent 3e3769f912
commit 66dc91dab3
10 changed files with 115 additions and 26 deletions

View File

@@ -146,7 +146,7 @@ void Engine::Update() {
vulkan_graphics->RenderModel(it.second);
}
physics_controller_.invokeOnColisionEvent(thread_pool_, models_);
Physics::invokeOnColisionEvent(thread_pool_, models_);
vulkan_graphics->EndFrame();
}
@@ -240,7 +240,7 @@ void Engine::ResponseToServerAndRefresh(std::shared_ptr<Network::Socket> sock) {
for (auto& it : models_) {
if (it.second->ID == model->ID) {
Interpolation(header, it.second, model);
spdlog::debug("model updated: [{}:{}]", model->name, model->ID.snowflake);
// spdlog::debug("model updated: [{}:{}]", model->name, model->ID.snowflake);
found = true;
break;
}
@@ -250,8 +250,17 @@ void Engine::ResponseToServerAndRefresh(std::shared_ptr<Network::Socket> sock) {
auto spawnedModel =
SpawnLifedModel(model->asset_name, model->name, model->lifespan);
std::lock_guard lock(spawnedModel->modding);
spawnedModel->ID = model->ID;
spawnedModel->position = model->position;
spawnedModel->linear_velocity = model->linear_velocity;
spawnedModel->linear_acceleration = model->linear_acceleration;
spawnedModel->rotation = model->rotation;
spawnedModel->angular_velocity = model->angular_velocity;
spawnedModel->angular_acceleration = model->angular_acceleration;
spawnedModel->scale = model->scale;
spawnedModel->transform = model->transform;
spawnedModel->original_offset = model->original_offset;
spawnedModel->radius = model->radius;
@@ -260,11 +269,21 @@ void Engine::ResponseToServerAndRefresh(std::shared_ptr<Network::Socket> sock) {
spawnedModel->visible = model->visible;
spawnedModel->colision = model->colision;
spawnedModel->networkReplicated = false;
Interpolation(header, spawnedModel, model);
spdlog::info("model spawned: {}", model->ID.snowflake);
}
} break;
case Packet::Opcode::DESPAWNMODEL: {
std::shared_ptr<veng::Model> model = std::make_shared<veng::Model>();
model->Deserialize(recv_data);
for (auto it = models_.begin(); it != models_.end();) {
if (it->second->ID == model->ID) {
models_.erase(it);
break;
}
++it;
}
} break;
default:
spdlog::error("unknown data type");
}