Some checks failed
Godot CI / Import + smoke test (push) Failing after 13s
PAUSE-МЕНЮ (autoload PauseMenu CanvasLayer): - ESC во время геймплея открывает оверлей с тёмным фоном и центральной панелью в Шиндовс-стиле. - 4 кнопки: Продолжить / Настройки / В главное меню / Сохранить и выйти. - process_mode = ALWAYS чтобы работать при tree.paused = true. - При закрытии меню в 3D-сценах автоматически возвращает Input.mouse_mode = CAPTURED. - В главном меню pause не активируется (_can_pause false). - set_input_as_handled блокирует FPV-контроллер от перехвата ESC одновременно. НАСТРОЙКИ (под-панель в Pause-меню): - Слайдер «Чувствительность мыши» 0.001-0.010 (по умолчанию 0.0025). - Слайдер «Громкость» 0-100% — связан с AudioServer Bus 0 Master через linear_to_db (audio ассетов пока нет, но шкала рабочая). - Кнопки Назад / Применить. Применить пишет в user://settings.json. - settings.json грузится автоматически при старте GameState._ready. SAVE/LOAD: - GameState.save_game(scene_path) → user://save01.json в JSON с player_name, прогрессом актов 1-2, ачивками, текущей сценой. - GameState.load_game() читает и восстанавливает state, заполняет last_scene_path для перехода. - has_save() / delete_save() помощники. - Кнопка «Продолжить» в главном меню активна только если есть save и грузит игрока в сохранённую сцену. - Кнопка «Новая игра» удаляет старый save и сбрасывает state. AUTO-SAVE: - При закрытии окна через X (NOTIFICATION_WM_CLOSE_REQUEST) — save_game перед quit. - Кнопка Q в FPV-контроллере — save+quit. - Кнопка «Сохранить и выйти» в pause-меню — save+quit. - Кнопка «В главное меню» — save перед переходом. FPV-КОНТРОЛЛЕР: - mouse_sensitivity больше не локальное @export, читается из GameState.mouse_sensitivity каждый mouse_motion event (применяется живьём после Apply). - _input → _unhandled_input чтобы PauseMenu мог перехватить ESC через set_input_as_handled. - Убран ESC-toggle захвата мыши (теперь это делает PauseMenu). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
66 lines
3.7 KiB
Text
66 lines
3.7 KiB
Text
; Engine configuration file.
|
||
; It's best edited using the editor UI and not directly,
|
||
; since the parameters that go here are not all obvious.
|
||
;
|
||
; Format:
|
||
; [section] ; section goes between []
|
||
; param=value ; assign values to parameters
|
||
|
||
config_version=5
|
||
|
||
[application]
|
||
|
||
config/name="Farming Simulator"
|
||
config/description="Подросток-фермер CS/TF2/PUBG-кейсов в стране Р, 2020-2022. Pre-alpha."
|
||
run/main_scene="res://scenes/main_menu.tscn"
|
||
config/features=PackedStringArray("4.6", "GL Compatibility")
|
||
|
||
[autoload]
|
||
|
||
GameState="*res://scripts/util/game_state.gd"
|
||
TextureGen="*res://scripts/util/texture_generator.gd"
|
||
SceneManager="*res://scripts/util/scene_manager.gd"
|
||
DialogManager="*res://scenes/components/dialog_ui.tscn"
|
||
PauseMenu="*res://scenes/components/pause_menu.tscn"
|
||
|
||
[display]
|
||
|
||
window/size/viewport_width=640
|
||
window/size/viewport_height=360
|
||
window/size/window_width_override=1920
|
||
window/size/window_height_override=1080
|
||
window/stretch/mode="canvas_items"
|
||
window/stretch/aspect="keep"
|
||
|
||
[input]
|
||
|
||
move_forward={
|
||
"deadzone": 0.5,
|
||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":119,"location":0,"echo":false,"script":null)
|
||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
||
]
|
||
}
|
||
move_back={
|
||
"deadzone": 0.5,
|
||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"location":0,"echo":false,"script":null)
|
||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
||
]
|
||
}
|
||
move_left={
|
||
"deadzone": 0.5,
|
||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"location":0,"echo":false,"script":null)
|
||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
||
]
|
||
}
|
||
move_right={
|
||
"deadzone": 0.5,
|
||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"location":0,"echo":false,"script":null)
|
||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
||
]
|
||
}
|
||
|
||
[rendering]
|
||
|
||
textures/canvas_textures/default_texture_filter=0
|
||
renderer/rendering_method="gl_compatibility"
|
||
renderer/rendering_method.mobile="gl_compatibility"
|