roblox object event
v1.1.0
@rbxts/object-event
Этот пакет NPM для Roblox-TS позволяет разработчикам реализовать пользовательские события для пользовательских классов, не прибегая к BindableEvents
.
Это должно быть особенно полезно для проектов, которые в значительной степени полагаются на парадигму ООП для библиотек и других компонентов игры.
Модуль можно использовать как в сценариях Pure Lua (U) (через Rojo или в любом другом способе) или с помощью Roblox-TS (включает проверку типов компиляции).
/////// Module.ts ///////
import ObjectEvent from "@rbxts/object-event"
const event = new ObjectEvent < [ number , String , Vector3 ] > ( )
event . Connect ( ( id , msg , position ) => {
// We can safely assume that:
// id is a number
// msg is a string
// position is a Vector3
} )
export event
/////// Waiter.server.ts ///////
import { event } from "./Module"
event . Fire ( 10 , "oof" , new Vector3 ( 1 , 2 , 3 ) ) // all good
event . Fire ( 10 , "oof" ) // will not compile!
export { }
Чтобы разрешить все виды аргументов любого числа:
let event = new ObjectEvent < [ ... unknown ] > ( )
ObjectEvent
APIConnect(f)
- f
- это функция, которая принимает аргументы соответственно и возвращает void
. Возвращает ObjectEventConnection
Wait()
- дает нить, пока событие не будет запущено. Возвращает значения, напечатанные соответственно.Fire(...)
- стреляет в мероприятие. Аргументы должны быть одинаковым номером и типом события.Event
- RBXScriptSignal
-подобный интерфейс, поддерживающий Connect()
и Wait()
, на случай, если вы предпочитаете использовать его в качестве BindableEvent.SubscribedConnections
- массив ObjectEventConnection
S со всеми соединениями, которые в настоящее время слушают событие. ObjectEventConnection
Disconnect()
- отключается от событияReconnect()
- возвращает отключениеIsConnected()
- возвращает true
если соединение прислушивается к событию (это, а не отключение () 'Ed), false
в противном случае.Event
- ObjectEvent
связанный с этим соединениемListener
- функция, связанная с этим соединением