folt-a / godot-nesink

Pseudo asynchronous scripting helpers for Godot 4.
MIT License
11 stars 1 forks source link
async asynchronous await gdscript godot godot4

English | 日本語 | 简体中文


MIT License


Nesinkrona (for Godot 4)

An addon to enhance the awaitability of GDScript 2.0.




# Multiple Async or Signal or Coroutine can be combined into a new Async
var all_async := Async.all([
    Async.from(_coro), # from Async
    obj.signal,        # from Signal
    func(): return 0   # from Coroutine
])
var result = await all_async.wait()

# or you can await it immediately.
var result = await Async.wait_all([
    Async.from(_coro),
    obj.signal,
    func(): return 0
])

# Includes general patterns for await
Async.all()
Async.all_settled()
Async.any()
Async.race()
Async.wait_all()
Async.wait_all_settled()
Async.wait_any()
Async.wait_race()

# and support continuations and cancellations.
var another_async = async.then(func(prev_result):
    return prev_result * prev_result)
var cancel := Cancel.new()
await another_async.wait(cancel)


How do I use it?


Checking demos

  1. Git clone then open in Godot Engine.
  2. (Select demo/Demo.tscn as Main Scene then) F5!

Add-on installation

  1. Git clone then copy addons/godot-nesink to your project.
  2. Activate Nesinkrona addon.
  3. Code!


And details: 📖 Wiki (Google Translated)




Contributing

We are grateful to the community for contributing bug fixes, documentation, translations, and any other improvements!

Original repository

This repository was transfer from ydipeepo

ありがとうございます……!