Merge pull request #2 from chmodsayshello/death_tracer

Death tracer
master
AB in MT 2022-09-17 20:44:34 +03:00 committed by GitHub
commit 74da10519b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 29 additions and 1 deletions

View File

@ -29,6 +29,7 @@ core.cheats = {
["PlayerTracers"] = "enable_player_tracers",
["NodeESP"] = "enable_node_esp",
["NodeTracers"] = "enable_node_tracers",
["DeathTracer"] = "enable_death_tracer",
},
["Interact"] = {
["FastDig"] = "fastdig",

View File

@ -2387,6 +2387,8 @@ enable_node_esp (NodeESP) bool false
enable_node_tracers (NodeTracers) bool false
enable_death_tracer (DeathTracker) bool true
entity_esp_color (EntityESP Color) v3f 255, 255, 255
player_esp_color (PlayerESP Color) v3f 0, 255, 0

View File

@ -71,6 +71,10 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "version.h"
#include "script/scripting_client.h"
#include "hud.h"
#include "client/render/death.h"
bool died;
v3f dpos;
#if USE_SOUND
#include "client/sound_openal.h"
@ -1902,6 +1906,10 @@ void Game::handleClientEvent_Deathscreen(ClientEvent *event, CameraOrientation *
{
// If client scripting is enabled, deathscreen is handled by CSM code in
// builtin/client/init.lua
died = true;
dpos = client->getEnv().getLocalPlayer()->getPosition();
if (client->modsLoaded())
client->getScript()->on_death();
else

View File

@ -85,10 +85,13 @@ void RenderingCore::draw(video::SColor _skycolor, bool _show_hud, bool _show_min
draw_player_tracers = g_settings->getBool("enable_player_tracers");
draw_node_esp = g_settings->getBool("enable_node_esp");
draw_node_tracers = g_settings->getBool("enable_node_tracers");
draw_death_tracer = g_settings->getBool("enable_death_tracer");
v3f entity_color = g_settings->getV3F("entity_esp_color");
v3f player_color = g_settings->getV3F("player_esp_color");
entity_esp_color = video::SColor(255, entity_color.X, entity_color.Y, entity_color.Z);
player_esp_color = video::SColor(255, player_color.X, player_color.Y, player_color.Z);
death_tracer_color = video::SColor(255,255,255,255);
if (shadow_renderer) {
// This is necessary to render shadows for animations correctly
@ -169,6 +172,13 @@ void RenderingCore::drawTracersAndESP()
}
}
}
if(draw_death_tracer && died){
aabb3f box;
box.MinEdge += dpos;
box.MaxEdge += dpos;
driver->draw3DLine(eye_pos,box.getCenter(),death_tracer_color);
driver->draw3DBox(box,death_tracer_color);
}
driver->setMaterial(oldmaterial);
}
@ -184,7 +194,7 @@ void RenderingCore::draw3D()
return;
hud->drawBlockBounds();
hud->drawSelectionMesh();
if (draw_entity_esp || draw_entity_tracers || draw_player_esp || draw_player_tracers || draw_node_esp || draw_node_tracers)
if (draw_entity_esp || draw_entity_tracers || draw_player_esp || draw_player_tracers || draw_node_esp || draw_node_tracers || draw_death_tracer)
drawTracersAndESP();
if (draw_wield_tool)
camera->drawWieldedTool();

View File

@ -27,6 +27,9 @@ class Client;
class Hud;
class Minimap;
extern bool died;
extern v3f dpos;
class RenderingCore
{
protected:
@ -43,8 +46,11 @@ protected:
bool draw_player_tracers;
bool draw_node_esp;
bool draw_node_tracers;
bool draw_death_tracer;
video::SColor entity_esp_color;
video::SColor player_esp_color;
video::SColor death_tracer_color;
IrrlichtDevice *device;
video::IVideoDriver *driver;

View File

@ -119,6 +119,7 @@ void set_default_settings()
settings->setDefault("enable_player_tracers", "false");
settings->setDefault("enable_node_esp", "false");
settings->setDefault("enable_node_tracers", "false");
settings->setDefault("enable_death_tracer","true");
settings->setDefault("entity_esp_color", "(255, 255, 255)");
settings->setDefault("player_esp_color", "(0, 255, 0)");
settings->setDefault("tool_range", "2");