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,360 @@
|
|
|
1
|
+
-- When designing your game for many devices and screen sizes, icons may occasionally
|
|
2
|
+
-- particularly for smaller devices like phones, overlap with other icons or the bounds
|
|
3
|
+
-- of the screen. The overflow handler solves this challenge by moving the out-of-bounds
|
|
4
|
+
-- icon into an overflow menu (with a limited scrolling canvas) preventing overlaps occuring
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
-- LOCAL
|
|
9
|
+
local Overflow = {}
|
|
10
|
+
local holders = {}
|
|
11
|
+
local orderedAvailableIcons = {}
|
|
12
|
+
local iconsDict
|
|
13
|
+
local currentCamera = workspace.CurrentCamera
|
|
14
|
+
local overflowIcons = {}
|
|
15
|
+
local overflowIconUIDs = {}
|
|
16
|
+
local Utility = require(script.Parent.Parent.Utility)
|
|
17
|
+
local beginCheckingCenterIcons = false
|
|
18
|
+
local beganSecondaryCenterCheck = false
|
|
19
|
+
local Icon
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
-- FUNCTIONS
|
|
24
|
+
-- This is called upon the Icon initializing
|
|
25
|
+
function Overflow.start(incomingIcon)
|
|
26
|
+
Icon = incomingIcon
|
|
27
|
+
iconsDict = Icon.iconsDictionary
|
|
28
|
+
local primaryScreenGui
|
|
29
|
+
for _, screenGui in pairs(Icon.container) do
|
|
30
|
+
if primaryScreenGui == nil and screenGui.ScreenInsets == Enum.ScreenInsets.TopbarSafeInsets then
|
|
31
|
+
primaryScreenGui = screenGui
|
|
32
|
+
end
|
|
33
|
+
for _, holder in pairs(screenGui.Holders:GetChildren()) do
|
|
34
|
+
if holder:GetAttribute("IsAHolder") then
|
|
35
|
+
holders[holder.Name] = holder
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
-- We listen for changes in icons (such as them being added, removed,
|
|
41
|
+
-- the setting of a different alignment, the widget size changing, etc)
|
|
42
|
+
local beginOverflow = false
|
|
43
|
+
local updateBoundaries = Utility.createStagger(0.1, function(ignoreAvailable)
|
|
44
|
+
if not beginOverflow then
|
|
45
|
+
return
|
|
46
|
+
end
|
|
47
|
+
if not ignoreAvailable then
|
|
48
|
+
Overflow.updateAvailableIcons("Center")
|
|
49
|
+
end
|
|
50
|
+
Overflow.updateBoundary("Left")
|
|
51
|
+
Overflow.updateBoundary("Right")
|
|
52
|
+
end)
|
|
53
|
+
task.delay(0.5, function()
|
|
54
|
+
beginOverflow = true
|
|
55
|
+
updateBoundaries()
|
|
56
|
+
end)
|
|
57
|
+
task.delay(2, function()
|
|
58
|
+
-- This is essential to prevent central icons begin added
|
|
59
|
+
-- left or right due to incomplete UIListLayout calculations
|
|
60
|
+
-- within the first few frames
|
|
61
|
+
beginCheckingCenterIcons = true
|
|
62
|
+
updateBoundaries()
|
|
63
|
+
end)
|
|
64
|
+
Icon.iconAdded:Connect(updateBoundaries)
|
|
65
|
+
Icon.iconRemoved:Connect(updateBoundaries)
|
|
66
|
+
Icon.iconChanged:Connect(updateBoundaries)
|
|
67
|
+
currentCamera:GetPropertyChangedSignal("ViewportSize"):Connect(function()
|
|
68
|
+
updateBoundaries(true)
|
|
69
|
+
end)
|
|
70
|
+
primaryScreenGui:GetPropertyChangedSignal("AbsoluteSize"):Connect(function()
|
|
71
|
+
updateBoundaries(true)
|
|
72
|
+
end)
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
function Overflow.getWidth(icon, getMaxWidth)
|
|
76
|
+
local widget = icon.widget
|
|
77
|
+
return widget:GetAttribute("TargetWidth") or widget.AbsoluteSize.X
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
function Overflow.getAvailableIcons(alignment)
|
|
81
|
+
local ourOrderedIcons = orderedAvailableIcons[alignment]
|
|
82
|
+
if not ourOrderedIcons then
|
|
83
|
+
ourOrderedIcons = Overflow.updateAvailableIcons(alignment)
|
|
84
|
+
end
|
|
85
|
+
return ourOrderedIcons
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
function Overflow.updateAvailableIcons(alignment)
|
|
89
|
+
|
|
90
|
+
-- We only track items that are directly on the topbar (i.e. not within a parent icon)
|
|
91
|
+
local ourTotal = 0
|
|
92
|
+
local ourOrderedIcons = {}
|
|
93
|
+
for _, icon in pairs(iconsDict) do
|
|
94
|
+
local parentUID = icon.parentIconUID
|
|
95
|
+
local isDirectlyOnTopbar = not parentUID or overflowIconUIDs[parentUID]
|
|
96
|
+
local isOverflow = overflowIconUIDs[icon.UID]
|
|
97
|
+
if isDirectlyOnTopbar and icon.alignment == alignment and not isOverflow and icon.isEnabled then
|
|
98
|
+
table.insert(ourOrderedIcons, icon)
|
|
99
|
+
ourTotal += 1
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
-- Ignore if no icons are available
|
|
104
|
+
if ourTotal <= 0 then
|
|
105
|
+
return {}
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
-- This sorts these icons by smallest order, or if equal, left-most position
|
|
109
|
+
-- (even for the right alignment because all icons are sorted left-to-right)
|
|
110
|
+
table.sort(ourOrderedIcons, function(iconA, iconB)
|
|
111
|
+
local orderA = iconA.widget.LayoutOrder
|
|
112
|
+
local orderB = iconB.widget.LayoutOrder
|
|
113
|
+
local hasParentA = iconA.parentIconUID
|
|
114
|
+
local hasParentB = iconB.parentIconUID
|
|
115
|
+
if hasParentA == hasParentB then
|
|
116
|
+
if orderA < orderB then
|
|
117
|
+
return true
|
|
118
|
+
end
|
|
119
|
+
if orderA > orderB then
|
|
120
|
+
return false
|
|
121
|
+
end
|
|
122
|
+
return iconA.widget.AbsolutePosition.X < iconB.widget.AbsolutePosition.X
|
|
123
|
+
elseif hasParentB then
|
|
124
|
+
return false
|
|
125
|
+
elseif hasParentA then
|
|
126
|
+
return true
|
|
127
|
+
end
|
|
128
|
+
return nil
|
|
129
|
+
end)
|
|
130
|
+
|
|
131
|
+
-- Finish up
|
|
132
|
+
orderedAvailableIcons[alignment] = ourOrderedIcons
|
|
133
|
+
return ourOrderedIcons
|
|
134
|
+
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
function Overflow.getRealXPositions(alignment, orderedIcons)
|
|
138
|
+
-- We calculate the the absolute position of icons instead of reading
|
|
139
|
+
-- directly to determine where they would be if not within an overflow
|
|
140
|
+
local isLeft = alignment == "Left"
|
|
141
|
+
local holder = holders[alignment]
|
|
142
|
+
local holderXPos = holder.AbsolutePosition.X
|
|
143
|
+
local holderXSize = holder.AbsoluteSize.X
|
|
144
|
+
local holderUIList = holder.UIListLayout
|
|
145
|
+
local topbarInset = holderUIList.Padding.Offset
|
|
146
|
+
local absoluteX = (isLeft and holderXPos) or holderXPos + holderXSize
|
|
147
|
+
local realXPositions = {}
|
|
148
|
+
if isLeft then
|
|
149
|
+
Utility.reverseTable(orderedIcons)
|
|
150
|
+
end
|
|
151
|
+
for i = #orderedIcons, 1, -1 do
|
|
152
|
+
local icon = orderedIcons[i]
|
|
153
|
+
local sizeX = Overflow.getWidth(icon)
|
|
154
|
+
if not isLeft then
|
|
155
|
+
absoluteX -= sizeX
|
|
156
|
+
end
|
|
157
|
+
realXPositions[icon.UID] = absoluteX
|
|
158
|
+
if isLeft then
|
|
159
|
+
absoluteX += sizeX
|
|
160
|
+
end
|
|
161
|
+
absoluteX += (isLeft and topbarInset) or -topbarInset
|
|
162
|
+
end
|
|
163
|
+
return realXPositions
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
function Overflow.updateBoundary(alignment)
|
|
167
|
+
|
|
168
|
+
-- We only track items that are directly on the topbar (i.e. not within a parent icon) or within an overflow
|
|
169
|
+
local holder = holders[alignment]
|
|
170
|
+
local holderUIList = holder.UIListLayout
|
|
171
|
+
local holderXPos = holder.AbsolutePosition.X
|
|
172
|
+
local holderXSize = holder.AbsoluteSize.X
|
|
173
|
+
local topbarInset = holderUIList.Padding.Offset
|
|
174
|
+
local topbarPadding = holderUIList.Padding.Offset
|
|
175
|
+
local BOUNDARY_GAP = topbarInset
|
|
176
|
+
local ourOrderedIcons = Overflow.updateAvailableIcons(alignment)
|
|
177
|
+
local boundWidth = 0
|
|
178
|
+
local ourTotal = 0
|
|
179
|
+
for _, icon in pairs(ourOrderedIcons) do
|
|
180
|
+
boundWidth += Overflow.getWidth(icon) + topbarPadding
|
|
181
|
+
ourTotal += 1
|
|
182
|
+
end
|
|
183
|
+
if ourTotal <= 0 then
|
|
184
|
+
return
|
|
185
|
+
end
|
|
186
|
+
|
|
187
|
+
-- These are the icons with menus which icons will be moved into
|
|
188
|
+
-- when overflowing
|
|
189
|
+
local isCentral = alignment == "Center"
|
|
190
|
+
local isLeft = alignment == "Left"
|
|
191
|
+
local isRight = not isLeft
|
|
192
|
+
local overflowIcon = overflowIcons[alignment]
|
|
193
|
+
if not overflowIcon and not isCentral and #ourOrderedIcons > 0 then
|
|
194
|
+
local order = (isLeft and -9999999) or 9999999
|
|
195
|
+
overflowIcon = Icon.new()--:setLabel(`{alignment}`)
|
|
196
|
+
overflowIcon:setImage(6069276526, "Deselected")
|
|
197
|
+
overflowIcon:setName("Overflow"..alignment)
|
|
198
|
+
overflowIcon:setOrder(order)
|
|
199
|
+
overflowIcon:setAlignment(alignment)
|
|
200
|
+
overflowIcon:autoDeselect(false)
|
|
201
|
+
overflowIcon.isAnOverflow = true
|
|
202
|
+
--overflowIcon:freezeMenu()
|
|
203
|
+
overflowIcon:select("OverflowStart", overflowIcon)
|
|
204
|
+
overflowIcon:setEnabled(false)
|
|
205
|
+
overflowIcons[alignment] = overflowIcon
|
|
206
|
+
overflowIconUIDs[overflowIcon.UID] = true
|
|
207
|
+
if not Icon.closeableOverflowMenus then
|
|
208
|
+
local iconSpot = overflowIcon:getInstance("IconSpot")
|
|
209
|
+
iconSpot.Visible = false
|
|
210
|
+
end
|
|
211
|
+
end
|
|
212
|
+
|
|
213
|
+
-- The default boundary is the point where both the left-most-right-icon
|
|
214
|
+
-- and left-most-right-icon meet OR the opposite side of the screen
|
|
215
|
+
local oppositeAlignment = (alignment == "Left" and "Right") or "Left"
|
|
216
|
+
local oppositeOrderedIcons = Overflow.updateAvailableIcons(oppositeAlignment)
|
|
217
|
+
local nearestOppositeIcon = (isLeft and oppositeOrderedIcons[1]) or (isRight and oppositeOrderedIcons[#oppositeOrderedIcons])
|
|
218
|
+
local oppositeOverflowIcon = overflowIcons[oppositeAlignment]
|
|
219
|
+
local boundary = (isLeft and holderXPos + holderXSize) or holderXPos
|
|
220
|
+
if nearestOppositeIcon then
|
|
221
|
+
local oppositeRealXPositions = Overflow.getRealXPositions(oppositeAlignment, oppositeOrderedIcons)
|
|
222
|
+
local oppositeX = oppositeRealXPositions[nearestOppositeIcon.UID]
|
|
223
|
+
local oppositeXSize = Overflow.getWidth(nearestOppositeIcon)
|
|
224
|
+
boundary = (isLeft and oppositeX - BOUNDARY_GAP) or oppositeX + oppositeXSize + BOUNDARY_GAP
|
|
225
|
+
end
|
|
226
|
+
|
|
227
|
+
-- We get the left-most icon (if left alignment) or right-most-icon (if
|
|
228
|
+
-- right alignment) of the central icons group to see if we need to change
|
|
229
|
+
-- the boundary (if the central icon boundary is smaller than the alignment
|
|
230
|
+
-- boundary then we use the central)
|
|
231
|
+
local totalChecks = 0
|
|
232
|
+
local usingNearestCenter = false
|
|
233
|
+
local function checkToShiftCentralIcon()
|
|
234
|
+
local centerOrderedIcons = Overflow.getAvailableIcons("Center")
|
|
235
|
+
local centerPos = (isLeft and 1) or #centerOrderedIcons
|
|
236
|
+
local nearestCenterIcon = centerOrderedIcons[centerPos]
|
|
237
|
+
local function secondaryCheck()
|
|
238
|
+
if not beganSecondaryCenterCheck then
|
|
239
|
+
beganSecondaryCenterCheck = true
|
|
240
|
+
task.delay(3, Overflow.updateBoundary, alignment)
|
|
241
|
+
end
|
|
242
|
+
end
|
|
243
|
+
if nearestCenterIcon and not nearestCenterIcon.hasRelocatedInOverflow then
|
|
244
|
+
local ourNearestIcon = (isLeft and ourOrderedIcons[#ourOrderedIcons]) or (isRight and ourOrderedIcons[1])
|
|
245
|
+
local centralNearestXPos = nearestCenterIcon.widget.AbsolutePosition.X
|
|
246
|
+
local ourNearestXPos = ourNearestIcon.widget.AbsolutePosition.X
|
|
247
|
+
local ourNearestXSize = Overflow.getWidth(ourNearestIcon)
|
|
248
|
+
local centerBoundary = (isLeft and centralNearestXPos-BOUNDARY_GAP) or centralNearestXPos + Overflow.getWidth(nearestCenterIcon) + BOUNDARY_GAP
|
|
249
|
+
local removeBoundary = (isLeft and ourNearestXPos + ourNearestXSize) or ourNearestXPos
|
|
250
|
+
local hasShifted = false
|
|
251
|
+
if isLeft then
|
|
252
|
+
if centerBoundary < removeBoundary then
|
|
253
|
+
if not beginCheckingCenterIcons then
|
|
254
|
+
secondaryCheck()
|
|
255
|
+
return
|
|
256
|
+
end
|
|
257
|
+
nearestCenterIcon:align("Left")
|
|
258
|
+
nearestCenterIcon.hasRelocatedInOverflow = true
|
|
259
|
+
hasShifted = true
|
|
260
|
+
end
|
|
261
|
+
elseif isRight then
|
|
262
|
+
if centerBoundary > removeBoundary then
|
|
263
|
+
if not beginCheckingCenterIcons or removeBoundary < 0 then
|
|
264
|
+
secondaryCheck()
|
|
265
|
+
return
|
|
266
|
+
end
|
|
267
|
+
nearestCenterIcon:align("Right")
|
|
268
|
+
nearestCenterIcon.hasRelocatedInOverflow = true
|
|
269
|
+
hasShifted = true
|
|
270
|
+
end
|
|
271
|
+
end
|
|
272
|
+
if hasShifted then
|
|
273
|
+
totalChecks += 1
|
|
274
|
+
if totalChecks <= 4 then
|
|
275
|
+
Overflow.updateAvailableIcons("Center")
|
|
276
|
+
checkToShiftCentralIcon()
|
|
277
|
+
end
|
|
278
|
+
end
|
|
279
|
+
end
|
|
280
|
+
end
|
|
281
|
+
checkToShiftCentralIcon()
|
|
282
|
+
|
|
283
|
+
--[[
|
|
284
|
+
This updates the maximum size of the overflow menus
|
|
285
|
+
The menu determines its bounds from the smallest of either:
|
|
286
|
+
1. The closest center-aligned icon (i.e. the boundary)
|
|
287
|
+
2. The edge of the opposite overflow menu UNLESS...
|
|
288
|
+
3. ... the edge exceeds more than half the screenGui
|
|
289
|
+
--]]
|
|
290
|
+
if overflowIcon then
|
|
291
|
+
local menuBoundary = boundary
|
|
292
|
+
local menu = overflowIcon:getInstance("Menu")
|
|
293
|
+
local holderXEndPos = holderXPos + holderXSize
|
|
294
|
+
local menuWidth = holderXSize
|
|
295
|
+
if menu and oppositeOverflowIcon then
|
|
296
|
+
local oppositeWidget = oppositeOverflowIcon.widget
|
|
297
|
+
local oppositeXPos = oppositeWidget.AbsolutePosition.X
|
|
298
|
+
local oppositeXSize = Overflow.getWidth(oppositeOverflowIcon)
|
|
299
|
+
local oppositeBoundary = (isLeft and oppositeXPos - BOUNDARY_GAP) or oppositeXPos + oppositeXSize + BOUNDARY_GAP
|
|
300
|
+
local oppositeMenu = oppositeOverflowIcon:getInstance("Menu")
|
|
301
|
+
local isDominant = menu.AbsoluteCanvasSize.X >= oppositeMenu.AbsoluteCanvasSize.X
|
|
302
|
+
if not usingNearestCenter then
|
|
303
|
+
local halfwayXPos = holderXPos + holderXSize/2
|
|
304
|
+
local halfwayBoundary = (isLeft and halfwayXPos - BOUNDARY_GAP/2) or halfwayXPos + BOUNDARY_GAP/2
|
|
305
|
+
menuBoundary = halfwayBoundary
|
|
306
|
+
if isDominant then
|
|
307
|
+
menuBoundary = oppositeBoundary
|
|
308
|
+
end
|
|
309
|
+
end
|
|
310
|
+
menuWidth = (isLeft and menuBoundary - holderXPos) or (holderXEndPos - menuBoundary)
|
|
311
|
+
end
|
|
312
|
+
local currentMaxWidth = menu and menu:GetAttribute("MaxWidth")
|
|
313
|
+
menuWidth = Utility.round(menuWidth)
|
|
314
|
+
if menu and currentMaxWidth ~= menuWidth then
|
|
315
|
+
menu:SetAttribute("MaxWidth", menuWidth)
|
|
316
|
+
end
|
|
317
|
+
end
|
|
318
|
+
|
|
319
|
+
-- Parent ALL icons of that alignment into the overflow if at least on
|
|
320
|
+
-- sibling exceeds the bounds.
|
|
321
|
+
-- We calculate the the absolute position of icons instead of reading
|
|
322
|
+
-- directly to determine where they would be if not within an overflow
|
|
323
|
+
local joinOverflow = false
|
|
324
|
+
local realXPositions = Overflow.getRealXPositions(alignment, ourOrderedIcons)
|
|
325
|
+
for i = #ourOrderedIcons, 1, -1 do
|
|
326
|
+
local icon = ourOrderedIcons[i]
|
|
327
|
+
local widgetX = Overflow.getWidth(icon)
|
|
328
|
+
local xPos = realXPositions[icon.UID]
|
|
329
|
+
if (isLeft and xPos + widgetX >= boundary) or (isRight and xPos <= boundary) then
|
|
330
|
+
joinOverflow = true
|
|
331
|
+
end
|
|
332
|
+
end
|
|
333
|
+
for i = #ourOrderedIcons, 1, -1 do
|
|
334
|
+
local icon = ourOrderedIcons[i]
|
|
335
|
+
local isOverflow = overflowIconUIDs[icon.UID]
|
|
336
|
+
if not isOverflow then
|
|
337
|
+
if joinOverflow and not icon.parentIconUID then
|
|
338
|
+
icon:joinMenu(overflowIcon)
|
|
339
|
+
elseif not joinOverflow and icon.parentIconUID then
|
|
340
|
+
icon:leave()
|
|
341
|
+
end
|
|
342
|
+
end
|
|
343
|
+
end
|
|
344
|
+
|
|
345
|
+
-- Hide the overflows when not in use
|
|
346
|
+
if overflowIcon.isEnabled ~= joinOverflow then
|
|
347
|
+
overflowIcon:setEnabled(joinOverflow)
|
|
348
|
+
end
|
|
349
|
+
|
|
350
|
+
-- Have the menus auto selected
|
|
351
|
+
if overflowIcon.isEnabled and not overflowIcon.overflowAlreadyOpened then
|
|
352
|
+
overflowIcon.overflowAlreadyOpened = true
|
|
353
|
+
overflowIcon:select()
|
|
354
|
+
end
|
|
355
|
+
|
|
356
|
+
end
|
|
357
|
+
|
|
358
|
+
|
|
359
|
+
|
|
360
|
+
return Overflow
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
-- This is to provide backwards compatability with the old Roblox
|
|
2
|
+
-- topbar while experiences transition over to the new topbar
|
|
3
|
+
-- You don't need to apply this yourself, topbarplus automatically
|
|
4
|
+
-- applies it if the old roblox topbar is detected
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
return {
|
|
8
|
+
{"Selection", "Size", UDim2.new(1, -6, 1, -5)},
|
|
9
|
+
{"Selection", "Position", UDim2.new(0, 3, 0, 3)},
|
|
10
|
+
|
|
11
|
+
{"Widget", "MinimumWidth", 32, "Deselected"},
|
|
12
|
+
{"Widget", "MinimumHeight", 32, "Deselected"},
|
|
13
|
+
{"Widget", "BorderSize", 0, "Deselected"},
|
|
14
|
+
{"IconCorners", "CornerRadius", UDim.new(0, 9), "Deselected"},
|
|
15
|
+
{"IconButton", "BackgroundTransparency", 0.5, "Deselected"},
|
|
16
|
+
{"IconLabel", "TextSize", 14, "Deselected"},
|
|
17
|
+
{"Dropdown", "BackgroundTransparency", 0.5, "Deselected"},
|
|
18
|
+
{"Notice", "Position", UDim2.new(1, -12, 0, -3), "Deselected"},
|
|
19
|
+
{"Notice", "Size", UDim2.new(0, 15, 0, 15), "Deselected"},
|
|
20
|
+
{"NoticeLabel", "TextSize", 11, "Deselected"},
|
|
21
|
+
|
|
22
|
+
{"IconSpot", "BackgroundColor3", Color3.fromRGB(0, 0, 0), "Selected"},
|
|
23
|
+
{"IconSpot", "BackgroundTransparency", 0.702, "Selected"},
|
|
24
|
+
{"IconSpotGradient", "Enabled", false, "Selected"},
|
|
25
|
+
{"IconOverlay", "BackgroundTransparency", 0.97, "Selected"},
|
|
26
|
+
|
|
27
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
-- Themes in v3 work simply by applying the value (agument[3])
|
|
2
|
+
-- to the property (agument[2]) of an instance within the icon which
|
|
3
|
+
-- matches the name of argument[1]. Argument[1] can also be used to
|
|
4
|
+
-- specify a collection of instances with a corresponding 'collective'
|
|
5
|
+
-- value. A colletive is simply an attribute applied to some instances
|
|
6
|
+
-- within the icon to group them together (such as "IconCorners").
|
|
7
|
+
-- If the property (argument[2]) does not exist within the instance,
|
|
8
|
+
-- it will instead be applied as an attribute on the instance:
|
|
9
|
+
-- (i.e. ``instance:SetAttribute(argument[2], [argument[3])``)
|
|
10
|
+
-- Use argument[4] to specify a state: "Deselected", "Selected"
|
|
11
|
+
-- or "Viewing". If argument[4] is empty the state will default
|
|
12
|
+
-- to "Deselected".
|
|
13
|
+
-- I've designed themes this way so you have full control over
|
|
14
|
+
-- the appearance of the widget and its descendants
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
return {
|
|
18
|
+
|
|
19
|
+
-- When no state is specified the modification is applied to *all* states (Deselected, Selected and Viewing)
|
|
20
|
+
{"IconCorners", "CornerRadius", UDim.new(1, 0)},
|
|
21
|
+
{"Selection", "RotationSpeed", 1},
|
|
22
|
+
{"Selection", "Size", UDim2.new(1, 0, 1, 1)},
|
|
23
|
+
{"Selection", "Position", UDim2.new(0, 0, 0, 0)},
|
|
24
|
+
{"SelectionGradient", "Color", ColorSequence.new({
|
|
25
|
+
ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 255, 255)),
|
|
26
|
+
ColorSequenceKeypoint.new(1, Color3.fromRGB(86, 86, 86)),
|
|
27
|
+
})},
|
|
28
|
+
|
|
29
|
+
-- When the icon is deselected
|
|
30
|
+
{"IconImage", "Image", "", "Deselected"},
|
|
31
|
+
{"IconLabel", "Text", "", "Deselected"},
|
|
32
|
+
{"IconLabel", "Position", UDim2.fromOffset(0, 0), "Deselected"}, -- 0, -1
|
|
33
|
+
{"Widget", "DesiredWidth", 44, "Deselected"},
|
|
34
|
+
{"Widget", "MinimumWidth", 44, "Deselected"},
|
|
35
|
+
{"Widget", "MinimumHeight", 44, "Deselected"},
|
|
36
|
+
{"Widget", "BorderSize", 4, "Deselected"},
|
|
37
|
+
{"IconButton", "BackgroundColor3", Color3.fromRGB(18, 18, 21), "Deselected"},
|
|
38
|
+
{"IconButton", "BackgroundTransparency", 0.08, "Deselected"},
|
|
39
|
+
{"IconImageScale", "Value", 0.5, "Deselected"},
|
|
40
|
+
{"IconImageCorner", "CornerRadius", UDim.new(0, 0), "Deselected"},
|
|
41
|
+
{"IconImage", "ImageColor3", Color3.fromRGB(255, 255, 255), "Deselected"},
|
|
42
|
+
{"IconImage", "ImageTransparency", 0, "Deselected"},
|
|
43
|
+
{"IconImageRatio", "AspectRatio", 1, "Deselected"},
|
|
44
|
+
{"IconLabel", "FontFace", Font.new("rbxasset://fonts/families/BuilderSans.json", Enum.FontWeight.Bold, Enum.FontStyle.Normal), "Deselected"},
|
|
45
|
+
{"IconLabel", "TextSize", 16, "Deselected"},
|
|
46
|
+
{"IconSpot", "BackgroundTransparency", 1, "Deselected"},
|
|
47
|
+
{"IconOverlay", "BackgroundTransparency", 0.85, "Deselected"},
|
|
48
|
+
{"IconSpotGradient", "Enabled", false, "Deselected"},
|
|
49
|
+
{"IconGradient", "Enabled", false, "Deselected"},
|
|
50
|
+
{"ClickRegion", "Active", true, "Deselected"}, -- This is set to false within scrollers to ensure scroller can be dragged on mobile
|
|
51
|
+
{"Menu", "Active", false, "Deselected"},
|
|
52
|
+
{"ContentsList", "HorizontalAlignment", Enum.HorizontalAlignment.Center, "Deselected"},
|
|
53
|
+
{"Dropdown", "BackgroundColor3", Color3.fromRGB(18, 18, 21), "Deselected"},
|
|
54
|
+
{"Dropdown", "BackgroundTransparency", 0.08, "Deselected"},
|
|
55
|
+
{"Dropdown", "MaxIcons", 4.5, "Deselected"},
|
|
56
|
+
{"Menu", "MaxIcons", 4, "Deselected"},
|
|
57
|
+
{"Notice", "Position", UDim2.new(1, -12, 0, -1), "Deselected"},
|
|
58
|
+
{"Notice", "Size", UDim2.new(0, 20, 0, 20), "Deselected"},
|
|
59
|
+
{"NoticeLabel", "TextSize", 13, "Deselected"},
|
|
60
|
+
{"PaddingLeft", "Size", UDim2.new(0, 9, 1, 0), "Deselected"},
|
|
61
|
+
{"PaddingRight", "Size", UDim2.new(0, 11, 1, 0), "Deselected"},
|
|
62
|
+
|
|
63
|
+
-- When the icon is selected
|
|
64
|
+
-- Selected also inherits everything from Deselected if nothing is set
|
|
65
|
+
{"IconSpot", "BackgroundTransparency", 0.7, "Selected"},
|
|
66
|
+
{"IconSpot", "BackgroundColor3", Color3.fromRGB(255, 255, 255), "Selected"},
|
|
67
|
+
{"IconSpotGradient", "Enabled", true, "Selected"},
|
|
68
|
+
{"IconSpotGradient", "Rotation", 45, "Selected"},
|
|
69
|
+
{"IconSpotGradient", "Color", ColorSequence.new(Color3.fromRGB(96, 98, 100), Color3.fromRGB(77, 78, 80)), "Selected"},
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
-- When a cursor is hovering above, a controller highlighting, or touchpad (mobile) pressing (but not released)
|
|
73
|
+
--{"IconSpot", "BackgroundTransparency", 0.75, "Viewing"},
|
|
74
|
+
|
|
75
|
+
}
|