Update README.md

This commit is contained in:
Mestima 2022-05-14 15:04:30 +03:00
parent e51c3c256d
commit 48c3033e43

View File

@ -1,4 +1,60 @@
# GodotHook # GodotHook
A simple custom event system for Godot Engine A lite custom event system for Godot Engine
// Documentation: todo ## Supported versions
| Godot version | Supported |
| - | - |
| 3.x | yes |
| 4.x | not yet |
## Compilation
- Download GodotHook and place it to the Godot `modules` folder.
- Compile Godot like usual using one of [these guides](https://docs.godotengine.org/en/stable/development/compiling/index.html).
Example compilation `Windows` command: `scons p=windows tools=yes -j4`
## Methods
```gdscript
hook.GetTable()
hook.Add(event: String, uid: String, function: FuncRef)
hook.Call(event: String, args: Array)
hook.Remove(event: String, uid: String)
```
## Usage
`hook.Add` creates a new listening event and `hook.Call` executes all listening events of the same type, for example:
```gdscript
# autorun.gd
func printHookOutput1(a: String, b: String):
print(a, " ", b)
func printHookOutput2(a: String, b: String):
print(a, " ", b)
hook.Add("OnReady", "UniqueName1", funcref(self, "printHookOutput1"))
hook.Add("OnReady", "UniqueName2", funcref(self, "printHookOutput2"))
```
```gdscript
# any node script
func _ready():
hook.Call("OnReady", ["Hey!", "It's OnReady hook!"])
```
`hook.Remove` removes any listening event by its name and type:
```gdscript
# can be executed in any place
hook.Remove("OnReady", "UniqueName")
```
`hook.GetTable` returns a `Dictionary` with all added listening events
```gdscript
# can be executed in any place
var hookTable: Dictionary = hook.GetTable()
```