Small extensions engine module for GODOT.
Go to file
Relintai 6b55d98206 Updated the readme. 2023-01-09 21:17:03 +01:00
doc_classes Re-extracted the class docs. 2022-01-12 22:28:02 +01:00
.gitignore Work on a new editor plugin. 2019-07-05 16:41:48 +02:00
LICENSE Updated the copyright headers. 2022-01-12 22:28:21 +01:00
README.md Updated the readme. 2023-01-09 21:17:03 +01:00
SCsub Added a new InputMapEditor. I took the ProjectSettingsEditor and started refactoring it. Not yet finished. 2020-07-30 21:32:05 +02:00
bs_input_event_key.cpp Work on fixing the compile for 4.0. 2022-02-08 11:52:10 +01:00
bs_input_event_key.h Updated the copyright headers. 2022-01-12 22:28:21 +01:00
config.py Re-extracted the class docs. 2022-01-12 22:28:02 +01:00
config.pyc Initial commit. 2019-04-20 14:54:22 +02:00
input_map_editor.cpp Work on fixing compile. 2023-01-09 01:18:02 +01:00
input_map_editor.h Use BSInputEventKey, and bind queue_save(). 2020-07-30 23:49:48 +02:00
register_types.cpp Updated register_types.h and cpp to the current godot 4 style. 2023-01-08 15:56:00 +01:00
register_types.h Updated register_types.h and cpp to the current godot 4 style. 2023-01-08 15:56:00 +01:00
touch_button.cpp Work on fixing compile. 2023-01-09 01:18:02 +01:00
touch_button.h Updated the copyright headers. 2022-01-12 22:28:21 +01:00

README.md

UI Extensions

This is a c++ engine module for the Godot engine, containing smaller utilities.

It supports both godot 3.2 and 4.0 (master last tested commit). Note that since 4.0 is still in very early stages I only check whether it works from time to time.

Godot Version Support

This branch tries to follow godot's master branch (as much as I have time).

For different godot versions look at the other branches.

Status for this branch: Update for 4.0 is work in progress.

TouchButton

A Control based button, that handles multitouch properly.

BSInputEventKey

An inputEventKey implementation, that matches actions exactly.

For example with the default godot implementation if you have an action that gets triggered with the key E then Ctrl-E will also trigger it.

This has the side effect, that if you bind an action to E, and an another one to Ctrl-E, then hitting Ctrl-E will trigger both.

This implementation changes that behaviour.

However, you do need to replace normal input events at startup like this:

func _ready():
	var actions : Array = InputMap.get_actions()
	
	for action in actions:
		var acts : Array = InputMap.get_action_list(action)
		
		for i in range(len(acts)):
			var a = acts[i]
			if a is InputEventKey:
				var nie : BSInputEventKey = BSInputEventKey.new()
				nie.from_input_event_key(a as InputEventKey)
				acts[i] = nie
				
				InputMap.action_erase_event(action, a)
				InputMap.action_add_event(action, nie)

I recommend putting this code into a singleton.

Building

  1. Get the source code for the engine.

If you want Godot 3.2: git clone -b 3.2 https://github.com/godotengine/godot.git godot

If you want Godot 4.0: git clone https://github.com/godotengine/godot.git godot

  1. Go into Godot's modules directory.
cd ./godot/modules/
  1. Clone this repository
git clone https://github.com/Relintai/ui_extensions ui_extensions
  1. Build Godot. Tutorial