diff options
| author | Elias Fleckenstein <eliasfleckenstein@web.de> | 2020-07-06 15:50:55 +0200 |
|---|---|---|
| committer | Elias Fleckenstein <eliasfleckenstein@web.de> | 2020-07-06 15:50:55 +0200 |
| commit | e610149c0cc3516b61115541f2f4f78344a0bb2c (patch) | |
| tree | b1205a15af51db02c9301f4ab8ecdd7527d13c10 /src/client | |
| parent | a87805a9445f280ca71da322c4b32cf357744511 (diff) | |
| download | dragonfireclient-e610149c0cc3516b61115541f2f4f78344a0bb2c.tar.xz | |
Initial Commit
Diffstat (limited to 'src/client')
| -rw-r--r-- | src/client/client.h | 6 | ||||
| -rw-r--r-- | src/client/content_cao.cpp | 3 | ||||
| -rw-r--r-- | src/client/game.cpp | 50 | ||||
| -rw-r--r-- | src/client/game.h | 3 | ||||
| -rw-r--r-- | src/client/inputhandler.cpp | 3 | ||||
| -rw-r--r-- | src/client/keys.h | 5 | ||||
| -rw-r--r-- | src/client/mapblock_mesh.cpp | 20 | ||||
| -rw-r--r-- | src/client/mesh_generator_thread.h | 2 |
8 files changed, 81 insertions, 11 deletions
diff --git a/src/client/client.h b/src/client/client.h index 1e6ba4140..3c0c133e0 100644 --- a/src/client/client.h +++ b/src/client/client.h @@ -445,6 +445,10 @@ public: { return m_env.getLocalPlayer()->formspec_prepend; } + + void sendPlayerPos(); + MeshUpdateThread m_mesh_update_thread; + private: void loadMods(); bool checkBuiltinIntegrity(); @@ -459,7 +463,6 @@ private: void ReceiveAll(); - void sendPlayerPos(); void deleteAuthData(); // helper method shared with clientpackethandler @@ -492,7 +495,6 @@ private: MtEventManager *m_event; - MeshUpdateThread m_mesh_update_thread; ClientEnvironment m_env; ParticleManager m_particle_manager; std::unique_ptr<con::Connection> m_con; diff --git a/src/client/content_cao.cpp b/src/client/content_cao.cpp index 5d719293a..fa2ed43c9 100644 --- a/src/client/content_cao.cpp +++ b/src/client/content_cao.cpp @@ -793,6 +793,9 @@ void GenericCAO::addToScene(ITextureSource *tsrc) void GenericCAO::updateLight(u8 light_at_pos) { + if (g_settings->getBool("fullbright")) + light_at_pos = 255; + // Don't update light of attached one if (getParent() != NULL) { return; diff --git a/src/client/game.cpp b/src/client/game.cpp index 9f8eb8c94..7c2249296 100644 --- a/src/client/game.cpp +++ b/src/client/game.cpp @@ -1069,6 +1069,12 @@ void Game::processKeyInput() toggleFast(); } else if (wasKeyDown(KeyType::NOCLIP)) { toggleNoClip(); + } else if (wasKeyDown(KeyType::XRAY)) { + toggleXray(); + } else if (wasKeyDown(KeyType::FULLBRIGHT)) { + toggleFullbright(); + } else if (wasKeyDown(KeyType::KILLAURA)) { + toggleKillaura(); } else if (wasKeyDown(KeyType::MUTE)) { bool new_mute_sound = !g_settings->getBool("mute_sound"); g_settings->setBool("mute_sound", new_mute_sound); @@ -1327,6 +1333,44 @@ void Game::toggleNoClip() } } +void Game::toggleXray() +{ + bool xray = ! g_settings->getBool("xray"); + g_settings->set("xray", bool_to_cstr(xray)); + + if (xray) { + m_game_ui->showTranslatedStatusText("Xray enabled"); + } else { + m_game_ui->showTranslatedStatusText("Xray disabled"); + } + client->m_mesh_update_thread.doUpdate(); +} + +void Game::toggleFullbright() +{ + bool fullbright = ! g_settings->getBool("fullbright"); + g_settings->set("fullbright", bool_to_cstr(fullbright)); + + if (fullbright) { + m_game_ui->showTranslatedStatusText("Fullbright enabled"); + } else { + m_game_ui->showTranslatedStatusText("Fullbright disabled"); + } + client->m_mesh_update_thread.doUpdate(); +} + +void Game::toggleKillaura() +{ + bool killaura = ! g_settings->getBool("killaura"); + g_settings->set("killaura", bool_to_cstr(killaura)); + + if (killaura) { + m_game_ui->showTranslatedStatusText("Killaura enabled"); + } else { + m_game_ui->showTranslatedStatusText("Killaura disabled"); + } +} + void Game::toggleCinematic() { bool cinematic = !g_settings->getBool("cinematic"); @@ -2181,7 +2225,7 @@ void Game::processPlayerInteraction(f32 dtime, bool show_hud, bool show_debug) f32 d = getToolRange(selected_def, hand_item.getDefinition(itemdef_manager)); if(g_settings->getBool("increase_tool_range")) - d = 1000; + d = 5; core::line3d<f32> shootline; @@ -2697,7 +2741,7 @@ void Game::handlePointingAtObject(const PointedThing &pointed, m_game_ui->setInfoText(infotext); - if (input->getLeftState() || g_settings->getBool("killaura")) { + if (input->getLeftState() || (g_settings->getBool("killaura") && ! g_settings->getBool("killaura_fast"))) { bool do_punch = false; bool do_punch_damage = false; @@ -2707,7 +2751,7 @@ void Game::handlePointingAtObject(const PointedThing &pointed, runData.object_hit_delay_timer = object_hit_delay; } - if (input->getLeftClicked() || g_settings->getBool("killaura")) + if (input->getLeftClicked() || (g_settings->getBool("killaura") && ! g_settings->getBool("killaura_fast"))) do_punch = true; if (do_punch) { diff --git a/src/client/game.h b/src/client/game.h index c1afb79fa..43b366057 100644 --- a/src/client/game.h +++ b/src/client/game.h @@ -736,6 +736,9 @@ public: void togglePitchMove(); void toggleFast(); void toggleNoClip(); + void toggleXray(); + void toggleFullbright(); + void toggleKillaura(); void toggleCinematic(); void toggleAutoforward(); diff --git a/src/client/inputhandler.cpp b/src/client/inputhandler.cpp index a79b04a90..b8c236b8d 100644 --- a/src/client/inputhandler.cpp +++ b/src/client/inputhandler.cpp @@ -71,6 +71,9 @@ void KeyCache::populate() getKeySetting("keymap_decrease_viewing_range_min"); key[KeyType::RANGESELECT] = getKeySetting("keymap_rangeselect"); key[KeyType::ZOOM] = getKeySetting("keymap_zoom"); + key[KeyType::XRAY] = "KEY_KEY_X"; + key[KeyType::FULLBRIGHT] = "KEY_KEY_F"; + key[KeyType::KILLAURA] = "KEY_KEY_C"; key[KeyType::QUICKTUNE_NEXT] = getKeySetting("keymap_quicktune_next"); key[KeyType::QUICKTUNE_PREV] = getKeySetting("keymap_quicktune_prev"); diff --git a/src/client/keys.h b/src/client/keys.h index 50d3d194b..08f5e36ab 100644 --- a/src/client/keys.h +++ b/src/client/keys.h @@ -68,7 +68,10 @@ public: DECREASE_VIEWING_RANGE, RANGESELECT, ZOOM, - + XRAY, + FULLBRIGHT, + KILLAURA, + QUICKTUNE_NEXT, QUICKTUNE_PREV, QUICKTUNE_INC, diff --git a/src/client/mapblock_mesh.cpp b/src/client/mapblock_mesh.cpp index c165438a0..ec8967366 100644 --- a/src/client/mapblock_mesh.cpp +++ b/src/client/mapblock_mesh.cpp @@ -681,6 +681,7 @@ static u8 face_contents(content_t m1, content_t m2, bool *equivalent, u8 c1 = f1.solidness; u8 c2 = f2.solidness; + if (c1 == c2) return 0; @@ -689,6 +690,7 @@ static u8 face_contents(content_t m1, content_t m2, bool *equivalent, else if (c2 == 0) c2 = f2.visual_solidness; + if (c1 == c2) { *equivalent = true; // If same solidness, liquid takes precense @@ -805,25 +807,35 @@ static void getTileInfo( VoxelManipulator &vmanip = data->m_vmanip; const NodeDefManager *ndef = data->m_client->ndef(); v3s16 blockpos_nodes = data->m_blockpos * MAP_BLOCKSIZE; - + content_t cXray = ndef->getId(g_settings->get("xray_node")); + bool xray = g_settings->getBool("xray"); + const MapNode &n0 = vmanip.getNodeRefUnsafe(blockpos_nodes + p); + content_t c0 = n0.getContent(); + if (xray && c0 == cXray) + c0 = CONTENT_AIR; + // Don't even try to get n1 if n0 is already CONTENT_IGNORE - if (n0.getContent() == CONTENT_IGNORE) { + if (c0 == CONTENT_IGNORE) { makes_face = false; return; } const MapNode &n1 = vmanip.getNodeRefUnsafeCheckFlags(blockpos_nodes + p + face_dir); - if (n1.getContent() == CONTENT_IGNORE) { + content_t c1 = n1.getContent(); + if (xray && c1 == cXray) + c1 = CONTENT_AIR; + + if (c1 == CONTENT_IGNORE) { makes_face = false; return; } // This is hackish bool equivalent = false; - u8 mf = face_contents(n0.getContent(), n1.getContent(), + u8 mf = face_contents(c0, c1, &equivalent, ndef); if (mf == 0) { diff --git a/src/client/mesh_generator_thread.h b/src/client/mesh_generator_thread.h index 9a42852a3..2bb74589e 100644 --- a/src/client/mesh_generator_thread.h +++ b/src/client/mesh_generator_thread.h @@ -126,6 +126,6 @@ private: // TODO: Add callback to update these when g_settings changes int m_generation_interval; -protected: +public: virtual void doUpdate(); }; |
