X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fclient%2Fclient.cpp;h=b79c435473e946de841c7353cb2fb37870923c87;hb=69a4ba4fa3e4694887087ab6dddc784a593d2b03;hp=8bd0ae3db1a6c76d7546cd568d823e2ef616f709;hpb=52154f309e569c913520dd004e9fafcbc4671e6f;p=blank.git diff --git a/src/client/client.cpp b/src/client/client.cpp index 8bd0ae3..b79c435 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -4,6 +4,7 @@ #include "../app/Environment.hpp" #include "../app/init.hpp" +#include "../geometry/distance.hpp" #include "../model/Model.hpp" #include "../io/WorldSave.hpp" #include "../world/ChunkIndex.hpp" @@ -56,7 +57,7 @@ InteractiveState::InteractiveState(MasterState &master, uint32_t player_id) , manip(master.GetEnv().audio, sounds, player.GetEntity()) , input(world, player, master.GetClient()) , interface(master.GetConfig(), master.GetEnv().keymap, input, *this) -, chunk_receiver(world.Chunks(), save) +, chunk_receiver(master.GetClient(), world.Chunks(), save) , chunk_renderer(player.GetChunks()) , loop_timer(16) , stat_timer(1000) @@ -79,9 +80,6 @@ InteractiveState::InteractiveState(MasterState &master, uint32_t player_id) chunk_renderer.FogDensity(master.GetWorldConf().fog_density); loop_timer.Start(); stat_timer.Start(); - if (save.Exists(player)) { - save.Read(player); - } } void InteractiveState::OnResume() { @@ -160,7 +158,7 @@ void InteractiveState::Update(int dt) { if (input.BlockFocus()) { hud.FocusBlock(input.BlockFocus().GetChunk(), input.BlockFocus().block); } else if (input.EntityFocus()) { - hud.FocusEntity(*input.EntityFocus().entity); + hud.FocusEntity(input.EntityFocus().GetEntity()); } else { hud.FocusNone(); } @@ -193,6 +191,9 @@ void InteractiveState::Render(Viewport &viewport) { if (master.GetConfig().video.world) { chunk_renderer.Render(viewport); world.Render(viewport); + if (master.GetConfig().video.debug) { + world.RenderDebug(viewport); + } sky.Render(viewport); } hud.Render(viewport); @@ -347,6 +348,14 @@ void InteractiveState::SetDebug(bool b) { } } +void InteractiveState::NextCamera() { + if (iszero(master.GetEnv().viewport.CameraOffset())) { + master.GetEnv().viewport.OffsetCamera(glm::vec3(0.0f, 0.0f, -5.0f)); + } else { + master.GetEnv().viewport.OffsetCamera(glm::vec3(0.0f, 0.0f, 0.0f)); + } +} + void InteractiveState::Exit() { save.Write(player); master.Quit();