diff --git a/res/shaders/main.glslv b/res/shaders/main.glslv index ccd89eaa..6e1303fb 100644 --- a/res/shaders/main.glslv +++ b/res/shaders/main.glslv @@ -33,7 +33,7 @@ void main(){ vec4 modelpos = u_model * vec4(v_position+vec3(0,pow(length(pos2d)*0.0, 3.0),0), 1.0); vec4 viewmodelpos = u_view * modelpos; vec4 decomp_light = decompress_light(v_light); - vec3 light = decomp_light.rgb * 1.6; + vec3 light = decomp_light.rgb; float torchlight = max(0.0, 1.0-distance(u_cameraPos, modelpos.xyz)/u_torchlightDistance); light += torchlight * u_torchlightColor; a_color = vec4(pow(light, vec3(u_gamma)),1.0f); diff --git a/src/core_defs.h b/src/core_defs.h index c30135bf..ffd26795 100644 --- a/src/core_defs.h +++ b/src/core_defs.h @@ -16,6 +16,9 @@ #define BIND_CAM_ZOOM "camera.zoom" #define BIND_PLAYER_NOCLIP "player.noclip" #define BIND_PLAYER_FLIGHT "player.flight" +#define BIND_PLAYER_ATTACK "player.attack" +#define BIND_PLAYER_BUILD "player.build" +#define BIND_PLAYER_PICK "player.pick" #define BIND_HUD_INVENTORY "hud.inventory" #endif // SRC_CORE_DEFS_H_ \ No newline at end of file diff --git a/src/definitions.cpp b/src/definitions.cpp index ee7023c1..748b8812 100644 --- a/src/definitions.cpp +++ b/src/definitions.cpp @@ -103,5 +103,8 @@ void setup_bindings() { Events::bind(BIND_CAM_ZOOM, inputtype::keyboard, keycode::C); Events::bind(BIND_PLAYER_NOCLIP, inputtype::keyboard, keycode::N); Events::bind(BIND_PLAYER_FLIGHT, inputtype::keyboard, keycode::F); + Events::bind(BIND_PLAYER_ATTACK, inputtype::mouse, mousecode::BUTTON_1); + Events::bind(BIND_PLAYER_BUILD, inputtype::mouse, mousecode::BUTTON_2); + Events::bind(BIND_PLAYER_PICK, inputtype::mouse, mousecode::BUTTON_3); Events::bind(BIND_HUD_INVENTORY, inputtype::keyboard, keycode::TAB); } \ No newline at end of file diff --git a/src/frontend/menu.cpp b/src/frontend/menu.cpp index 92af70dd..78305b34 100644 --- a/src/frontend/menu.cpp +++ b/src/frontend/menu.cpp @@ -170,7 +170,7 @@ Panel* create_controls_panel(Engine* engine, PagesControl* menu) { for (auto& entry : Events::bindings){ string bindname = entry.first; - Panel* subpanel = new Panel(vec2(400, 45), vec4(5.0f), 1.0f); + Panel* subpanel = new Panel(vec2(400, 40), vec4(5.0f), 1.0f); subpanel->color(vec4(0.0f)); subpanel->orientation(Orientation::horizontal); diff --git a/src/objects/player_control.cpp b/src/objects/player_control.cpp index fac74e19..140c2e69 100644 --- a/src/objects/player_control.cpp +++ b/src/objects/player_control.cpp @@ -78,6 +78,7 @@ void PlayerController::updateControls(float delta){ Player* player = level->player; Camera* camera = player->camera; Hitbox* hitbox = player->hitbox; + bool cameraShaking = camSettings.shaking; bool crouch = input.shift && hitbox->grounded && !input.sprint; float speed = player->speed; @@ -87,6 +88,7 @@ void PlayerController::updateControls(float delta){ } if (input.cheat){ speed *= CHEAT_SPEED_MUL; + cameraShaking = false; } if (crouch) { @@ -131,7 +133,7 @@ void PlayerController::updateControls(float delta){ cameraOffset = vec3(0.0f, 0.7f, 0.0f); - if (camSettings.shaking) { + if (cameraShaking) { player->interpVel = player->interpVel * (1.0f - delta * 5) + hitbox->velocity * delta * 0.1f; if (hitbox->grounded && player->interpVel.y < 0.0f){ player->interpVel.y *= -30.0f; @@ -221,10 +223,10 @@ void PlayerController::updateInteraction(){ vec3 norm; bool xkey = Events::pressed(keycode::X); - bool lclick = Events::jclicked(mousecode::BUTTON_1) || - (xkey && Events::clicked(mousecode::BUTTON_1)); - bool rclick = Events::jclicked(mousecode::BUTTON_2) || - (xkey && Events::clicked(mousecode::BUTTON_2)); + bool lclick = Events::jactive(BIND_PLAYER_ATTACK) || + (xkey && Events::active(BIND_PLAYER_ATTACK)); + bool rclick = Events::jactive(BIND_PLAYER_BUILD) || + (xkey && Events::active(BIND_PLAYER_BUILD)); float maxDistance = 10.0f; if (xkey) { maxDistance *= 20.0f; @@ -270,7 +272,7 @@ void PlayerController::updateInteraction(){ lighting->onBlockSet(x,y,z, player->choosenBlock); } } - if (Events::jclicked(mousecode::BUTTON_3)){ + if (Events::jactive(BIND_PLAYER_PICK)){ player->choosenBlock = chunks->get(x,y,z)->id; } } else {