generated from krampus/template-godot4
	Compare commits
	
		
			No commits in common. "f75af2196de693b4a5cd4cbcb61257663459f508" and "01df07eb11c140a7f6a66c262baa9dc6045ea89a" have entirely different histories.
		
	
	
		
			f75af2196d
			...
			01df07eb11
		
	
		
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -3,6 +3,7 @@ | |||||||
| 
 | 
 | ||||||
| # Godot-specific ignores | # Godot-specific ignores | ||||||
| .import/ | .import/ | ||||||
|  | override.cfg | ||||||
| export.cfg | export.cfg | ||||||
| export_presets.cfg | export_presets.cfg | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,6 +1,4 @@ | |||||||
| keys,en | keys,en | ||||||
| UI_UNSET,unset |  | ||||||
| UI_LISTEN,listening... |  | ||||||
| ACTION_camera_forward,"Forward (free camera)" | ACTION_camera_forward,"Forward (free camera)" | ||||||
| ACTION_camera_back,"Backward (free camera)" | ACTION_camera_back,"Backward (free camera)" | ||||||
| ACTION_camera_left,"Left (free camera)" | ACTION_camera_left,"Left (free camera)" | ||||||
|  | |||||||
| 
 | 
| @ -13,7 +13,6 @@ config_version=5 | |||||||
| config/name="GFOLF 2" | config/name="GFOLF 2" | ||||||
| config/description="GFOLF: Combat Golf Action" | config/description="GFOLF: Combat Golf Action" | ||||||
| run/main_scene="res://src/game/game.tscn" | run/main_scene="res://src/game/game.tscn" | ||||||
| config/project_settings_override="user://settings.godot" |  | ||||||
| config/features=PackedStringArray("4.3", "Forward Plus") | config/features=PackedStringArray("4.3", "Forward Plus") | ||||||
| run/max_fps=60 | run/max_fps=60 | ||||||
| 
 | 
 | ||||||
| @ -21,7 +20,6 @@ run/max_fps=60 | |||||||
| 
 | 
 | ||||||
| ClubCatalog="*res://src/equipment/clubs/club_catalog.tscn" | ClubCatalog="*res://src/equipment/clubs/club_catalog.tscn" | ||||||
| GameSettings="*res://src/game/game_settings.gd" | GameSettings="*res://src/game/game_settings.gd" | ||||||
| BindingLoader="*res://src/game/binding_loader.gd" |  | ||||||
| 
 | 
 | ||||||
| [debug] | [debug] | ||||||
| 
 | 
 | ||||||
| @ -165,31 +163,6 @@ select_putter={ | |||||||
| "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":53,"key_label":0,"unicode":53,"location":0,"echo":false,"script":null) | "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":53,"key_label":0,"unicode":53,"location":0,"echo":false,"script":null) | ||||||
| ] | ] | ||||||
| } | } | ||||||
| club_next={ |  | ||||||
| "deadzone": 0.5, |  | ||||||
| "events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(105, 13),"global_position":Vector2(114, 59),"factor":1.0,"button_index":8,"canceled":false,"pressed":true,"double_click":false,"script":null) |  | ||||||
| ] |  | ||||||
| } |  | ||||||
| club_previous={ |  | ||||||
| "deadzone": 0.5, |  | ||||||
| "events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(277, 2),"global_position":Vector2(286, 48),"factor":1.0,"button_index":9,"canceled":false,"pressed":true,"double_click":false,"script":null) |  | ||||||
| ] |  | ||||||
| } |  | ||||||
| ball_next={ |  | ||||||
| "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":4194306,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) |  | ||||||
| ] |  | ||||||
| } |  | ||||||
| ball_previous={ |  | ||||||
| "deadzone": 0.5, |  | ||||||
| "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":true,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194306,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) |  | ||||||
| ] |  | ||||||
| } |  | ||||||
| pause={ |  | ||||||
| "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":4194305,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) |  | ||||||
| ] |  | ||||||
| } |  | ||||||
| debug_1={ | debug_1={ | ||||||
| "deadzone": 0.5, | "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":4194332,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) | "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":4194332,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) | ||||||
| @ -210,9 +183,30 @@ debug_4={ | |||||||
| "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":4194335,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) | "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":4194335,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) | ||||||
| ] | ] | ||||||
| } | } | ||||||
| debug_5={ | pause={ | ||||||
| "deadzone": 0.5, | "deadzone": 0.5, | ||||||
| "events": [] | "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":4194305,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) | ||||||
|  | ] | ||||||
|  | } | ||||||
|  | ball_next={ | ||||||
|  | "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":4194306,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) | ||||||
|  | ] | ||||||
|  | } | ||||||
|  | ball_previous={ | ||||||
|  | "deadzone": 0.5, | ||||||
|  | "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":true,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194306,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) | ||||||
|  | ] | ||||||
|  | } | ||||||
|  | club_next={ | ||||||
|  | "deadzone": 0.5, | ||||||
|  | "events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(105, 13),"global_position":Vector2(114, 59),"factor":1.0,"button_index":8,"canceled":false,"pressed":true,"double_click":false,"script":null) | ||||||
|  | ] | ||||||
|  | } | ||||||
|  | club_previous={ | ||||||
|  | "deadzone": 0.5, | ||||||
|  | "events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(277, 2),"global_position":Vector2(286, 48),"factor":1.0,"button_index":9,"canceled":false,"pressed":true,"double_click":false,"script":null) | ||||||
|  | ] | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| [internationalization] | [internationalization] | ||||||
|  | |||||||
| @ -1,35 +0,0 @@ | |||||||
| class_name BindingLoaderType extends Node |  | ||||||
| ## Handles persisting action input bindings. |  | ||||||
| 
 |  | ||||||
| const BINDINGS_FILE := "user://bindings.tres" |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| func _ready() -> void: |  | ||||||
| 	# Map may not be defined if no keybinds have been written |  | ||||||
| 	if FileAccess.file_exists(BINDINGS_FILE): |  | ||||||
| 		print_debug("Reading keybinds from ", BINDINGS_FILE) |  | ||||||
| 		var map: BindingMap = load(BINDINGS_FILE) as BindingMap |  | ||||||
| 
 |  | ||||||
| 		# Overwrite InputMap with loaded bindings |  | ||||||
| 		for action: StringName in map.bindings.keys(): |  | ||||||
| 			# Clear existing bindings |  | ||||||
| 			InputMap.action_erase_events(action) |  | ||||||
| 			# Apply loaded binding |  | ||||||
| 			var event: InputEvent = map.bindings[action] |  | ||||||
| 			if event: |  | ||||||
| 				InputMap.action_add_event(action, event) |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| func write() -> void: |  | ||||||
| 	# Build map from input actions |  | ||||||
| 	var map: BindingMap = BindingMap.new() |  | ||||||
| 	for action: StringName in InputMap.get_actions(): |  | ||||||
| 		var events := InputMap.action_get_events(action) |  | ||||||
| 		if events: |  | ||||||
| 			map.bindings[action] = events[0] |  | ||||||
| 		else: |  | ||||||
| 			map.bindings[action] = null |  | ||||||
| 
 |  | ||||||
| 	# Write to disk |  | ||||||
| 	print_debug("Writing keybinds to ", BINDINGS_FILE) |  | ||||||
| 	ResourceSaver.save(map, BINDINGS_FILE) |  | ||||||
| @ -1,8 +1,6 @@ | |||||||
| class_name GameSettingsType extends Node | class_name GameSettingsType extends Node | ||||||
| ## Container for project settings, for quick runtime access. | ## Container for project settings, for quick runtime access. | ||||||
| 
 | 
 | ||||||
| var settings_file: String |  | ||||||
| 
 |  | ||||||
| var free_camera_speed: float | var free_camera_speed: float | ||||||
| var x_sensitivity: float | var x_sensitivity: float | ||||||
| var y_sensitivity: float | var y_sensitivity: float | ||||||
| @ -18,8 +16,6 @@ func _init() -> void: | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| func _read_settings() -> void: | func _read_settings() -> void: | ||||||
| 	settings_file = ProjectSettings.get_setting("application/config/project_settings_override") |  | ||||||
| 
 |  | ||||||
| 	free_camera_speed = ProjectSettings.get_setting("game/config/controls/camera/free_camera_speed") | 	free_camera_speed = ProjectSettings.get_setting("game/config/controls/camera/free_camera_speed") | ||||||
| 	x_sensitivity = ProjectSettings.get_setting("game/config/controls/camera/x_axis_sensitivity") | 	x_sensitivity = ProjectSettings.get_setting("game/config/controls/camera/x_axis_sensitivity") | ||||||
| 	y_sensitivity = ProjectSettings.get_setting("game/config/controls/camera/y_axis_sensitivity") | 	y_sensitivity = ProjectSettings.get_setting("game/config/controls/camera/y_axis_sensitivity") | ||||||
|  | |||||||
| @ -80,11 +80,6 @@ HeaderMedium/font_sizes/font_size = 24 | |||||||
| HeaderSmall/font_sizes/font_size = 20 | HeaderSmall/font_sizes/font_size = 20 | ||||||
| HeaderXLarge/base_type = &"Label" | HeaderXLarge/base_type = &"Label" | ||||||
| HeaderXLarge/font_sizes/font_size = 36 | HeaderXLarge/font_sizes/font_size = 36 | ||||||
| InputBindButton/base_type = &"UIButton" |  | ||||||
| InputBindButton/colors/font_color = Color(1, 1, 0.870588, 1) |  | ||||||
| InputBindButton/constants/outline_size = 8 |  | ||||||
| InputBindButton/font_sizes/font_size = 32 |  | ||||||
| InputBindButton/fonts/font = ExtResource("2_8kux8") |  | ||||||
| InputPrompt/base_type = &"Label" | InputPrompt/base_type = &"Label" | ||||||
| InputPrompt/colors/font_color = Color(1, 1, 0.870588, 1) | InputPrompt/colors/font_color = Color(1, 1, 0.870588, 1) | ||||||
| InputPrompt/constants/outline_size = 8 | InputPrompt/constants/outline_size = 8 | ||||||
|  | |||||||
| @ -2,21 +2,12 @@ class_name ControlBinding extends CheckerContainer | |||||||
| ## Input for rebinding an action. | ## Input for rebinding an action. | ||||||
| 
 | 
 | ||||||
| const ACTION_KEY_FMT := "ACTION_{0}" | const ACTION_KEY_FMT := "ACTION_{0}" | ||||||
| const LISTENING_TEXT := "UI_LISTEN" |  | ||||||
| const SCENE := preload("res://src/ui/menus/settings_menu/control_binding/control_binding.tscn") | const SCENE := preload("res://src/ui/menus/settings_menu/control_binding/control_binding.tscn") | ||||||
| 
 | 
 | ||||||
| const MOTION_THRESHOLD := 0.5 |  | ||||||
| 
 |  | ||||||
| @export var key: StringName | @export var key: StringName | ||||||
| 
 | 
 | ||||||
| var listening: bool = false: |  | ||||||
| 	set(value): |  | ||||||
| 		if button: |  | ||||||
| 			button.disabled = value |  | ||||||
| 		listening = value |  | ||||||
| 
 |  | ||||||
| @onready var action: Label = %Action | @onready var action: Label = %Action | ||||||
| @onready var button: Button = %Button | @onready var binding: Label = %Binding | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| func _ready() -> void: | func _ready() -> void: | ||||||
| @ -30,73 +21,10 @@ func _ready() -> void: | |||||||
| 	action.text = loc_action if loc_action else key | 	action.text = loc_action if loc_action else key | ||||||
| 
 | 
 | ||||||
| 	# Set the binding label | 	# Set the binding label | ||||||
| 	_set_label_from_binding() |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| func _set_label_from_binding() -> void: |  | ||||||
| 	var actions := InputMap.action_get_events(key) | 	var actions := InputMap.action_get_events(key) | ||||||
| 	if actions: | 	if actions: | ||||||
| 		var primary := actions[0] | 		var primary := actions[0] | ||||||
| 		button.text = PromptMap.from_event(primary) | 		binding.text = PromptMap.from_event(primary) | ||||||
| 		if button.text == PromptMap.UNKNOWN_INPUT_SYMBOL: |  | ||||||
| 			print_debug("No mapping for input event: ", primary) |  | ||||||
| 		# Special case: Can't rebind things bound to ESC |  | ||||||
| 		if primary is InputEventKey and (primary as InputEventKey).physical_keycode == KEY_ESCAPE: |  | ||||||
| 			button.disabled = true |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| func _input(event: InputEvent) -> void: |  | ||||||
| 	if not listening: |  | ||||||
| 		return |  | ||||||
| 
 |  | ||||||
| 	if event is InputEventKey: |  | ||||||
| 		var key_event: InputEventKey = event |  | ||||||
| 		if ( |  | ||||||
| 			key_event.physical_keycode in [KEY_CTRL, KEY_ALT, KEY_SHIFT, KEY_META] |  | ||||||
| 			and key_event.pressed |  | ||||||
| 		): |  | ||||||
| 			# Ignore modifier key until release |  | ||||||
| 			return |  | ||||||
| 		if key_event.physical_keycode == KEY_ESCAPE: |  | ||||||
| 			get_viewport().set_input_as_handled() |  | ||||||
| 			cancel_rebinding() |  | ||||||
| 			return |  | ||||||
| 
 |  | ||||||
| 	if event is InputEventJoypadMotion: |  | ||||||
| 		var motion_event: InputEventJoypadMotion = event |  | ||||||
| 		if abs(motion_event.axis_value) < MOTION_THRESHOLD: |  | ||||||
| 			# Ignore axis motion unless it's over our threshold |  | ||||||
| 			return |  | ||||||
| 
 |  | ||||||
| 	if ( |  | ||||||
| 		event is InputEventKey |  | ||||||
| 		or event is InputEventMouseButton |  | ||||||
| 		or event is InputEventJoypadButton |  | ||||||
| 		or event is InputEventJoypadMotion |  | ||||||
| 	): |  | ||||||
| 		get_viewport().set_input_as_handled() |  | ||||||
| 		rebind(event) |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| func start_listening() -> void: |  | ||||||
| 	button.text = LISTENING_TEXT |  | ||||||
| 	listening = true |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| func cancel_rebinding() -> void: |  | ||||||
| 	_set_label_from_binding() |  | ||||||
| 	listening = false |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| func rebind(event: InputEvent) -> void: |  | ||||||
| 	# Clear previous binding |  | ||||||
| 	InputMap.action_erase_events(key) |  | ||||||
| 	# Add new binding |  | ||||||
| 	InputMap.action_add_event(key, event) |  | ||||||
| 	# Update label |  | ||||||
| 	_set_label_from_binding() |  | ||||||
| 
 |  | ||||||
| 	listening = false |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| static func create(_key: StringName) -> ControlBinding: | static func create(_key: StringName) -> ControlBinding: | ||||||
|  | |||||||
| @ -28,7 +28,21 @@ text = "Action" | |||||||
| unique_name_in_owner = true | unique_name_in_owner = true | ||||||
| custom_minimum_size = Vector2(300, 42) | custom_minimum_size = Vector2(300, 42) | ||||||
| layout_mode = 2 | layout_mode = 2 | ||||||
| theme_type_variation = &"InputBindButton" |  | ||||||
| text = "UI_UNSET" |  | ||||||
| 
 | 
 | ||||||
| [connection signal="pressed" from="MarginContainer/HBoxContainer/Button" to="." method="start_listening"] | [node name="Binding" type="Label" parent="MarginContainer/HBoxContainer/Button"] | ||||||
|  | unique_name_in_owner = true | ||||||
|  | layout_mode = 1 | ||||||
|  | anchors_preset = 8 | ||||||
|  | anchor_left = 0.5 | ||||||
|  | anchor_top = 0.5 | ||||||
|  | anchor_right = 0.5 | ||||||
|  | anchor_bottom = 0.5 | ||||||
|  | offset_left = -13.0 | ||||||
|  | offset_top = -19.5 | ||||||
|  | offset_right = 13.0 | ||||||
|  | offset_bottom = 19.5 | ||||||
|  | grow_horizontal = 2 | ||||||
|  | grow_vertical = 2 | ||||||
|  | theme_type_variation = &"InputPrompt" | ||||||
|  | text = "unset" | ||||||
|  | horizontal_alignment = 1 | ||||||
|  | |||||||
| @ -2,6 +2,7 @@ extends MarginContainer | |||||||
| ## Menu allowing the user to adjust game configuration. | ## Menu allowing the user to adjust game configuration. | ||||||
| 
 | 
 | ||||||
| const SETTINGS_GROUP := "Settings" | const SETTINGS_GROUP := "Settings" | ||||||
|  | const SETTINGS_FILE := "override.cfg" | ||||||
| 
 | 
 | ||||||
| @onready var control_binding_list: VBoxContainer = %ControlBindingList | @onready var control_binding_list: VBoxContainer = %ControlBindingList | ||||||
| 
 | 
 | ||||||
| @ -17,6 +18,7 @@ func _get_settings_elements() -> Array[Setting]: | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| func populate_control_bindings() -> void: | func populate_control_bindings() -> void: | ||||||
|  | 	InputMap.get | ||||||
| 	for action: StringName in InputMap.get_actions(): | 	for action: StringName in InputMap.get_actions(): | ||||||
| 		if not action.begins_with("ui_"): | 		if not action.begins_with("ui_"): | ||||||
| 			control_binding_list.add_child(ControlBinding.create(action)) | 			control_binding_list.add_child(ControlBinding.create(action)) | ||||||
| @ -35,9 +37,7 @@ func apply() -> void: | |||||||
| 
 | 
 | ||||||
| ## Write all applied settings to disk. | ## Write all applied settings to disk. | ||||||
| func save_settings() -> void: | func save_settings() -> void: | ||||||
| 	print_debug("Writing settings to ", Game.settings.settings_file) | 	ProjectSettings.save_custom(SETTINGS_FILE) | ||||||
| 	ProjectSettings.save_custom(Game.settings.settings_file) |  | ||||||
| 	BindingLoader.write() |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## Apply settings and close menu. | ## Apply settings and close menu. | ||||||
|  | |||||||
| @ -1,4 +0,0 @@ | |||||||
| class_name BindingMap extends Resource |  | ||||||
| ## Serializable action input map. Used by `BindingLoader`. |  | ||||||
| 
 |  | ||||||
| @export var bindings: Dictionary |  | ||||||
| @ -96,10 +96,10 @@ const MOUSE := { | |||||||
| 	MOUSE_BUTTON_LEFT: PromptFont.MOUSE_1, | 	MOUSE_BUTTON_LEFT: PromptFont.MOUSE_1, | ||||||
| 	MOUSE_BUTTON_RIGHT: PromptFont.MOUSE_2, | 	MOUSE_BUTTON_RIGHT: PromptFont.MOUSE_2, | ||||||
| 	MOUSE_BUTTON_MIDDLE: PromptFont.MOUSE_3, | 	MOUSE_BUTTON_MIDDLE: PromptFont.MOUSE_3, | ||||||
| 	MOUSE_BUTTON_WHEEL_LEFT: PromptFont.MOUSE_4, | 	MOUSE_BUTTON_XBUTTON1: PromptFont.MOUSE_4, | ||||||
| 	MOUSE_BUTTON_WHEEL_RIGHT: PromptFont.MOUSE_5, | 	MOUSE_BUTTON_XBUTTON2: PromptFont.MOUSE_5, | ||||||
| 	MOUSE_BUTTON_XBUTTON1: PromptFont.MOUSE_6, | 	# PromptFont.MOUSE_6, | ||||||
| 	MOUSE_BUTTON_XBUTTON2: PromptFont.MOUSE_7, | 	# PromptFont.MOUSE_7, | ||||||
| 	# PromptFont.MOUSE_8, | 	# PromptFont.MOUSE_8, | ||||||
| 	MOUSE_BUTTON_WHEEL_UP: PromptFont.MOUSE_SCROLL_UP, | 	MOUSE_BUTTON_WHEEL_UP: PromptFont.MOUSE_SCROLL_UP, | ||||||
| 	MOUSE_BUTTON_WHEEL_DOWN: PromptFont.MOUSE_SCROLL_DOWN | 	MOUSE_BUTTON_WHEEL_DOWN: PromptFont.MOUSE_SCROLL_DOWN | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user