mirror of https://github.com/minetest/minetest.git
Add zoom, tweakable with zoom_fov, default key: Z (like optifine)
This commit is contained in:
parent
9b5bb5c755
commit
3390906f3a
|
@ -40,6 +40,7 @@
|
|||
#keymap_jump = KEY_SPACE
|
||||
#keymap_sneak = KEY_LSHIFT
|
||||
#keymap_inventory = KEY_KEY_I
|
||||
#keymap_zoom = KEY_KEY_Z
|
||||
# Go down ladder / go down in fly mode / go fast in fast mode
|
||||
#keymap_special1 = KEY_KEY_E
|
||||
#keymap_chat = KEY_KEY_T
|
||||
|
@ -55,6 +56,8 @@
|
|||
#doubletap_jump = false
|
||||
# If false aux1 is used to fly fast
|
||||
#always_fly_fast = true
|
||||
# FOV when using zoom, default 15
|
||||
#zoom_fov=15
|
||||
# Some (temporary) keys for debugging
|
||||
#keymap_print_debug_stacks = KEY_KEY_P
|
||||
#keymap_quicktune_prev = KEY_HOME
|
||||
|
|
|
@ -301,10 +301,15 @@ void Camera::update(LocalPlayer* player, f32 frametime, v2u32 screensize,
|
|||
// *100.0 helps in large map coordinates
|
||||
m_cameranode->setTarget(m_camera_position + 100 * m_camera_direction);
|
||||
|
||||
// Get FOV setting
|
||||
f32 fov_degrees = g_settings->getFloat("fov");
|
||||
// Get FOV
|
||||
f32 fov_degrees;
|
||||
if (player->zoom) {
|
||||
fov_degrees = g_settings->getFloat("zoom_fov");
|
||||
} else {
|
||||
fov_degrees = g_settings->getFloat("fov");
|
||||
fov_degrees = MYMAX(fov_degrees, 10.0);
|
||||
fov_degrees = MYMIN(fov_degrees, 170.0);
|
||||
}
|
||||
|
||||
// FOV and aspect ratio
|
||||
m_aspect = (f32)screensize.X / (f32) screensize.Y;
|
||||
|
|
|
@ -36,6 +36,7 @@ void set_default_settings(Settings *settings)
|
|||
settings->setDefault("keymap_jump", "KEY_SPACE");
|
||||
settings->setDefault("keymap_sneak", "KEY_LSHIFT");
|
||||
settings->setDefault("keymap_drop", "KEY_KEY_Q");
|
||||
settings->setDefault("keymap_zoom", "KEY_KEY_Z");
|
||||
settings->setDefault("keymap_inventory", "KEY_KEY_I");
|
||||
settings->setDefault("keymap_special1", "KEY_KEY_E");
|
||||
settings->setDefault("keymap_chat", "KEY_KEY_T");
|
||||
|
@ -59,6 +60,7 @@ void set_default_settings(Settings *settings)
|
|||
settings->setDefault("aux1_descends", "false");
|
||||
settings->setDefault("doubletap_jump", "false");
|
||||
settings->setDefault("always_fly_fast", "true");
|
||||
settings->setDefault("zoom_fov", "15");
|
||||
|
||||
// Some (temporary) keys for debugging
|
||||
settings->setDefault("keymap_print_debug_stacks", "KEY_KEY_P");
|
||||
|
|
|
@ -1887,6 +1887,13 @@ void the_game(
|
|||
statustext_time = 0;
|
||||
}
|
||||
|
||||
|
||||
if (input->isKeyDown(getKeySetting("keymap_zoom"))) {
|
||||
player->zoom=true;
|
||||
} else {
|
||||
player->zoom=false;
|
||||
}
|
||||
|
||||
// Reset jump_timer
|
||||
if(!input->isKeyDown(getKeySetting("keymap_jump")) && reset_jump_timer)
|
||||
{
|
||||
|
|
|
@ -55,6 +55,7 @@ enum
|
|||
GUI_ID_KEY_INVENTORY_BUTTON,
|
||||
GUI_ID_KEY_DUMP_BUTTON,
|
||||
GUI_ID_KEY_RANGE_BUTTON,
|
||||
GUI_ID_KEY_ZOOM_BUTTON,
|
||||
// other
|
||||
GUI_ID_CB_AUX1_DESCENDS,
|
||||
GUI_ID_CB_DOUBLETAP_JUMP,
|
||||
|
@ -377,6 +378,7 @@ void GUIKeyChangeMenu::init_keys()
|
|||
this->add_key(GUI_ID_KEY_JUMP_BUTTON, gettext("Jump"), "keymap_jump");
|
||||
this->add_key(GUI_ID_KEY_SNEAK_BUTTON, gettext("Sneak"), "keymap_sneak");
|
||||
this->add_key(GUI_ID_KEY_DROP_BUTTON, gettext("Drop"), "keymap_drop");
|
||||
this->add_key(GUI_ID_KEY_ZOOM_BUTTON, gettext("Zoom"), "keymap_zoom");
|
||||
this->add_key(GUI_ID_KEY_INVENTORY_BUTTON, gettext("Inventory"), "keymap_inventory");
|
||||
this->add_key(GUI_ID_KEY_CHAT_BUTTON, gettext("Chat"), "keymap_chat");
|
||||
this->add_key(GUI_ID_KEY_CMD_BUTTON, gettext("Command"), "keymap_cmd");
|
||||
|
|
|
@ -35,6 +35,7 @@ Player::Player(IGameDef *gamedef):
|
|||
camera_barely_in_ceiling(false),
|
||||
inventory(gamedef->idef()),
|
||||
hp(PLAYER_MAX_HP),
|
||||
zoom(false),
|
||||
peer_id(PEER_ID_INEXISTENT),
|
||||
// protected
|
||||
m_gamedef(gamedef),
|
||||
|
|
|
@ -227,6 +227,8 @@ public:
|
|||
float hurt_tilt_timer;
|
||||
float hurt_tilt_strength;
|
||||
|
||||
bool zoom;
|
||||
|
||||
u16 peer_id;
|
||||
|
||||
std::string inventory_formspec;
|
||||
|
|
Loading…
Reference in New Issue