You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
	
	
		
			
				
					
						
							|  |  |  | @tool | 
					
						
							|  |  |  | extends Sprite2D | 
					
						
							|  |  |  | class_name InputItem | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @export var input_action: String: | 
					
						
							|  |  |  | 	set(value): | 
					
						
							|  |  |  | 		input_action = value | 
					
						
							|  |  |  | 		_on_input_action_set() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @export var detail_rate: float: | 
					
						
							|  |  |  | 	set(value): | 
					
						
							|  |  |  | 		detail_rate = value | 
					
						
							|  |  |  | 		modulate.a = value | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func _ready() -> void: | 
					
						
							|  |  |  | 	if not Engine.is_editor_hint(): | 
					
						
							|  |  |  | 		SignalManager.input_device_change.connect(_on_input_device_change) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func _on_input_device_change() -> void: | 
					
						
							|  |  |  | 	_on_input_action_set() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func _on_input_action_set(): | 
					
						
							|  |  |  | 	var actions = InputMap.get_actions() | 
					
						
							|  |  |  | 	for action in actions: | 
					
						
							|  |  |  | 		if not action == input_action: | 
					
						
							|  |  |  | 			continue | 
					
						
							|  |  |  | 		var events = InputMap.action_get_events(action) | 
					
						
							|  |  |  | 		for event in events: | 
					
						
							|  |  |  | 			if event is InputEventJoypadButton: | 
					
						
							|  |  |  | 				if not Global.controller_type == Enum.EControllerType.Joypad: | 
					
						
							|  |  |  | 					continue | 
					
						
							|  |  |  | 				match event.button_index: | 
					
						
							|  |  |  | 					JOY_BUTTON_A: frame = 1 | 
					
						
							|  |  |  | 					JOY_BUTTON_B: frame = 2 | 
					
						
							|  |  |  | 					JOY_BUTTON_X: frame = 3 | 
					
						
							|  |  |  | 					JOY_BUTTON_Y: frame = 4 | 
					
						
							|  |  |  | 					JOY_BUTTON_LEFT_STICK: frame = 5 | 
					
						
							|  |  |  | 					JOY_BUTTON_RIGHT_STICK: frame = 6 | 
					
						
							|  |  |  | 					JOY_BUTTON_LEFT_SHOULDER: frame = 7 | 
					
						
							|  |  |  | 					JOY_BUTTON_RIGHT_SHOULDER: frame = 8 | 
					
						
							|  |  |  | 					JOY_BUTTON_BACK: frame = 9 | 
					
						
							|  |  |  | 					JOY_BUTTON_START: frame = 10 | 
					
						
							|  |  |  | 					JOY_BUTTON_GUIDE: frame = 11 | 
					
						
							|  |  |  | 					_: continue | 
					
						
							|  |  |  | 				return | 
					
						
							|  |  |  | 			elif event is InputEventKey: | 
					
						
							|  |  |  | 				if not Global.controller_type == Enum.EControllerType.Keyboard: | 
					
						
							|  |  |  | 					continue | 
					
						
							|  |  |  | 				match event.physical_keycode: | 
					
						
							|  |  |  | 					KEY_F1: frame = 12 | 
					
						
							|  |  |  | 					KEY_F2: frame = 13 | 
					
						
							|  |  |  | 					KEY_F3: frame = 14 | 
					
						
							|  |  |  | 					KEY_F4: frame = 15 | 
					
						
							|  |  |  | 					KEY_F5: frame = 16 | 
					
						
							|  |  |  | 					KEY_F6: frame = 17 | 
					
						
							|  |  |  | 					KEY_F7: frame = 18 | 
					
						
							|  |  |  | 					KEY_F8: frame = 19 | 
					
						
							|  |  |  | 					KEY_F9: frame = 20 | 
					
						
							|  |  |  | 					KEY_F10: frame = 21 | 
					
						
							|  |  |  | 					KEY_F11: frame = 22 | 
					
						
							|  |  |  | 					KEY_F12: frame = 23 | 
					
						
							|  |  |  | 					KEY_QUOTELEFT: frame = 24 | 
					
						
							|  |  |  | 					KEY_1: frame = 25 | 
					
						
							|  |  |  | 					KEY_2: frame = 26 | 
					
						
							|  |  |  | 					KEY_3: frame = 27 | 
					
						
							|  |  |  | 					KEY_4: frame = 28 | 
					
						
							|  |  |  | 					KEY_5: frame = 29 | 
					
						
							|  |  |  | 					KEY_6: frame = 30 | 
					
						
							|  |  |  | 					KEY_7: frame = 31 | 
					
						
							|  |  |  | 					KEY_8: frame = 32 | 
					
						
							|  |  |  | 					KEY_9: frame = 33 | 
					
						
							|  |  |  | 					KEY_0: frame = 34 | 
					
						
							|  |  |  | 					KEY_TAB: frame = 36 | 
					
						
							|  |  |  | 					KEY_Q: frame = 37 | 
					
						
							|  |  |  | 					KEY_W: frame = 38 | 
					
						
							|  |  |  | 					KEY_E: frame = 39 | 
					
						
							|  |  |  | 					KEY_R: frame = 40 | 
					
						
							|  |  |  | 					KEY_T: frame = 41 | 
					
						
							|  |  |  | 					KEY_Y: frame = 42 | 
					
						
							|  |  |  | 					KEY_U: frame = 43 | 
					
						
							|  |  |  | 					KEY_I: frame = 44 | 
					
						
							|  |  |  | 					KEY_O: frame = 45 | 
					
						
							|  |  |  | 					KEY_P: frame = 46 | 
					
						
							|  |  |  | 					KEY_CAPSLOCK: frame = 48 | 
					
						
							|  |  |  | 					KEY_A: frame = 49 | 
					
						
							|  |  |  | 					KEY_S: frame = 50 | 
					
						
							|  |  |  | 					KEY_D: frame = 51 | 
					
						
							|  |  |  | 					KEY_F: frame = 52 | 
					
						
							|  |  |  | 					KEY_G: frame = 53 | 
					
						
							|  |  |  | 					KEY_H: frame = 54 | 
					
						
							|  |  |  | 					KEY_J: frame = 55 | 
					
						
							|  |  |  | 					KEY_K: frame = 56 | 
					
						
							|  |  |  | 					KEY_L: frame = 57 | 
					
						
							|  |  |  | 					KEY_SHIFT: frame = 60 | 
					
						
							|  |  |  | 					KEY_Z: frame = 61 | 
					
						
							|  |  |  | 					KEY_X: frame = 62 | 
					
						
							|  |  |  | 					KEY_C: frame = 63 | 
					
						
							|  |  |  | 					KEY_V: frame = 64 | 
					
						
							|  |  |  | 					KEY_B: frame = 65 | 
					
						
							|  |  |  | 					KEY_N: frame = 66 | 
					
						
							|  |  |  | 					KEY_M: frame = 67 | 
					
						
							|  |  |  | 					KEY_CTRL: frame = 72 | 
					
						
							|  |  |  | 					KEY_ALT: frame = 73 | 
					
						
							|  |  |  | 					KEY_SPACE: frame = 74 | 
					
						
							|  |  |  | 					KEY_UP: frame = 75 | 
					
						
							|  |  |  | 					KEY_DOWN: frame = 76 | 
					
						
							|  |  |  | 					KEY_LEFT: frame = 77 | 
					
						
							|  |  |  | 					KEY_RIGHT: frame = 78 | 
					
						
							|  |  |  | 					KEY_ESCAPE: frame = 79 | 
					
						
							|  |  |  | 					KEY_ENTER: frame = 80 | 
					
						
							|  |  |  | 					_: continue | 
					
						
							|  |  |  | 				return | 
					
						
							|  |  |  | 			else: | 
					
						
							|  |  |  | 				break | 
					
						
							|  |  |  | 	frame = 0 |