CreateSignal (Function): Difference between revisions

From Legacy Roblox Wiki
Jump to navigationJump to search
>JulienDethurens
No edit summary
m Text replacement - "<SyntaxHighlight code="lua">" to "<syntaxhighlight lang="lua">"
 
(3 intermediate revisions by the same user not shown)
Line 10: Line 10:
== Description ==
== Description ==
This function is used to create "custom events" for use in user-code, that act mostly like normal Roblox events. For example:
This function is used to create "custom events" for use in user-code, that act mostly like normal Roblox events. For example:
<code lua>
<syntaxhighlight lang="lua">
local lib = assert(LoadLibrary('RbxUtility'))
local lib = assert(LoadLibrary('RbxUtility'))
local sig = lib.CreateSignal()
local sig = lib.CreateSignal()
Line 19: Line 19:
--
--
sig:fire("Hello, World!") --> Makes the event fire, so that all the handlers are called
sig:fire("Hello, World!") --> Makes the event fire, so that all the handlers are called
</code>
</syntaxhighlight>
Note that the LuaSignal class also supports all of the other properties of events, such as wait:
Note that the LuaSignal class also supports all of the other properties of events, such as wait:
<code lua>
<syntaxhighlight lang="lua">
Spawn(function()
Spawn(function()
     local result = sig:wait()
     local result = sig:wait()
Line 27: Line 27:
end)
end)
sig:fire("Continue Message") --> Makes any waiting code continue, as well as firing connected functions
sig:fire("Continue Message") --> Makes any waiting code continue, as well as firing connected functions
</code>
</syntaxhighlight>


==See Also==
==See Also==

Latest revision as of 06:19, 27 April 2023

CreateSignal( )
Returns LuaSignal
Description: Returns a LuaSignal object which acts much like the real RBXScriptSignal objects, which ROBLOX events use, only implemented in-Lua for full control from within scripts.


Description

This function is used to create "custom events" for use in user-code, that act mostly like normal Roblox events. For example:

local lib = assert(LoadLibrary('RbxUtility'))
local sig = lib.CreateSignal()
--
sig:connect(function(message)
    print("Message: "..tostring(message))
end)
--
sig:fire("Hello, World!") --> Makes the event fire, so that all the handlers are called

Note that the LuaSignal class also supports all of the other properties of events, such as wait:

Spawn(function()
    local result = sig:wait()
    print("Result: "..tostring(result))
end)
sig:fire("Continue Message") --> Makes any waiting code continue, as well as firing connected functions

See Also