cluaupp 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/LICENSE +21 -0
- package/README.md +119 -0
- package/bin/cluau.js +4 -0
- package/bin/cluaupp.js +4 -0
- package/docs/README.md +20 -0
- package/docs/architecture.md +110 -0
- package/docs/cli.md +69 -0
- package/docs/comparison.md +37 -0
- package/docs/config.md +31 -0
- package/docs/cpp-advanced.md +71 -0
- package/docs/cpp-const.md +52 -0
- package/docs/cpp-organization.md +61 -0
- package/docs/cpp-safety.md +58 -0
- package/docs/cpp-types.md +66 -0
- package/docs/getting-started.md +169 -0
- package/docs/intro.md +37 -0
- package/docs/libraries.md +77 -0
- package/docs/roblox-api.md +81 -0
- package/docs/syntax.md +131 -0
- package/include/cluaupp/datatypes.hpp +581 -0
- package/include/cluaupp/generated/enums.hpp +4920 -0
- package/include/cluaupp/generated/instances.hpp +12489 -0
- package/include/cluaupp/libs/chrono.hpp +26 -0
- package/include/cluaupp/libs/cmdr.hpp +16 -0
- package/include/cluaupp/libs/dataservice.hpp +141 -0
- package/include/cluaupp/libs/display.hpp +13 -0
- package/include/cluaupp/libs/ezvisual.hpp +18 -0
- package/include/cluaupp/libs/formatnumber.hpp +15 -0
- package/include/cluaupp/libs/fusion.hpp +41 -0
- package/include/cluaupp/libs/iris.hpp +40 -0
- package/include/cluaupp/libs/janitor.hpp +35 -0
- package/include/cluaupp/libs/math.hpp +14 -0
- package/include/cluaupp/libs/module3d.hpp +25 -0
- package/include/cluaupp/libs/net.hpp +42 -0
- package/include/cluaupp/libs/promise.hpp +30 -0
- package/include/cluaupp/libs/spring.hpp +18 -0
- package/include/cluaupp/libs/statemachine.hpp +19 -0
- package/include/cluaupp/libs/stickybillboard.hpp +14 -0
- package/include/cluaupp/libs/topbarplus.hpp +29 -0
- package/include/cluaupp/libs/twinkle.hpp +15 -0
- package/include/cluaupp/libs/vfx.hpp +13 -0
- package/include/cluaupp/libs.hpp +25 -0
- package/include/cluaupp/roblox.hpp +28 -0
- package/package.json +65 -0
- package/runtime/ArrayIndexer/init.luau +144 -0
- package/runtime/Chrono/Client/ClientClock.luau +202 -0
- package/runtime/Chrono/Client/InterpolationBuffer.luau +74 -0
- package/runtime/Chrono/Client/ModelResolver.luau +53 -0
- package/runtime/Chrono/Client/Player.luau +113 -0
- package/runtime/Chrono/Client/Receiver.luau +395 -0
- package/runtime/Chrono/Client/Replicate.luau +333 -0
- package/runtime/Chrono/Client/Sender.luau +205 -0
- package/runtime/Chrono/LICENSE +21 -0
- package/runtime/Chrono/Server/EntityGrid.luau +299 -0
- package/runtime/Chrono/Server/Player.luau +141 -0
- package/runtime/Chrono/Server/Receiver.luau +287 -0
- package/runtime/Chrono/Server/Replicate.luau +415 -0
- package/runtime/Chrono/Server/Sender.luau +306 -0
- package/runtime/Chrono/Server/ServerClock.luau +50 -0
- package/runtime/Chrono/Shared/ApplyMounts.luau +137 -0
- package/runtime/Chrono/Shared/Bin.luau +31 -0
- package/runtime/Chrono/Shared/ClockUnwrap.luau +70 -0
- package/runtime/Chrono/Shared/Config.luau +264 -0
- package/runtime/Chrono/Shared/Entity.luau +1016 -0
- package/runtime/Chrono/Shared/Events.luau +39 -0
- package/runtime/Chrono/Shared/Holder.luau +210 -0
- package/runtime/Chrono/Shared/InterpolationMath.luau +51 -0
- package/runtime/Chrono/Shared/ModelHelper.luau +122 -0
- package/runtime/Chrono/Shared/Remotes/ClientClockRelay.model.json +3 -0
- package/runtime/Chrono/Shared/Remotes/ClientHeartbeat.model.json +3 -0
- package/runtime/Chrono/Shared/Remotes/ClientLoaded.model.json +3 -0
- package/runtime/Chrono/Shared/Remotes/Death.model.json +3 -0
- package/runtime/Chrono/Shared/Remotes/Heartbeat.model.json +3 -0
- package/runtime/Chrono/Shared/Remotes/Replicate.model.json +3 -0
- package/runtime/Chrono/Shared/Remotes/ReplicateFull.model.json +3 -0
- package/runtime/Chrono/Shared/Remotes/SafeReplicate.model.json +3 -0
- package/runtime/Chrono/Shared/ReplicationRules.luau +122 -0
- package/runtime/Chrono/Shared/Signal.luau +219 -0
- package/runtime/Chrono/Shared/Snapshots.luau +218 -0
- package/runtime/Chrono/Shared/Stats.luau +204 -0
- package/runtime/Chrono/Shared/Ticker.luau +112 -0
- package/runtime/Chrono/Shared/Types.luau +247 -0
- package/runtime/Chrono/Shared/Warn.luau +33 -0
- package/runtime/Chrono/Shared/_CUSTOM_MODEL_REP/init.model.json +3 -0
- package/runtime/Chrono/_impl/Client/ClientClock.luau +202 -0
- package/runtime/Chrono/_impl/Client/InterpolationBuffer.luau +74 -0
- package/runtime/Chrono/_impl/Client/ModelResolver.luau +53 -0
- package/runtime/Chrono/_impl/Client/Player.luau +113 -0
- package/runtime/Chrono/_impl/Client/Receiver.luau +395 -0
- package/runtime/Chrono/_impl/Client/Replicate.luau +333 -0
- package/runtime/Chrono/_impl/Client/Sender.luau +205 -0
- package/runtime/Chrono/_impl/LICENSE +21 -0
- package/runtime/Chrono/_impl/Server/EntityGrid.luau +299 -0
- package/runtime/Chrono/_impl/Server/Player.luau +141 -0
- package/runtime/Chrono/_impl/Server/Receiver.luau +287 -0
- package/runtime/Chrono/_impl/Server/Replicate.luau +415 -0
- package/runtime/Chrono/_impl/Server/Sender.luau +306 -0
- package/runtime/Chrono/_impl/Server/ServerClock.luau +50 -0
- package/runtime/Chrono/_impl/Shared/ApplyMounts.luau +137 -0
- package/runtime/Chrono/_impl/Shared/Bin.luau +31 -0
- package/runtime/Chrono/_impl/Shared/ClockUnwrap.luau +70 -0
- package/runtime/Chrono/_impl/Shared/Config.luau +264 -0
- package/runtime/Chrono/_impl/Shared/Entity.luau +1016 -0
- package/runtime/Chrono/_impl/Shared/Events.luau +39 -0
- package/runtime/Chrono/_impl/Shared/Holder.luau +210 -0
- package/runtime/Chrono/_impl/Shared/InterpolationMath.luau +51 -0
- package/runtime/Chrono/_impl/Shared/ModelHelper.luau +122 -0
- package/runtime/Chrono/_impl/Shared/Remotes/ClientClockRelay.model.json +3 -0
- package/runtime/Chrono/_impl/Shared/Remotes/ClientHeartbeat.model.json +3 -0
- package/runtime/Chrono/_impl/Shared/Remotes/ClientLoaded.model.json +3 -0
- package/runtime/Chrono/_impl/Shared/Remotes/Death.model.json +3 -0
- package/runtime/Chrono/_impl/Shared/Remotes/Heartbeat.model.json +3 -0
- package/runtime/Chrono/_impl/Shared/Remotes/Replicate.model.json +3 -0
- package/runtime/Chrono/_impl/Shared/Remotes/ReplicateFull.model.json +3 -0
- package/runtime/Chrono/_impl/Shared/Remotes/SafeReplicate.model.json +3 -0
- package/runtime/Chrono/_impl/Shared/ReplicationRules.luau +122 -0
- package/runtime/Chrono/_impl/Shared/Signal.luau +219 -0
- package/runtime/Chrono/_impl/Shared/Snapshots.luau +218 -0
- package/runtime/Chrono/_impl/Shared/Stats.luau +204 -0
- package/runtime/Chrono/_impl/Shared/Ticker.luau +112 -0
- package/runtime/Chrono/_impl/Shared/Types.luau +247 -0
- package/runtime/Chrono/_impl/Shared/Warn.luau +33 -0
- package/runtime/Chrono/_impl/Shared/_CUSTOM_MODEL_REP/init.model.json +3 -0
- package/runtime/Chrono/_impl/init.luau +96 -0
- package/runtime/Chrono/init.luau +14 -0
- package/runtime/Cmdr/BuiltInCommands/Admin/announce.luau +21 -0
- package/runtime/Cmdr/BuiltInCommands/Admin/announceServer.luau +17 -0
- package/runtime/Cmdr/BuiltInCommands/Admin/ban.luau +59 -0
- package/runtime/Cmdr/BuiltInCommands/Admin/banServer.luau +30 -0
- package/runtime/Cmdr/BuiltInCommands/Admin/gotoPlace.luau +35 -0
- package/runtime/Cmdr/BuiltInCommands/Admin/gotoPlaceServer.luau +17 -0
- package/runtime/Cmdr/BuiltInCommands/Admin/kick.luau +19 -0
- package/runtime/Cmdr/BuiltInCommands/Admin/kickServer.luau +27 -0
- package/runtime/Cmdr/BuiltInCommands/Admin/kill.luau +13 -0
- package/runtime/Cmdr/BuiltInCommands/Admin/killServer.luau +13 -0
- package/runtime/Cmdr/BuiltInCommands/Admin/respawn.luau +15 -0
- package/runtime/Cmdr/BuiltInCommands/Admin/respawnServer.luau +7 -0
- package/runtime/Cmdr/BuiltInCommands/Admin/teleport.luau +30 -0
- package/runtime/Cmdr/BuiltInCommands/Admin/teleportServer.luau +26 -0
- package/runtime/Cmdr/BuiltInCommands/Admin/unban.luau +26 -0
- package/runtime/Cmdr/BuiltInCommands/Admin/unbanServer.luau +10 -0
- package/runtime/Cmdr/BuiltInCommands/Debug/blink.luau +35 -0
- package/runtime/Cmdr/BuiltInCommands/Debug/fetch.luau +12 -0
- package/runtime/Cmdr/BuiltInCommands/Debug/fetchServer.luau +7 -0
- package/runtime/Cmdr/BuiltInCommands/Debug/getPlayerPlaceInstance.luau +20 -0
- package/runtime/Cmdr/BuiltInCommands/Debug/getPlayerPlaceInstanceServer.luau +28 -0
- package/runtime/Cmdr/BuiltInCommands/Debug/position.luau +30 -0
- package/runtime/Cmdr/BuiltInCommands/Debug/thru.luau +50 -0
- package/runtime/Cmdr/BuiltInCommands/Debug/uptime.luau +6 -0
- package/runtime/Cmdr/BuiltInCommands/Debug/uptimeServer.luau +12 -0
- package/runtime/Cmdr/BuiltInCommands/Debug/version.luau +12 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/alias.luau +22 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/bind.luau +104 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/clear.luau +20 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/convertTimestamp.luau +18 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/echo.luau +17 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/edit.luau +75 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/exit.luau +11 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/history.luau +27 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/hover.luau +21 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/jsonArrayDecode.luau +25 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/jsonArrayEncode.luau +18 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/len.luau +16 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/math.luau +36 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/pick.luau +21 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/rand.luau +27 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/replace.luau +32 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/resolve.luau +32 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/run.luau +20 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/runLines.luau +34 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/runif.luau +95 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/unbind.luau +27 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/var.luau +29 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/varServer.luau +37 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/varSet.luau +30 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/varSetServer.luau +29 -0
- package/runtime/Cmdr/BuiltInCommands/help.luau +96 -0
- package/runtime/Cmdr/BuiltInTypes/BrickColor.luau +258 -0
- package/runtime/Cmdr/BuiltInTypes/Color3.luau +59 -0
- package/runtime/Cmdr/BuiltInTypes/Command.luau +23 -0
- package/runtime/Cmdr/BuiltInTypes/Duration.luau +111 -0
- package/runtime/Cmdr/BuiltInTypes/JSON.luau +13 -0
- package/runtime/Cmdr/BuiltInTypes/MathOperator.luau +43 -0
- package/runtime/Cmdr/BuiltInTypes/Player.luau +36 -0
- package/runtime/Cmdr/BuiltInTypes/PlayerId.luau +66 -0
- package/runtime/Cmdr/BuiltInTypes/Primitives.luau +145 -0
- package/runtime/Cmdr/BuiltInTypes/StoredKey.luau +33 -0
- package/runtime/Cmdr/BuiltInTypes/Team.luau +49 -0
- package/runtime/Cmdr/BuiltInTypes/Type.luau +23 -0
- package/runtime/Cmdr/BuiltInTypes/URL.luau +18 -0
- package/runtime/Cmdr/BuiltInTypes/UserInput.luau +32 -0
- package/runtime/Cmdr/BuiltInTypes/Vector.luau +58 -0
- package/runtime/Cmdr/CmdrClient/CmdrInterface/AutoComplete.luau +240 -0
- package/runtime/Cmdr/CmdrClient/CmdrInterface/CreateGui.luau +227 -0
- package/runtime/Cmdr/CmdrClient/CmdrInterface/Window.luau +713 -0
- package/runtime/Cmdr/CmdrClient/CmdrInterface/init.luau +18 -0
- package/runtime/Cmdr/CmdrClient/DefaultEventHandlers.luau +18 -0
- package/runtime/Cmdr/CmdrClient/Shared/Argument.luau +395 -0
- package/runtime/Cmdr/CmdrClient/Shared/BuiltInGuards/HasCharacter.luau +39 -0
- package/runtime/Cmdr/CmdrClient/Shared/BuiltInGuards/IsDataStoreAvailable.luau +36 -0
- package/runtime/Cmdr/CmdrClient/Shared/BuiltInGuards/MaxArrayLength.luau +10 -0
- package/runtime/Cmdr/CmdrClient/Shared/BuiltInGuards/MaxStringLength.luau +10 -0
- package/runtime/Cmdr/CmdrClient/Shared/BuiltInGuards/NonEmptyString.luau +10 -0
- package/runtime/Cmdr/CmdrClient/Shared/BuiltInGuards/NotEquals.luau +8 -0
- package/runtime/Cmdr/CmdrClient/Shared/Command.luau +415 -0
- package/runtime/Cmdr/CmdrClient/Shared/Dispatcher.luau +407 -0
- package/runtime/Cmdr/CmdrClient/Shared/Registry.luau +717 -0
- package/runtime/Cmdr/CmdrClient/Shared/Util.luau +879 -0
- package/runtime/Cmdr/CmdrClient/init.luau +377 -0
- package/runtime/Cmdr/LICENSE +21 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Admin/announce.luau +21 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Admin/announceServer.luau +17 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Admin/ban.luau +59 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Admin/banServer.luau +30 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Admin/gotoPlace.luau +35 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Admin/gotoPlaceServer.luau +17 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Admin/kick.luau +19 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Admin/kickServer.luau +27 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Admin/kill.luau +13 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Admin/killServer.luau +13 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Admin/respawn.luau +15 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Admin/respawnServer.luau +7 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Admin/teleport.luau +30 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Admin/teleportServer.luau +26 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Admin/unban.luau +26 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Admin/unbanServer.luau +10 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Debug/blink.luau +35 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Debug/fetch.luau +12 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Debug/fetchServer.luau +7 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Debug/getPlayerPlaceInstance.luau +20 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Debug/getPlayerPlaceInstanceServer.luau +28 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Debug/position.luau +30 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Debug/thru.luau +50 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Debug/uptime.luau +6 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Debug/uptimeServer.luau +12 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Debug/version.luau +12 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/alias.luau +22 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/bind.luau +104 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/clear.luau +20 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/convertTimestamp.luau +18 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/echo.luau +17 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/edit.luau +75 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/exit.luau +11 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/history.luau +27 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/hover.luau +21 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/jsonArrayDecode.luau +25 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/jsonArrayEncode.luau +18 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/len.luau +16 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/math.luau +36 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/pick.luau +21 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/rand.luau +27 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/replace.luau +32 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/resolve.luau +32 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/run.luau +20 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/runLines.luau +34 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/runif.luau +95 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/unbind.luau +27 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/var.luau +29 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/varServer.luau +37 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/varSet.luau +30 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/varSetServer.luau +29 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/help.luau +96 -0
- package/runtime/Cmdr/_impl/BuiltInTypes/BrickColor.luau +258 -0
- package/runtime/Cmdr/_impl/BuiltInTypes/Color3.luau +59 -0
- package/runtime/Cmdr/_impl/BuiltInTypes/Command.luau +23 -0
- package/runtime/Cmdr/_impl/BuiltInTypes/Duration.luau +111 -0
- package/runtime/Cmdr/_impl/BuiltInTypes/JSON.luau +13 -0
- package/runtime/Cmdr/_impl/BuiltInTypes/MathOperator.luau +43 -0
- package/runtime/Cmdr/_impl/BuiltInTypes/Player.luau +36 -0
- package/runtime/Cmdr/_impl/BuiltInTypes/PlayerId.luau +66 -0
- package/runtime/Cmdr/_impl/BuiltInTypes/Primitives.luau +145 -0
- package/runtime/Cmdr/_impl/BuiltInTypes/StoredKey.luau +33 -0
- package/runtime/Cmdr/_impl/BuiltInTypes/Team.luau +49 -0
- package/runtime/Cmdr/_impl/BuiltInTypes/Type.luau +23 -0
- package/runtime/Cmdr/_impl/BuiltInTypes/URL.luau +18 -0
- package/runtime/Cmdr/_impl/BuiltInTypes/UserInput.luau +32 -0
- package/runtime/Cmdr/_impl/BuiltInTypes/Vector.luau +58 -0
- package/runtime/Cmdr/_impl/CmdrClient/CmdrInterface/AutoComplete.luau +240 -0
- package/runtime/Cmdr/_impl/CmdrClient/CmdrInterface/CreateGui.luau +227 -0
- package/runtime/Cmdr/_impl/CmdrClient/CmdrInterface/Window.luau +713 -0
- package/runtime/Cmdr/_impl/CmdrClient/CmdrInterface/init.luau +18 -0
- package/runtime/Cmdr/_impl/CmdrClient/DefaultEventHandlers.luau +18 -0
- package/runtime/Cmdr/_impl/CmdrClient/Shared/Argument.luau +395 -0
- package/runtime/Cmdr/_impl/CmdrClient/Shared/BuiltInGuards/HasCharacter.luau +39 -0
- package/runtime/Cmdr/_impl/CmdrClient/Shared/BuiltInGuards/IsDataStoreAvailable.luau +36 -0
- package/runtime/Cmdr/_impl/CmdrClient/Shared/BuiltInGuards/MaxArrayLength.luau +10 -0
- package/runtime/Cmdr/_impl/CmdrClient/Shared/BuiltInGuards/MaxStringLength.luau +10 -0
- package/runtime/Cmdr/_impl/CmdrClient/Shared/BuiltInGuards/NonEmptyString.luau +10 -0
- package/runtime/Cmdr/_impl/CmdrClient/Shared/BuiltInGuards/NotEquals.luau +8 -0
- package/runtime/Cmdr/_impl/CmdrClient/Shared/Command.luau +415 -0
- package/runtime/Cmdr/_impl/CmdrClient/Shared/Dispatcher.luau +407 -0
- package/runtime/Cmdr/_impl/CmdrClient/Shared/Registry.luau +717 -0
- package/runtime/Cmdr/_impl/CmdrClient/Shared/Util.luau +879 -0
- package/runtime/Cmdr/_impl/CmdrClient/init.luau +377 -0
- package/runtime/Cmdr/_impl/LICENSE +21 -0
- package/runtime/Cmdr/_impl/init.luau +178 -0
- package/runtime/Cmdr/init.luau +8 -0
- package/runtime/DataService/Client.luau +209 -0
- package/runtime/DataService/Data.luau +886 -0
- package/runtime/DataService/Enum.luau +6 -0
- package/runtime/DataService/Enums.luau +10 -0
- package/runtime/DataService/Packages/quicknet/DataTypes.luau +70 -0
- package/runtime/DataService/Packages/quicknet/Enums.luau +85 -0
- package/runtime/DataService/Packages/quicknet/EnumsToNativeTypes.luau +57 -0
- package/runtime/DataService/Packages/quicknet/Parser.luau +355 -0
- package/runtime/DataService/Packages/quicknet/QuickNet.luau +953 -0
- package/runtime/DataService/Packages/quicknet/Serialize.luau +2020 -0
- package/runtime/DataService/Packages/quicknet/Types.luau +72 -0
- package/runtime/DataService/Packages/quicknet/init.luau +1 -0
- package/runtime/DataService/Packages/signal/init.luau +433 -0
- package/runtime/DataService/Path.luau +236 -0
- package/runtime/DataService/ProfileStore.luau +2243 -0
- package/runtime/DataService/Replicator.luau +172 -0
- package/runtime/DataService/Server.luau +412 -0
- package/runtime/DataService/init.luau +204 -0
- package/runtime/Display/LICENSE +201 -0
- package/runtime/Display/_impl/LICENSE +201 -0
- package/runtime/Display/_impl/init.luau +269 -0
- package/runtime/Display/_impl/option.luau +237 -0
- package/runtime/Display/init.luau +10 -0
- package/runtime/Display/option.luau +237 -0
- package/runtime/EzVisualz/Dropshadow.luau +148 -0
- package/runtime/EzVisualz/Gradient.luau +452 -0
- package/runtime/EzVisualz/GradientTemplates/Bubblegum.luau +16 -0
- package/runtime/EzVisualz/GradientTemplates/Chrome.luau +16 -0
- package/runtime/EzVisualz/GradientTemplates/Death.luau +15 -0
- package/runtime/EzVisualz/GradientTemplates/Electric.luau +14 -0
- package/runtime/EzVisualz/GradientTemplates/Fire.luau +13 -0
- package/runtime/EzVisualz/GradientTemplates/Galaxy.luau +11 -0
- package/runtime/EzVisualz/GradientTemplates/Ghost.luau +16 -0
- package/runtime/EzVisualz/GradientTemplates/Gold.luau +14 -0
- package/runtime/EzVisualz/GradientTemplates/Green.luau +14 -0
- package/runtime/EzVisualz/GradientTemplates/Ice.luau +14 -0
- package/runtime/EzVisualz/GradientTemplates/Lava.luau +15 -0
- package/runtime/EzVisualz/GradientTemplates/Matrix.luau +19 -0
- package/runtime/EzVisualz/GradientTemplates/Neon.luau +12 -0
- package/runtime/EzVisualz/GradientTemplates/Oceanic.luau +15 -0
- package/runtime/EzVisualz/GradientTemplates/Rainbow.luau +13 -0
- package/runtime/EzVisualz/GradientTemplates/Silver.luau +12 -0
- package/runtime/EzVisualz/GradientTemplates/Sunset.luau +11 -0
- package/runtime/EzVisualz/GradientTemplates/Zebra.luau +18 -0
- package/runtime/EzVisualz/GradientTemplates/init.luau +9 -0
- package/runtime/EzVisualz/LICENSE.md +21 -0
- package/runtime/EzVisualz/Presets/Bubblegum.luau +36 -0
- package/runtime/EzVisualz/Presets/ChromeStroke.luau +15 -0
- package/runtime/EzVisualz/Presets/DeathStroke.luau +15 -0
- package/runtime/EzVisualz/Presets/ElectricStroke.luau +54 -0
- package/runtime/EzVisualz/Presets/FireStroke.luau +29 -0
- package/runtime/EzVisualz/Presets/GalaxyStroke.luau +31 -0
- package/runtime/EzVisualz/Presets/Ghost.luau +10 -0
- package/runtime/EzVisualz/Presets/GhostStroke.luau +15 -0
- package/runtime/EzVisualz/Presets/Gold.luau +10 -0
- package/runtime/EzVisualz/Presets/GoldStroke.luau +15 -0
- package/runtime/EzVisualz/Presets/GreenOutline.luau +23 -0
- package/runtime/EzVisualz/Presets/IceStroke.luau +15 -0
- package/runtime/EzVisualz/Presets/Lava.luau +9 -0
- package/runtime/EzVisualz/Presets/LavaStroke.luau +13 -0
- package/runtime/EzVisualz/Presets/Matrix.luau +21 -0
- package/runtime/EzVisualz/Presets/NeonStroke.luau +30 -0
- package/runtime/EzVisualz/Presets/OceanicStroke.luau +15 -0
- package/runtime/EzVisualz/Presets/Rainbow.luau +9 -0
- package/runtime/EzVisualz/Presets/RainbowOutline.luau +23 -0
- package/runtime/EzVisualz/Presets/RainbowStroke.luau +13 -0
- package/runtime/EzVisualz/Presets/Shine.luau +48 -0
- package/runtime/EzVisualz/Presets/ShineOutline.luau +66 -0
- package/runtime/EzVisualz/Presets/Silver.luau +10 -0
- package/runtime/EzVisualz/Presets/SilverStroke.luau +15 -0
- package/runtime/EzVisualz/Presets/SunsetStroke.luau +31 -0
- package/runtime/EzVisualz/Presets/WaveStroke.luau +33 -0
- package/runtime/EzVisualz/Presets/Zebra.luau +21 -0
- package/runtime/EzVisualz/Presets/init.luau +9 -0
- package/runtime/EzVisualz/Stroke.luau +167 -0
- package/runtime/EzVisualz/Util.luau +7 -0
- package/runtime/EzVisualz/_impl/Dropshadow.luau +148 -0
- package/runtime/EzVisualz/_impl/Gradient.luau +452 -0
- package/runtime/EzVisualz/_impl/GradientTemplates/Bubblegum.luau +16 -0
- package/runtime/EzVisualz/_impl/GradientTemplates/Chrome.luau +16 -0
- package/runtime/EzVisualz/_impl/GradientTemplates/Death.luau +15 -0
- package/runtime/EzVisualz/_impl/GradientTemplates/Electric.luau +14 -0
- package/runtime/EzVisualz/_impl/GradientTemplates/Fire.luau +13 -0
- package/runtime/EzVisualz/_impl/GradientTemplates/Galaxy.luau +11 -0
- package/runtime/EzVisualz/_impl/GradientTemplates/Ghost.luau +16 -0
- package/runtime/EzVisualz/_impl/GradientTemplates/Gold.luau +14 -0
- package/runtime/EzVisualz/_impl/GradientTemplates/Green.luau +14 -0
- package/runtime/EzVisualz/_impl/GradientTemplates/Ice.luau +14 -0
- package/runtime/EzVisualz/_impl/GradientTemplates/Lava.luau +15 -0
- package/runtime/EzVisualz/_impl/GradientTemplates/Matrix.luau +19 -0
- package/runtime/EzVisualz/_impl/GradientTemplates/Neon.luau +12 -0
- package/runtime/EzVisualz/_impl/GradientTemplates/Oceanic.luau +15 -0
- package/runtime/EzVisualz/_impl/GradientTemplates/Rainbow.luau +13 -0
- package/runtime/EzVisualz/_impl/GradientTemplates/Silver.luau +12 -0
- package/runtime/EzVisualz/_impl/GradientTemplates/Sunset.luau +11 -0
- package/runtime/EzVisualz/_impl/GradientTemplates/Zebra.luau +18 -0
- package/runtime/EzVisualz/_impl/GradientTemplates/init.luau +9 -0
- package/runtime/EzVisualz/_impl/LICENSE.md +21 -0
- package/runtime/EzVisualz/_impl/Presets/Bubblegum.luau +36 -0
- package/runtime/EzVisualz/_impl/Presets/ChromeStroke.luau +15 -0
- package/runtime/EzVisualz/_impl/Presets/DeathStroke.luau +15 -0
- package/runtime/EzVisualz/_impl/Presets/ElectricStroke.luau +54 -0
- package/runtime/EzVisualz/_impl/Presets/FireStroke.luau +29 -0
- package/runtime/EzVisualz/_impl/Presets/GalaxyStroke.luau +31 -0
- package/runtime/EzVisualz/_impl/Presets/Ghost.luau +10 -0
- package/runtime/EzVisualz/_impl/Presets/GhostStroke.luau +15 -0
- package/runtime/EzVisualz/_impl/Presets/Gold.luau +10 -0
- package/runtime/EzVisualz/_impl/Presets/GoldStroke.luau +15 -0
- package/runtime/EzVisualz/_impl/Presets/GreenOutline.luau +23 -0
- package/runtime/EzVisualz/_impl/Presets/IceStroke.luau +15 -0
- package/runtime/EzVisualz/_impl/Presets/Lava.luau +9 -0
- package/runtime/EzVisualz/_impl/Presets/LavaStroke.luau +13 -0
- package/runtime/EzVisualz/_impl/Presets/Matrix.luau +21 -0
- package/runtime/EzVisualz/_impl/Presets/NeonStroke.luau +30 -0
- package/runtime/EzVisualz/_impl/Presets/OceanicStroke.luau +15 -0
- package/runtime/EzVisualz/_impl/Presets/Rainbow.luau +9 -0
- package/runtime/EzVisualz/_impl/Presets/RainbowOutline.luau +23 -0
- package/runtime/EzVisualz/_impl/Presets/RainbowStroke.luau +13 -0
- package/runtime/EzVisualz/_impl/Presets/Shine.luau +48 -0
- package/runtime/EzVisualz/_impl/Presets/ShineOutline.luau +66 -0
- package/runtime/EzVisualz/_impl/Presets/Silver.luau +10 -0
- package/runtime/EzVisualz/_impl/Presets/SilverStroke.luau +15 -0
- package/runtime/EzVisualz/_impl/Presets/SunsetStroke.luau +31 -0
- package/runtime/EzVisualz/_impl/Presets/WaveStroke.luau +33 -0
- package/runtime/EzVisualz/_impl/Presets/Zebra.luau +21 -0
- package/runtime/EzVisualz/_impl/Presets/init.luau +9 -0
- package/runtime/EzVisualz/_impl/Stroke.luau +167 -0
- package/runtime/EzVisualz/_impl/Util.luau +7 -0
- package/runtime/EzVisualz/_impl/init.luau +319 -0
- package/runtime/EzVisualz/_impl/wally.lock +8 -0
- package/runtime/EzVisualz/_impl/wally.toml +8 -0
- package/runtime/EzVisualz/init.luau +9 -0
- package/runtime/EzVisualz/wally.lock +8 -0
- package/runtime/EzVisualz/wally.toml +8 -0
- package/runtime/FormatNumber/LICENSE.md +25 -0
- package/runtime/FormatNumber/Main/DecimalFormatSymbols.lua +43 -0
- package/runtime/FormatNumber/Main/IntegerWidth.lua +41 -0
- package/runtime/FormatNumber/Main/Notation.lua +116 -0
- package/runtime/FormatNumber/Main/Precision.lua +179 -0
- package/runtime/FormatNumber/Main/init.lua +199 -0
- package/runtime/FormatNumber/Simple/init.lua +76 -0
- package/runtime/FormatNumber/Version.lua +82 -0
- package/runtime/FormatNumber/_impl/LICENSE.md +25 -0
- package/runtime/FormatNumber/_impl/Main/DecimalFormatSymbols.lua +43 -0
- package/runtime/FormatNumber/_impl/Main/IntegerWidth.lua +41 -0
- package/runtime/FormatNumber/_impl/Main/Notation.lua +116 -0
- package/runtime/FormatNumber/_impl/Main/Precision.lua +179 -0
- package/runtime/FormatNumber/_impl/Main/init.lua +199 -0
- package/runtime/FormatNumber/_impl/Simple/init.lua +76 -0
- package/runtime/FormatNumber/_impl/Version.lua +82 -0
- package/runtime/FormatNumber/_impl/_internal/class.lua +204 -0
- package/runtime/FormatNumber/_impl/_internal/decimal_conversion.lua +30 -0
- package/runtime/FormatNumber/_impl/_internal/enums.lua +55 -0
- package/runtime/FormatNumber/_impl/_internal/format.lua +342 -0
- package/runtime/FormatNumber/_impl/_internal/formatter_settings.lua +160 -0
- package/runtime/FormatNumber/_impl/_internal/init.lua +8 -0
- package/runtime/FormatNumber/_impl/_internal/skeleton.lua +541 -0
- package/runtime/FormatNumber/_impl/init.lua +20 -0
- package/runtime/FormatNumber/_internal/class.lua +204 -0
- package/runtime/FormatNumber/_internal/decimal_conversion.lua +30 -0
- package/runtime/FormatNumber/_internal/enums.lua +55 -0
- package/runtime/FormatNumber/_internal/format.lua +342 -0
- package/runtime/FormatNumber/_internal/formatter_settings.lua +160 -0
- package/runtime/FormatNumber/_internal/init.lua +8 -0
- package/runtime/FormatNumber/_internal/skeleton.lua +541 -0
- package/runtime/FormatNumber/init.lua +20 -0
- package/runtime/FormatNumber/init.luau +20 -0
- package/runtime/Fusion/Animation/ExternalTime.luau +84 -0
- package/runtime/Fusion/Animation/Spring.luau +313 -0
- package/runtime/Fusion/Animation/Stopwatch.luau +128 -0
- package/runtime/Fusion/Animation/Tween.luau +178 -0
- package/runtime/Fusion/Animation/getTweenDuration.luau +27 -0
- package/runtime/Fusion/Animation/getTweenRatio.luau +47 -0
- package/runtime/Fusion/Animation/lerpType.luau +164 -0
- package/runtime/Fusion/Animation/packType.luau +100 -0
- package/runtime/Fusion/Animation/springCoefficients.luau +80 -0
- package/runtime/Fusion/Animation/unpackType.luau +103 -0
- package/runtime/Fusion/Colour/Oklab.luau +70 -0
- package/runtime/Fusion/Colour/sRGB.luau +47 -0
- package/runtime/Fusion/External.luau +156 -0
- package/runtime/Fusion/ExternalDebug.luau +70 -0
- package/runtime/Fusion/Graph/Observer.luau +111 -0
- package/runtime/Fusion/Graph/castToGraph.luau +29 -0
- package/runtime/Fusion/Graph/change.luau +81 -0
- package/runtime/Fusion/Graph/depend.luau +33 -0
- package/runtime/Fusion/Graph/evaluate.luau +56 -0
- package/runtime/Fusion/Instances/Attribute.luau +58 -0
- package/runtime/Fusion/Instances/AttributeChange.luau +47 -0
- package/runtime/Fusion/Instances/AttributeOut.luau +63 -0
- package/runtime/Fusion/Instances/Child.luau +21 -0
- package/runtime/Fusion/Instances/Children.luau +148 -0
- package/runtime/Fusion/Instances/Hydrate.luau +29 -0
- package/runtime/Fusion/Instances/New.luau +48 -0
- package/runtime/Fusion/Instances/OnChange.luau +50 -0
- package/runtime/Fusion/Instances/OnEvent.luau +54 -0
- package/runtime/Fusion/Instances/Out.luau +69 -0
- package/runtime/Fusion/Instances/Tag.luau +61 -0
- package/runtime/Fusion/Instances/applyInstanceProps.luau +149 -0
- package/runtime/Fusion/Instances/defaultProps.luau +194 -0
- package/runtime/Fusion/LICENSE +21 -0
- package/runtime/Fusion/Logging/formatError.luau +49 -0
- package/runtime/Fusion/Logging/messages.luau +46 -0
- package/runtime/Fusion/Logging/parseError.luau +25 -0
- package/runtime/Fusion/Memory/checkLifetime.luau +134 -0
- package/runtime/Fusion/Memory/deriveScope.luau +24 -0
- package/runtime/Fusion/Memory/deriveScopeImpl.luau +40 -0
- package/runtime/Fusion/Memory/doCleanup.luau +91 -0
- package/runtime/Fusion/Memory/innerScope.luau +34 -0
- package/runtime/Fusion/Memory/insert.luau +22 -0
- package/runtime/Fusion/Memory/needsDestruction.luau +17 -0
- package/runtime/Fusion/Memory/scoped.luau +24 -0
- package/runtime/Fusion/RobloxExternal.luau +98 -0
- package/runtime/Fusion/State/Computed.luau +122 -0
- package/runtime/Fusion/State/For/Disassembly.luau +207 -0
- package/runtime/Fusion/State/For/ForTypes.luau +30 -0
- package/runtime/Fusion/State/For/init.luau +101 -0
- package/runtime/Fusion/State/ForKeys.luau +88 -0
- package/runtime/Fusion/State/ForPairs.luau +91 -0
- package/runtime/Fusion/State/ForValues.luau +88 -0
- package/runtime/Fusion/State/Value.luau +76 -0
- package/runtime/Fusion/State/castToState.luau +26 -0
- package/runtime/Fusion/State/peek.luau +31 -0
- package/runtime/Fusion/State/updateAll.luau +1 -0
- package/runtime/Fusion/Types.luau +318 -0
- package/runtime/Fusion/Utility/Contextual.luau +91 -0
- package/runtime/Fusion/Utility/Safe.luau +23 -0
- package/runtime/Fusion/Utility/isSimilar.luau +29 -0
- package/runtime/Fusion/Utility/merge.luau +35 -0
- package/runtime/Fusion/Utility/nameOf.luau +35 -0
- package/runtime/Fusion/Utility/never.luau +14 -0
- package/runtime/Fusion/Utility/nicknames.luau +11 -0
- package/runtime/Fusion/Utility/xtypeof.luau +27 -0
- package/runtime/Fusion/_impl/Animation/ExternalTime.luau +84 -0
- package/runtime/Fusion/_impl/Animation/Spring.luau +313 -0
- package/runtime/Fusion/_impl/Animation/Stopwatch.luau +128 -0
- package/runtime/Fusion/_impl/Animation/Tween.luau +178 -0
- package/runtime/Fusion/_impl/Animation/getTweenDuration.luau +27 -0
- package/runtime/Fusion/_impl/Animation/getTweenRatio.luau +47 -0
- package/runtime/Fusion/_impl/Animation/lerpType.luau +164 -0
- package/runtime/Fusion/_impl/Animation/packType.luau +100 -0
- package/runtime/Fusion/_impl/Animation/springCoefficients.luau +80 -0
- package/runtime/Fusion/_impl/Animation/unpackType.luau +103 -0
- package/runtime/Fusion/_impl/Colour/Oklab.luau +70 -0
- package/runtime/Fusion/_impl/Colour/sRGB.luau +47 -0
- package/runtime/Fusion/_impl/External.luau +156 -0
- package/runtime/Fusion/_impl/ExternalDebug.luau +70 -0
- package/runtime/Fusion/_impl/Graph/Observer.luau +111 -0
- package/runtime/Fusion/_impl/Graph/castToGraph.luau +29 -0
- package/runtime/Fusion/_impl/Graph/change.luau +81 -0
- package/runtime/Fusion/_impl/Graph/depend.luau +33 -0
- package/runtime/Fusion/_impl/Graph/evaluate.luau +56 -0
- package/runtime/Fusion/_impl/Instances/Attribute.luau +58 -0
- package/runtime/Fusion/_impl/Instances/AttributeChange.luau +47 -0
- package/runtime/Fusion/_impl/Instances/AttributeOut.luau +63 -0
- package/runtime/Fusion/_impl/Instances/Child.luau +21 -0
- package/runtime/Fusion/_impl/Instances/Children.luau +148 -0
- package/runtime/Fusion/_impl/Instances/Hydrate.luau +29 -0
- package/runtime/Fusion/_impl/Instances/New.luau +48 -0
- package/runtime/Fusion/_impl/Instances/OnChange.luau +50 -0
- package/runtime/Fusion/_impl/Instances/OnEvent.luau +54 -0
- package/runtime/Fusion/_impl/Instances/Out.luau +69 -0
- package/runtime/Fusion/_impl/Instances/Tag.luau +61 -0
- package/runtime/Fusion/_impl/Instances/applyInstanceProps.luau +149 -0
- package/runtime/Fusion/_impl/Instances/defaultProps.luau +194 -0
- package/runtime/Fusion/_impl/LICENSE +21 -0
- package/runtime/Fusion/_impl/Logging/formatError.luau +49 -0
- package/runtime/Fusion/_impl/Logging/messages.luau +46 -0
- package/runtime/Fusion/_impl/Logging/parseError.luau +25 -0
- package/runtime/Fusion/_impl/Memory/checkLifetime.luau +134 -0
- package/runtime/Fusion/_impl/Memory/deriveScope.luau +24 -0
- package/runtime/Fusion/_impl/Memory/deriveScopeImpl.luau +40 -0
- package/runtime/Fusion/_impl/Memory/doCleanup.luau +91 -0
- package/runtime/Fusion/_impl/Memory/innerScope.luau +34 -0
- package/runtime/Fusion/_impl/Memory/insert.luau +22 -0
- package/runtime/Fusion/_impl/Memory/needsDestruction.luau +17 -0
- package/runtime/Fusion/_impl/Memory/scoped.luau +24 -0
- package/runtime/Fusion/_impl/RobloxExternal.luau +98 -0
- package/runtime/Fusion/_impl/State/Computed.luau +122 -0
- package/runtime/Fusion/_impl/State/For/Disassembly.luau +207 -0
- package/runtime/Fusion/_impl/State/For/ForTypes.luau +30 -0
- package/runtime/Fusion/_impl/State/For/init.luau +101 -0
- package/runtime/Fusion/_impl/State/ForKeys.luau +88 -0
- package/runtime/Fusion/_impl/State/ForPairs.luau +91 -0
- package/runtime/Fusion/_impl/State/ForValues.luau +88 -0
- package/runtime/Fusion/_impl/State/Value.luau +76 -0
- package/runtime/Fusion/_impl/State/castToState.luau +26 -0
- package/runtime/Fusion/_impl/State/peek.luau +31 -0
- package/runtime/Fusion/_impl/State/updateAll.luau +1 -0
- package/runtime/Fusion/_impl/Types.luau +318 -0
- package/runtime/Fusion/_impl/Utility/Contextual.luau +91 -0
- package/runtime/Fusion/_impl/Utility/Safe.luau +23 -0
- package/runtime/Fusion/_impl/Utility/isSimilar.luau +29 -0
- package/runtime/Fusion/_impl/Utility/merge.luau +35 -0
- package/runtime/Fusion/_impl/Utility/nameOf.luau +35 -0
- package/runtime/Fusion/_impl/Utility/never.luau +14 -0
- package/runtime/Fusion/_impl/Utility/nicknames.luau +11 -0
- package/runtime/Fusion/_impl/Utility/xtypeof.luau +27 -0
- package/runtime/Fusion/_impl/init.luau +83 -0
- package/runtime/Fusion/init.luau +27 -0
- package/runtime/Iris/API.lua +2085 -0
- package/runtime/Iris/Internal.lua +895 -0
- package/runtime/Iris/LICENSE.txt +21 -0
- package/runtime/Iris/PubTypes.lua +43 -0
- package/runtime/Iris/Types.lua +660 -0
- package/runtime/Iris/WidgetTypes.lua +521 -0
- package/runtime/Iris/_impl/API.lua +2085 -0
- package/runtime/Iris/_impl/Internal.lua +895 -0
- package/runtime/Iris/_impl/LICENSE.txt +21 -0
- package/runtime/Iris/_impl/PubTypes.lua +43 -0
- package/runtime/Iris/_impl/Types.lua +660 -0
- package/runtime/Iris/_impl/WidgetTypes.lua +521 -0
- package/runtime/Iris/_impl/config.lua +305 -0
- package/runtime/Iris/_impl/init.lua +696 -0
- package/runtime/Iris/_impl/widgets/Button.lua +90 -0
- package/runtime/Iris/_impl/widgets/Checkbox.lua +115 -0
- package/runtime/Iris/_impl/widgets/Combo.lua +492 -0
- package/runtime/Iris/_impl/widgets/Format.lua +140 -0
- package/runtime/Iris/_impl/widgets/Image.lua +155 -0
- package/runtime/Iris/_impl/widgets/Input.lua +1232 -0
- package/runtime/Iris/_impl/widgets/Menu.lua +599 -0
- package/runtime/Iris/_impl/widgets/Plot.lua +639 -0
- package/runtime/Iris/_impl/widgets/RadioButton.lua +126 -0
- package/runtime/Iris/_impl/widgets/Root.lua +143 -0
- package/runtime/Iris/_impl/widgets/Tab.lua +333 -0
- package/runtime/Iris/_impl/widgets/Table.lua +635 -0
- package/runtime/Iris/_impl/widgets/Text.lua +132 -0
- package/runtime/Iris/_impl/widgets/Tree.lua +287 -0
- package/runtime/Iris/_impl/widgets/Window.lua +1075 -0
- package/runtime/Iris/_impl/widgets/init.lua +447 -0
- package/runtime/Iris/config.lua +305 -0
- package/runtime/Iris/init.lua +696 -0
- package/runtime/Iris/init.luau +12 -0
- package/runtime/Iris/widgets/Button.lua +90 -0
- package/runtime/Iris/widgets/Checkbox.lua +115 -0
- package/runtime/Iris/widgets/Combo.lua +492 -0
- package/runtime/Iris/widgets/Format.lua +140 -0
- package/runtime/Iris/widgets/Image.lua +155 -0
- package/runtime/Iris/widgets/Input.lua +1232 -0
- package/runtime/Iris/widgets/Menu.lua +599 -0
- package/runtime/Iris/widgets/Plot.lua +639 -0
- package/runtime/Iris/widgets/RadioButton.lua +126 -0
- package/runtime/Iris/widgets/Root.lua +143 -0
- package/runtime/Iris/widgets/Tab.lua +333 -0
- package/runtime/Iris/widgets/Table.lua +635 -0
- package/runtime/Iris/widgets/Text.lua +132 -0
- package/runtime/Iris/widgets/Tree.lua +287 -0
- package/runtime/Iris/widgets/Window.lua +1075 -0
- package/runtime/Iris/widgets/init.lua +447 -0
- package/runtime/Janitor/FastDefer.luau +33 -0
- package/runtime/Janitor/LICENSE +21 -0
- package/runtime/Janitor/_impl/FastDefer.luau +33 -0
- package/runtime/Janitor/_impl/LICENSE +21 -0
- package/runtime/Janitor/_impl/init.luau +999 -0
- package/runtime/Janitor/init.luau +45 -0
- package/runtime/MathUtils/init.luau +100 -0
- package/runtime/Module3D/LICENSE +21 -0
- package/runtime/Module3D/_impl/LICENSE +21 -0
- package/runtime/Module3D/_impl/init.luau +269 -0
- package/runtime/Module3D/init.luau +14 -0
- package/runtime/Net/init.luau +125 -0
- package/runtime/Net/src/codec.luau +153 -0
- package/runtime/Occlude/init.luau +54 -0
- package/runtime/Promise/LICENSE +21 -0
- package/runtime/Promise/_impl/LICENSE +21 -0
- package/runtime/Promise/_impl/init.lua +1991 -0
- package/runtime/Promise/init.lua +1990 -0
- package/runtime/Promise/init.luau +13 -0
- package/runtime/Promise/types.luau +46 -0
- package/runtime/SOURCES.md +22 -0
- package/runtime/Spring/LICENSE +201 -0
- package/runtime/Spring/_impl/LICENSE +201 -0
- package/runtime/Spring/_impl/init.luau +111 -0
- package/runtime/Spring/init.luau +24 -0
- package/runtime/StateMachine/Classes/State.lua +375 -0
- package/runtime/StateMachine/Classes/Transition.lua +336 -0
- package/runtime/StateMachine/Functions/deepCopy.lua +19 -0
- package/runtime/StateMachine/Functions/mergeTables.lua +22 -0
- package/runtime/StateMachine/LICENSE +19 -0
- package/runtime/StateMachine/Vendor/Signal.lua +386 -0
- package/runtime/StateMachine/Vendor/Trove.lua +188 -0
- package/runtime/StateMachine/_impl/Classes/State.lua +375 -0
- package/runtime/StateMachine/_impl/Classes/Transition.lua +336 -0
- package/runtime/StateMachine/_impl/Functions/deepCopy.lua +19 -0
- package/runtime/StateMachine/_impl/Functions/mergeTables.lua +22 -0
- package/runtime/StateMachine/_impl/LICENSE +19 -0
- package/runtime/StateMachine/_impl/Vendor/Signal.lua +386 -0
- package/runtime/StateMachine/_impl/Vendor/Trove.lua +188 -0
- package/runtime/StateMachine/_impl/init.lua +595 -0
- package/runtime/StateMachine/init.lua +595 -0
- package/runtime/StateMachine/init.luau +10 -0
- package/runtime/StickyBillboard/init.luau +167 -0
- package/runtime/TopbarPlus/Attribute.lua +35 -0
- package/runtime/TopbarPlus/Elements/Caption.lua +316 -0
- package/runtime/TopbarPlus/Elements/Container.lua +215 -0
- package/runtime/TopbarPlus/Elements/Dropdown.lua +315 -0
- package/runtime/TopbarPlus/Elements/Indicator.lua +91 -0
- package/runtime/TopbarPlus/Elements/Menu.lua +180 -0
- package/runtime/TopbarPlus/Elements/Notice.lua +113 -0
- package/runtime/TopbarPlus/Elements/Selection.lua +49 -0
- package/runtime/TopbarPlus/Elements/Widget.lua +437 -0
- package/runtime/TopbarPlus/Features/Gamepad.lua +201 -0
- package/runtime/TopbarPlus/Features/Overflow.lua +360 -0
- package/runtime/TopbarPlus/Features/Themes/Classic.lua +27 -0
- package/runtime/TopbarPlus/Features/Themes/Default.lua +75 -0
- package/runtime/TopbarPlus/Features/Themes/init.lua +353 -0
- package/runtime/TopbarPlus/LICENSE +381 -0
- package/runtime/TopbarPlus/Packages/GoodSignal.lua +182 -0
- package/runtime/TopbarPlus/Packages/Janitor.lua +322 -0
- package/runtime/TopbarPlus/Reference.lua +30 -0
- package/runtime/TopbarPlus/Types.lua +477 -0
- package/runtime/TopbarPlus/Utility.lua +462 -0
- package/runtime/TopbarPlus/VERSION.lua +51 -0
- package/runtime/TopbarPlus/_impl/Attribute.lua +35 -0
- package/runtime/TopbarPlus/_impl/Elements/Caption.lua +316 -0
- package/runtime/TopbarPlus/_impl/Elements/Container.lua +215 -0
- package/runtime/TopbarPlus/_impl/Elements/Dropdown.lua +315 -0
- package/runtime/TopbarPlus/_impl/Elements/Indicator.lua +91 -0
- package/runtime/TopbarPlus/_impl/Elements/Menu.lua +180 -0
- package/runtime/TopbarPlus/_impl/Elements/Notice.lua +113 -0
- package/runtime/TopbarPlus/_impl/Elements/Selection.lua +49 -0
- package/runtime/TopbarPlus/_impl/Elements/Widget.lua +437 -0
- package/runtime/TopbarPlus/_impl/Features/Gamepad.lua +201 -0
- package/runtime/TopbarPlus/_impl/Features/Overflow.lua +360 -0
- package/runtime/TopbarPlus/_impl/Features/Themes/Classic.lua +27 -0
- package/runtime/TopbarPlus/_impl/Features/Themes/Default.lua +75 -0
- package/runtime/TopbarPlus/_impl/Features/Themes/init.lua +353 -0
- package/runtime/TopbarPlus/_impl/LICENSE +381 -0
- package/runtime/TopbarPlus/_impl/Packages/GoodSignal.lua +182 -0
- package/runtime/TopbarPlus/_impl/Packages/Janitor.lua +322 -0
- package/runtime/TopbarPlus/_impl/Reference.lua +30 -0
- package/runtime/TopbarPlus/_impl/Types.lua +477 -0
- package/runtime/TopbarPlus/_impl/Utility.lua +462 -0
- package/runtime/TopbarPlus/_impl/VERSION.lua +51 -0
- package/runtime/TopbarPlus/_impl/init.lua +1249 -0
- package/runtime/TopbarPlus/init.lua +1249 -0
- package/runtime/TopbarPlus/init.luau +8 -0
- package/runtime/Twinkle/init.luau +157 -0
- package/runtime/VfxUtil/init.luau +164 -0
- package/src/api.generated.js +3675 -0
- package/src/api.js +57 -0
- package/src/architecture.js +393 -0
- package/src/cli.js +192 -0
- package/src/compile.js +40 -0
- package/src/emit.js +213 -0
- package/src/lex.js +149 -0
- package/src/libs.js +355 -0
- package/src/parse.js +421 -0
- package/src/preprocess.js +80 -0
- package/src/understand.js +453 -0
- package/templates/game/.clangd +5 -0
- package/templates/game/.vscode/c_cpp_properties.json +23 -0
- package/templates/game/.vscode/settings.json +12 -0
- package/templates/game/Packages/.gitkeep +0 -0
- package/templates/game/cluaupp.config.json +6 -0
- package/templates/game/compile_flags.txt +3 -0
- package/templates/game/default.project.json +39 -0
- package/templates/game/package.json +9 -0
- package/templates/game/src/client/init.client.cpp +5 -0
- package/templates/game/src/server/leaderstats.server.cpp +28 -0
- package/templates/game/src/shared/config.cpp +5 -0
- package/templates/game/src/shared/config.h +3 -0
- package/templates/game/wally.toml +11 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
--[[
|
|
2
|
+
Merges two tables together
|
|
3
|
+
]]
|
|
4
|
+
local function mergeTables(baseTable, targetTable)
|
|
5
|
+
for index: string, value in targetTable do
|
|
6
|
+
if typeof(baseTable[index]) == typeof(value) then
|
|
7
|
+
if baseTable[index] ~= (getmetatable(baseTable) or {})[index] then
|
|
8
|
+
continue
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
if type(value) == "table" then
|
|
13
|
+
baseTable[index] = table.clone(value)
|
|
14
|
+
else
|
|
15
|
+
baseTable[index] = value
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
return baseTable
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
return mergeTables
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
Copyright (c) [2023] [prooheckcp]
|
|
2
|
+
|
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
4
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
5
|
+
in the Software without restriction, including without limitation the rights
|
|
6
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
7
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
8
|
+
furnished to do so, subject to the following conditions:
|
|
9
|
+
|
|
10
|
+
The above copyright notice and this permission notice shall be included in all
|
|
11
|
+
copies or substantial portions of the Software.
|
|
12
|
+
|
|
13
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
14
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
15
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
16
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
17
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
18
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
19
|
+
SOFTWARE.
|
|
@@ -0,0 +1,386 @@
|
|
|
1
|
+
-- -----------------------------------------------------------------------------
|
|
2
|
+
-- Batched Yield-Safe Signal Implementation --
|
|
3
|
+
-- This is a Signal class which has effectively identical behavior to a --
|
|
4
|
+
-- normal RBXScriptSignal, with the only difference being a couple extra --
|
|
5
|
+
-- stack frames at the bottom of the stack trace when an error is thrown. --
|
|
6
|
+
-- This implementation caches runner coroutines, so the ability to yield in --
|
|
7
|
+
-- the signal handlers comes at minimal extra cost over a naive signal --
|
|
8
|
+
-- implementation that either always or never spawns a thread. --
|
|
9
|
+
-- --
|
|
10
|
+
-- API: --
|
|
11
|
+
-- local Signal = require(THIS MODULE) --
|
|
12
|
+
-- local sig = Signal.new() --
|
|
13
|
+
-- local connection = sig:Connect(function(arg1, arg2, ...) ... end) --
|
|
14
|
+
-- sig:Fire(arg1, arg2, ...) --
|
|
15
|
+
-- connection:Disconnect() --
|
|
16
|
+
-- sig:DisconnectAll() --
|
|
17
|
+
-- local arg1, arg2, ... = sig:Wait() --
|
|
18
|
+
-- --
|
|
19
|
+
-- License: --
|
|
20
|
+
-- Licensed under the MIT license. --
|
|
21
|
+
-- --
|
|
22
|
+
-- Authors: --
|
|
23
|
+
-- stravant - July 31st, 2021 - Created the file. --
|
|
24
|
+
-- sleitnick - August 3rd, 2021 - Modified for Knit. --
|
|
25
|
+
-- -----------------------------------------------------------------------------
|
|
26
|
+
|
|
27
|
+
-- Signal types
|
|
28
|
+
export type Connection = {
|
|
29
|
+
Disconnect: (self: Connection) -> (),
|
|
30
|
+
Destroy: (self: Connection) -> (),
|
|
31
|
+
Connected: boolean,
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export type Signal<T...> = {
|
|
35
|
+
Fire: (self: Signal<T...>, T...) -> (),
|
|
36
|
+
FireDeferred: (self: Signal<T...>, T...) -> (),
|
|
37
|
+
Connect: (self: Signal<T...>, fn: (T...) -> ()) -> Connection,
|
|
38
|
+
Once: (self: Signal<T...>, fn: (T...) -> ()) -> Connection,
|
|
39
|
+
DisconnectAll: (self: Signal<T...>) -> (),
|
|
40
|
+
GetConnections: (self: Signal<T...>) -> { Connection },
|
|
41
|
+
Destroy: (self: Signal<T...>) -> (),
|
|
42
|
+
Wait: (self: Signal<T...>) -> T...,
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
-- The currently idle thread to run the next handler on
|
|
46
|
+
local freeRunnerThread = nil
|
|
47
|
+
|
|
48
|
+
-- Function which acquires the currently idle handler runner thread, runs the
|
|
49
|
+
-- function fn on it, and then releases the thread, returning it to being the
|
|
50
|
+
-- currently idle one.
|
|
51
|
+
-- If there was a currently idle runner thread already, that's okay, that old
|
|
52
|
+
-- one will just get thrown and eventually GCed.
|
|
53
|
+
local function acquireRunnerThreadAndCallEventHandler(fn, ...)
|
|
54
|
+
local acquiredRunnerThread = freeRunnerThread
|
|
55
|
+
freeRunnerThread = nil
|
|
56
|
+
fn(...)
|
|
57
|
+
-- The handler finished running, this runner thread is free again.
|
|
58
|
+
freeRunnerThread = acquiredRunnerThread
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
-- Coroutine runner that we create coroutines of. The coroutine can be
|
|
62
|
+
-- repeatedly resumed with functions to run followed by the argument to run
|
|
63
|
+
-- them with.
|
|
64
|
+
local function runEventHandlerInFreeThread(...)
|
|
65
|
+
acquireRunnerThreadAndCallEventHandler(...)
|
|
66
|
+
while true do
|
|
67
|
+
acquireRunnerThreadAndCallEventHandler(coroutine.yield())
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
--[[
|
|
72
|
+
@within Signal
|
|
73
|
+
@interface SignalConnection
|
|
74
|
+
.Connected boolean
|
|
75
|
+
.Disconnect (SignalConnection) -> ()
|
|
76
|
+
Represents a connection to a signal.
|
|
77
|
+
```lua
|
|
78
|
+
local connection = signal:Connect(function() end)
|
|
79
|
+
print(connection.Connected) --> true
|
|
80
|
+
connection:Disconnect()
|
|
81
|
+
print(connection.Connected) --> false
|
|
82
|
+
```
|
|
83
|
+
]]
|
|
84
|
+
|
|
85
|
+
-- Connection class
|
|
86
|
+
local Connection = {}
|
|
87
|
+
Connection.__index = Connection
|
|
88
|
+
|
|
89
|
+
function Connection.new(signal, fn)
|
|
90
|
+
return setmetatable({
|
|
91
|
+
Connected = true,
|
|
92
|
+
_signal = signal,
|
|
93
|
+
_fn = fn,
|
|
94
|
+
_next = false,
|
|
95
|
+
}, Connection)
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
function Connection:Disconnect()
|
|
99
|
+
if not self.Connected then
|
|
100
|
+
return
|
|
101
|
+
end
|
|
102
|
+
self.Connected = false
|
|
103
|
+
|
|
104
|
+
-- Unhook the node, but DON'T clear it. That way any fire calls that are
|
|
105
|
+
-- currently sitting on this node will be able to iterate forwards off of
|
|
106
|
+
-- it, but any subsequent fire calls will not hit it, and it will be GCed
|
|
107
|
+
-- when no more fire calls are sitting on it.
|
|
108
|
+
if self._signal._handlerListHead == self then
|
|
109
|
+
self._signal._handlerListHead = self._next
|
|
110
|
+
else
|
|
111
|
+
local prev = self._signal._handlerListHead
|
|
112
|
+
while prev and prev._next ~= self do
|
|
113
|
+
prev = prev._next
|
|
114
|
+
end
|
|
115
|
+
if prev then
|
|
116
|
+
prev._next = self._next
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
Connection.Destroy = Connection.Disconnect
|
|
122
|
+
|
|
123
|
+
-- Make Connection strict
|
|
124
|
+
setmetatable(Connection, {
|
|
125
|
+
__index = function(_tb, key)
|
|
126
|
+
error(("Attempt to get Connection::%s (not a valid member)"):format(tostring(key)), 2)
|
|
127
|
+
end,
|
|
128
|
+
__newindex = function(_tb, key, _value)
|
|
129
|
+
error(("Attempt to set Connection::%s (not a valid member)"):format(tostring(key)), 2)
|
|
130
|
+
end,
|
|
131
|
+
})
|
|
132
|
+
|
|
133
|
+
--[[
|
|
134
|
+
@within Signal
|
|
135
|
+
@type ConnectionFn (...any) -> ()
|
|
136
|
+
A function connected to a signal.
|
|
137
|
+
]]
|
|
138
|
+
|
|
139
|
+
--[[
|
|
140
|
+
@class Signal
|
|
141
|
+
Signals allow events to be dispatched and handled.
|
|
142
|
+
For example:
|
|
143
|
+
```lua
|
|
144
|
+
local signal = Signal.new()
|
|
145
|
+
signal:Connect(function(msg)
|
|
146
|
+
print("Got message:", msg)
|
|
147
|
+
end)
|
|
148
|
+
signal:Fire("Hello world!")
|
|
149
|
+
```
|
|
150
|
+
]]
|
|
151
|
+
local Signal = {}
|
|
152
|
+
Signal.__index = Signal
|
|
153
|
+
|
|
154
|
+
--[[
|
|
155
|
+
Constructs a new Signal
|
|
156
|
+
@return Signal
|
|
157
|
+
]]
|
|
158
|
+
function Signal.new<T...>(): Signal<T...>
|
|
159
|
+
local self = setmetatable({
|
|
160
|
+
_handlerListHead = false,
|
|
161
|
+
_proxyHandler = nil,
|
|
162
|
+
}, Signal)
|
|
163
|
+
return self
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
--[[
|
|
167
|
+
Constructs a new Signal that wraps around an RBXScriptSignal.
|
|
168
|
+
@param rbxScriptSignal RBXScriptSignal -- Existing RBXScriptSignal to wrap
|
|
169
|
+
@return Signal
|
|
170
|
+
For example:
|
|
171
|
+
```lua
|
|
172
|
+
local signal = Signal.Wrap(workspace.ChildAdded)
|
|
173
|
+
signal:Connect(function(part) print(part.Name .. " added") end)
|
|
174
|
+
Instance.new("Part").Parent = workspace
|
|
175
|
+
```
|
|
176
|
+
]]
|
|
177
|
+
function Signal.Wrap<T...>(rbxScriptSignal: RBXScriptSignal): Signal<T...>
|
|
178
|
+
assert(
|
|
179
|
+
typeof(rbxScriptSignal) == "RBXScriptSignal",
|
|
180
|
+
"Argument #1 to Signal.Wrap must be a RBXScriptSignal; got " .. typeof(rbxScriptSignal)
|
|
181
|
+
)
|
|
182
|
+
local signal = Signal.new()
|
|
183
|
+
signal._proxyHandler = rbxScriptSignal:Connect(function(...)
|
|
184
|
+
signal:Fire(...)
|
|
185
|
+
end)
|
|
186
|
+
return signal
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
--[[
|
|
190
|
+
Checks if the given object is a Signal.
|
|
191
|
+
@param obj any -- Object to check
|
|
192
|
+
@return boolean -- `true` if the object is a Signal.
|
|
193
|
+
]]
|
|
194
|
+
function Signal.Is(obj: any): boolean
|
|
195
|
+
return type(obj) == "table" and getmetatable(obj) == Signal
|
|
196
|
+
end
|
|
197
|
+
|
|
198
|
+
--[[
|
|
199
|
+
@param fn ConnectionFn
|
|
200
|
+
@return SignalConnection
|
|
201
|
+
Connects a function to the signal, which will be called anytime the signal is fired.
|
|
202
|
+
```lua
|
|
203
|
+
signal:Connect(function(msg, num)
|
|
204
|
+
print(msg, num)
|
|
205
|
+
end)
|
|
206
|
+
signal:Fire("Hello", 25)
|
|
207
|
+
```
|
|
208
|
+
]]
|
|
209
|
+
function Signal:Connect(fn)
|
|
210
|
+
local connection = Connection.new(self, fn)
|
|
211
|
+
if self._handlerListHead then
|
|
212
|
+
connection._next = self._handlerListHead
|
|
213
|
+
self._handlerListHead = connection
|
|
214
|
+
else
|
|
215
|
+
self._handlerListHead = connection
|
|
216
|
+
end
|
|
217
|
+
return connection
|
|
218
|
+
end
|
|
219
|
+
|
|
220
|
+
--[[
|
|
221
|
+
@deprecated v1.3.0 -- Use `Signal:Once` instead.
|
|
222
|
+
@param fn ConnectionFn
|
|
223
|
+
@return SignalConnection
|
|
224
|
+
]]
|
|
225
|
+
function Signal:ConnectOnce(fn)
|
|
226
|
+
return self:Once(fn)
|
|
227
|
+
end
|
|
228
|
+
|
|
229
|
+
--[[
|
|
230
|
+
@param fn ConnectionFn
|
|
231
|
+
@return SignalConnection
|
|
232
|
+
Connects a function to the signal, which will be called the next time the signal fires. Once
|
|
233
|
+
the connection is triggered, it will disconnect itself.
|
|
234
|
+
```lua
|
|
235
|
+
signal:Once(function(msg, num)
|
|
236
|
+
print(msg, num)
|
|
237
|
+
end)
|
|
238
|
+
signal:Fire("Hello", 25)
|
|
239
|
+
signal:Fire("This message will not go through", 10)
|
|
240
|
+
```
|
|
241
|
+
]]
|
|
242
|
+
function Signal:Once(fn)
|
|
243
|
+
local connection
|
|
244
|
+
local done = false
|
|
245
|
+
connection = self:Connect(function(...)
|
|
246
|
+
if done then
|
|
247
|
+
return
|
|
248
|
+
end
|
|
249
|
+
done = true
|
|
250
|
+
connection:Disconnect()
|
|
251
|
+
fn(...)
|
|
252
|
+
end)
|
|
253
|
+
return connection
|
|
254
|
+
end
|
|
255
|
+
|
|
256
|
+
function Signal:GetConnections()
|
|
257
|
+
local items = {}
|
|
258
|
+
local item = self._handlerListHead
|
|
259
|
+
while item do
|
|
260
|
+
table.insert(items, item)
|
|
261
|
+
item = item._next
|
|
262
|
+
end
|
|
263
|
+
return items
|
|
264
|
+
end
|
|
265
|
+
|
|
266
|
+
-- Disconnect all handlers. Since we use a linked list it suffices to clear the
|
|
267
|
+
-- reference to the head handler.
|
|
268
|
+
--[[
|
|
269
|
+
Disconnects all connections from the signal.
|
|
270
|
+
```lua
|
|
271
|
+
signal:DisconnectAll()
|
|
272
|
+
```
|
|
273
|
+
]]
|
|
274
|
+
function Signal:DisconnectAll()
|
|
275
|
+
local item = self._handlerListHead
|
|
276
|
+
while item do
|
|
277
|
+
item.Connected = false
|
|
278
|
+
item = item._next
|
|
279
|
+
end
|
|
280
|
+
self._handlerListHead = false
|
|
281
|
+
end
|
|
282
|
+
|
|
283
|
+
-- Signal:Fire(...) implemented by running the handler functions on the
|
|
284
|
+
-- coRunnerThread, and any time the resulting thread yielded without returning
|
|
285
|
+
-- to us, that means that it yielded to the Roblox scheduler and has been taken
|
|
286
|
+
-- over by Roblox scheduling, meaning we have to make a new coroutine runner.
|
|
287
|
+
--[[
|
|
288
|
+
@param ... any
|
|
289
|
+
Fire the signal, which will call all of the connected functions with the given arguments.
|
|
290
|
+
```lua
|
|
291
|
+
signal:Fire("Hello")
|
|
292
|
+
-- Any number of arguments can be fired:
|
|
293
|
+
signal:Fire("Hello", 32, {Test = "Test"}, true)
|
|
294
|
+
```
|
|
295
|
+
]]
|
|
296
|
+
function Signal:Fire(...)
|
|
297
|
+
local item = self._handlerListHead
|
|
298
|
+
while item do
|
|
299
|
+
if item.Connected then
|
|
300
|
+
if not freeRunnerThread then
|
|
301
|
+
freeRunnerThread = coroutine.create(runEventHandlerInFreeThread)
|
|
302
|
+
end
|
|
303
|
+
task.spawn(freeRunnerThread, item._fn, ...)
|
|
304
|
+
end
|
|
305
|
+
item = item._next
|
|
306
|
+
end
|
|
307
|
+
end
|
|
308
|
+
|
|
309
|
+
--[[
|
|
310
|
+
@param ... any
|
|
311
|
+
Same as `Fire`, but uses `task.defer` internally & doesn't take advantage of thread reuse.
|
|
312
|
+
```lua
|
|
313
|
+
signal:FireDeferred("Hello")
|
|
314
|
+
```
|
|
315
|
+
]]
|
|
316
|
+
function Signal:FireDeferred(...)
|
|
317
|
+
local item = self._handlerListHead
|
|
318
|
+
while item do
|
|
319
|
+
task.defer(item._fn, ...)
|
|
320
|
+
item = item._next
|
|
321
|
+
end
|
|
322
|
+
end
|
|
323
|
+
|
|
324
|
+
--[[
|
|
325
|
+
@return ... any
|
|
326
|
+
@yields
|
|
327
|
+
Yields the current thread until the signal is fired, and returns the arguments fired from the signal.
|
|
328
|
+
Yielding the current thread is not always desirable. If the desire is to only capture the next event
|
|
329
|
+
fired, using `Once` might be a better solution.
|
|
330
|
+
```lua
|
|
331
|
+
task.spawn(function()
|
|
332
|
+
local msg, num = signal:Wait()
|
|
333
|
+
print(msg, num) --> "Hello", 32
|
|
334
|
+
end)
|
|
335
|
+
signal:Fire("Hello", 32)
|
|
336
|
+
```
|
|
337
|
+
]]
|
|
338
|
+
function Signal:Wait()
|
|
339
|
+
local waitingCoroutine = coroutine.running()
|
|
340
|
+
local connection
|
|
341
|
+
local done = false
|
|
342
|
+
connection = self:Connect(function(...)
|
|
343
|
+
if done then
|
|
344
|
+
return
|
|
345
|
+
end
|
|
346
|
+
done = true
|
|
347
|
+
connection:Disconnect()
|
|
348
|
+
task.spawn(waitingCoroutine, ...)
|
|
349
|
+
end)
|
|
350
|
+
return coroutine.yield()
|
|
351
|
+
end
|
|
352
|
+
|
|
353
|
+
--[[
|
|
354
|
+
Cleans up the signal.
|
|
355
|
+
Technically, this is only necessary if the signal is created using
|
|
356
|
+
`Signal.Wrap`. Connections should be properly GC'd once the signal
|
|
357
|
+
is no longer referenced anywhere. However, it is still good practice
|
|
358
|
+
to include ways to strictly clean up resources. Calling `Destroy`
|
|
359
|
+
on a signal will also disconnect all connections immediately.
|
|
360
|
+
```lua
|
|
361
|
+
signal:Destroy()
|
|
362
|
+
```
|
|
363
|
+
]]
|
|
364
|
+
function Signal:Destroy()
|
|
365
|
+
self:DisconnectAll()
|
|
366
|
+
local proxyHandler = rawget(self, "_proxyHandler")
|
|
367
|
+
if proxyHandler then
|
|
368
|
+
proxyHandler:Disconnect()
|
|
369
|
+
end
|
|
370
|
+
end
|
|
371
|
+
|
|
372
|
+
-- Make signal strict
|
|
373
|
+
setmetatable(Signal, {
|
|
374
|
+
__index = function(_tb, key)
|
|
375
|
+
error(("Attempt to get Signal::%s (not a valid member)"):format(tostring(key)), 2)
|
|
376
|
+
end,
|
|
377
|
+
__newindex = function(_tb, key, _value)
|
|
378
|
+
error(("Attempt to set Signal::%s (not a valid member)"):format(tostring(key)), 2)
|
|
379
|
+
end,
|
|
380
|
+
})
|
|
381
|
+
|
|
382
|
+
return {
|
|
383
|
+
new = Signal.new,
|
|
384
|
+
Wrap = Signal.Wrap,
|
|
385
|
+
Is = Signal.Is,
|
|
386
|
+
}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
-- Trove
|
|
2
|
+
-- Stephen Leitnick
|
|
3
|
+
-- October 16, 2021
|
|
4
|
+
|
|
5
|
+
local FN_MARKER = newproxy()
|
|
6
|
+
local THREAD_MARKER = newproxy()
|
|
7
|
+
|
|
8
|
+
local RunService = game:GetService("RunService")
|
|
9
|
+
|
|
10
|
+
local function GetObjectCleanupFunction(object, cleanupMethod)
|
|
11
|
+
local t = typeof(object)
|
|
12
|
+
if t == "function" then
|
|
13
|
+
return FN_MARKER
|
|
14
|
+
elseif t == "thread" then
|
|
15
|
+
return THREAD_MARKER
|
|
16
|
+
end
|
|
17
|
+
if cleanupMethod then
|
|
18
|
+
return cleanupMethod
|
|
19
|
+
end
|
|
20
|
+
if t == "Instance" then
|
|
21
|
+
return "Destroy"
|
|
22
|
+
elseif t == "RBXScriptConnection" then
|
|
23
|
+
return "Disconnect"
|
|
24
|
+
elseif t == "table" then
|
|
25
|
+
if typeof(object.Destroy) == "function" then
|
|
26
|
+
return "Destroy"
|
|
27
|
+
elseif typeof(object.Disconnect) == "function" then
|
|
28
|
+
return "Disconnect"
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
error("Failed to get cleanup function for object " .. t .. ": " .. tostring(object), 3)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
local function AssertPromiseLike(object)
|
|
35
|
+
if
|
|
36
|
+
typeof(object) ~= "table"
|
|
37
|
+
or typeof(object.getStatus) ~= "function"
|
|
38
|
+
or typeof(object.finally) ~= "function"
|
|
39
|
+
or typeof(object.cancel) ~= "function"
|
|
40
|
+
then
|
|
41
|
+
error("Did not receive a Promise as an argument", 3)
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
local Trove = {}
|
|
46
|
+
Trove.__index = Trove
|
|
47
|
+
|
|
48
|
+
function Trove.new()
|
|
49
|
+
local self = setmetatable({}, Trove)
|
|
50
|
+
self._objects = {}
|
|
51
|
+
self._cleaning = false
|
|
52
|
+
return self
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
function Trove:Extend()
|
|
56
|
+
if self._cleaning then
|
|
57
|
+
error("Cannot call trove:Extend() while cleaning", 2)
|
|
58
|
+
end
|
|
59
|
+
return self:Construct(Trove)
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
function Trove:Clone(instance: Instance): Instance
|
|
63
|
+
if self._cleaning then
|
|
64
|
+
error("Cannot call trove:Clone() while cleaning", 2)
|
|
65
|
+
end
|
|
66
|
+
return self:Add(instance:Clone())
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
function Trove:Construct(class, ...)
|
|
70
|
+
if self._cleaning then
|
|
71
|
+
error("Cannot call trove:Construct() while cleaning", 2)
|
|
72
|
+
end
|
|
73
|
+
local object = nil
|
|
74
|
+
local t = type(class)
|
|
75
|
+
if t == "table" then
|
|
76
|
+
object = class.new(...)
|
|
77
|
+
elseif t == "function" then
|
|
78
|
+
object = class(...)
|
|
79
|
+
end
|
|
80
|
+
return self:Add(object)
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
function Trove:Connect(signal, fn)
|
|
84
|
+
if self._cleaning then
|
|
85
|
+
error("Cannot call trove:Connect() while cleaning", 2)
|
|
86
|
+
end
|
|
87
|
+
return self:Add(signal:Connect(fn))
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
function Trove:BindToRenderStep(name: string, priority: number, fn: (dt: number) -> ())
|
|
91
|
+
if self._cleaning then
|
|
92
|
+
error("Cannot call trove:BindToRenderStep() while cleaning", 2)
|
|
93
|
+
end
|
|
94
|
+
RunService:BindToRenderStep(name, priority, fn)
|
|
95
|
+
self:Add(function()
|
|
96
|
+
RunService:UnbindFromRenderStep(name)
|
|
97
|
+
end)
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
function Trove:AddPromise(promise)
|
|
101
|
+
if self._cleaning then
|
|
102
|
+
error("Cannot call trove:AddPromise() while cleaning", 2)
|
|
103
|
+
end
|
|
104
|
+
AssertPromiseLike(promise)
|
|
105
|
+
if promise:getStatus() == "Started" then
|
|
106
|
+
promise:finally(function()
|
|
107
|
+
if self._cleaning then
|
|
108
|
+
return
|
|
109
|
+
end
|
|
110
|
+
self:_findAndRemoveFromObjects(promise, false)
|
|
111
|
+
end)
|
|
112
|
+
self:Add(promise, "cancel")
|
|
113
|
+
end
|
|
114
|
+
return promise
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
function Trove:Add(object: any, cleanupMethod: string?): any
|
|
118
|
+
if self._cleaning then
|
|
119
|
+
error("Cannot call trove:Add() while cleaning", 2)
|
|
120
|
+
end
|
|
121
|
+
local cleanup = GetObjectCleanupFunction(object, cleanupMethod)
|
|
122
|
+
table.insert(self._objects, { object, cleanup })
|
|
123
|
+
return object
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
function Trove:Remove(object: any): boolean
|
|
127
|
+
if self._cleaning then
|
|
128
|
+
error("Cannot call trove:Remove() while cleaning", 2)
|
|
129
|
+
end
|
|
130
|
+
return self:_findAndRemoveFromObjects(object, true)
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
function Trove:Clean()
|
|
134
|
+
if self._cleaning then
|
|
135
|
+
return
|
|
136
|
+
end
|
|
137
|
+
self._cleaning = true
|
|
138
|
+
for _, obj in self._objects do
|
|
139
|
+
self:_cleanupObject(obj[1], obj[2])
|
|
140
|
+
end
|
|
141
|
+
table.clear(self._objects)
|
|
142
|
+
self._cleaning = false
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
function Trove:_findAndRemoveFromObjects(object: any, cleanup: boolean): boolean
|
|
146
|
+
local objects = self._objects
|
|
147
|
+
for i, obj in ipairs(objects) do
|
|
148
|
+
if obj[1] == object then
|
|
149
|
+
local n = #objects
|
|
150
|
+
objects[i] = objects[n]
|
|
151
|
+
objects[n] = nil
|
|
152
|
+
if cleanup then
|
|
153
|
+
self:_cleanupObject(obj[1], obj[2])
|
|
154
|
+
end
|
|
155
|
+
return true
|
|
156
|
+
end
|
|
157
|
+
end
|
|
158
|
+
return false
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
function Trove:_cleanupObject(object, cleanupMethod)
|
|
162
|
+
if cleanupMethod == FN_MARKER then
|
|
163
|
+
object()
|
|
164
|
+
elseif cleanupMethod == THREAD_MARKER then
|
|
165
|
+
pcall(task.cancel, object)
|
|
166
|
+
else
|
|
167
|
+
object[cleanupMethod](object)
|
|
168
|
+
end
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
function Trove:AttachToInstance(instance: Instance)
|
|
172
|
+
if self._cleaning then
|
|
173
|
+
error("Cannot call trove:AttachToInstance() while cleaning", 2)
|
|
174
|
+
elseif not instance:IsDescendantOf(game) then
|
|
175
|
+
error("Instance is not a descendant of the game hierarchy", 2)
|
|
176
|
+
end
|
|
177
|
+
return self:Connect(instance.Destroying, function()
|
|
178
|
+
self:Destroy()
|
|
179
|
+
end)
|
|
180
|
+
end
|
|
181
|
+
|
|
182
|
+
function Trove:Destroy()
|
|
183
|
+
self:Clean()
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
export type Trove = typeof(Trove.new(...))
|
|
187
|
+
|
|
188
|
+
return Trove
|