Typings for Quenty's Binder (a Nevermore module)
NPM: npm i @rbxts/binder
Yarn: yarn add @rbxts/binder
import Binder from "@rbxts/binder";
class Disco {
constructor(public readonly instance: Instance) {
assert(classIs(instance, "Part"), "Invalid argument #1, Part expected");
}
Update() {
this.instance.BrickColor = BrickColor.random();
}
Destroy() {}
}
const discoBinder = new Binder("Disco", Disco);
discoBinder.Start();
// have some party!
game.GetService("RunService").Heartbeat.Connect(() => {
for (const object of discoBinder.GetAll()) {
object.Update();
}
});
It is the same thing as you normally do in Binder from Luau.
Function
const binder = new Binder("Bird", (inst) => {
print("Wow, a new bird!", inst);
return {
Destroy() {
print("Uh oh, the bird is gone!");
},
};
});
binder.Start();
Object
// Create method is required
const binder = new Binder("Hello", {
Create(instance: Instance) {
print("Wow a new bird!", instance);
return {
Destroy() {
print("Uh oh, the bird is gone!");
},
};
},
});
When creating Binder base class, make sure the first parameter of the constructor function must be Instance
type otherwise it will result a type mismatch error.
Example:
class DummyBinder {
constructor(instance: Instance) {
print(`${instance.GetFullName()} spawned!`);
}
}
You may want to make either Destroy
method either in lowercase
or PascalCase
so that Binder can call it and automatically call the method.
Author: memothelemo
Source Code: https://github.com/memothelemo/rbxts-binder
License: MIT