Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/didier-v/GodotNotificationCenter

A notification center for Godot Engine
https://github.com/didier-v/GodotNotificationCenter

godot godot-engine notifications

Last synced: 6 days ago
JSON representation

A notification center for Godot Engine

Awesome Lists containing this project

README

        

# GodotNotificationCenter
A notification center for [Godot Engine](https://github.com/godotengine/godot)

Compatible with Godot 3

Check branch 2.0 for a project compatible with Godot 1.1 and 2.x

# Installation
Just add notification_center.gd to the autoload settings of your project

You only need the notification_center.gd script.

Check the demo project for more info.

# Usage

Notifications are sent to observers. Any object can be an observer. Notifications can be sent from anywhere in your code.

If you need to add an observer or send a notification, get the root object:

`var nc = get_node("/root/nc") # if you named it nc in the autoload settings`

OR

`var nc = $"/root/nc" # new Godot 3 syntax`

## To add an object as observer
`nc.add_observer(observer,notificationName,action)`

* observer is the object added as an observer
* notificationName is the ID of the notification. It is a String.
* action is the name of a function that must be defined by the observer with 3 parameters:

`func action(observer,notificationName,notificationData):`

* notificationData can by of any type. You can make a dictionary and include every needed data in it. It is sent with the notification.

## To remove an observer
`nc.remove_observer(observer, notificationName)`

you MUST remove an observer, at least when it leaves the scene. Example:

func _exit_tree():
nc.remove_observer(self, notificationName)

## To send a notification
`nc.post_notification(notificationName,notificationData)`

Every observer of notificationName will execute its action.

# Licence
MIT