Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
4ce7e60
Fix DrawUtil issues
Raild3x Oct 21, 2024
76a6883
Fixed issue with line drawing in drawUtil not rotating line properly
Raild3x Dec 4, 2024
41d3798
Merge branch 'main' into auto_deploy_test
Raild3x Jan 9, 2025
7547b6b
1.8.0
Raild3x Jan 9, 2025
f399d0d
Fix for tasks not cleaning up properly
Raild3x Jan 15, 2025
a0d9a1d
Type Fixes and bug fix for addTask
Raild3x Jan 17, 2025
f57389c
Update wally.toml
Raild3x Jan 17, 2025
59b5076
Added clock function and cleaned up some documentation
Raild3x Jan 23, 2025
e39f52b
Adjusted error message in Math.tryRandom
Raild3x Jan 23, 2025
56c2119
Small syntax fix to FusionUtil
Raild3x Jan 23, 2025
51b2f89
Bugfix where i caused an issue when mass replacing documentation
Raild3x Jan 23, 2025
7d35433
Forgot to add runservice to the global vars
Raild3x Jan 24, 2025
76bb076
Fixed CameraUtil issues and added ViewPortX for consistency
Raild3x Jan 31, 2025
06a751c
Added greedy meshing table util function
Raild3x Jan 31, 2025
8cbcfd0
Updated some documentation and added ration util functions
Raild3x Jan 31, 2025
c268be6
Move TblUtil to its folder
Raild3x Jan 31, 2025
56c11e5
Added InputUtil
Raild3x Feb 5, 2025
7d61957
Fixed bug in playerUtil requiring a function in an optional arg
Raild3x Feb 5, 2025
7acbcf3
Updated several stringutil functions to be easier to use
Raild3x Feb 6, 2025
ceafc63
Changed to Rokit
Raild3x Feb 6, 2025
d99d14b
Adjusted test runner file types
Raild3x Feb 6, 2025
ad6499d
Adjusted documentation paths
Raild3x Feb 6, 2025
e9c0671
v1.12.0
Raild3x Feb 12, 2025
00d2ffc
1.14.0
Raild3x Mar 13, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Aftman
uses: ok-nick/setup-aftman@v0.4.2
- name: Install Rokit
uses: raild3x/setup-rokit@v0.1.1
- name: Run Selene
run: selene src
build_docs:
Expand Down
28 changes: 25 additions & 3 deletions moonwave.toml
Original file line number Diff line number Diff line change
@@ -1,11 +1,33 @@
gitSourceBranch = "main"

[[classOrder]]
classes = ["RailUtil"]
classes = [
"RailUtil",
"--------"
]

[[classOrder]]
classes = ["--------"]
classes = [
"MathUtil",
"VectorUtil",
"StringUtil",
"TableUtil",
"InstanceUtil",
"PlayerUtil",
"CameraUtil",
"SignalUtil",
]

[[classOrder]]
section = "InputUtil"
classes = ["InputUtil", "PreferredInput", "Mouse", "Keyboard", "Touch", "Gamepad"]

[[classOrder]]
section = "FusionUtil"
classes = ["FusionUtil", "[0.3.0] FusionUtil", "[0.2.5] FusionUtil", "[0.2.0] FusionUtil"]
classes = ["FusionUtil", "[0.3.0] FusionUtil", "[0.2.5] FusionUtil", "[0.2.0] FusionUtil"]

[[classOrder]]
classes = [
"DrawUtil",
"DebugUtil",
]
File renamed without changes.
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion sourcemap.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"name":"railutil","className":"Folder","filePaths":["default.project.json"],"children":[{"name":"RailUtil","className":"ModuleScript","filePaths":["src\\RailUtil\\init.luau"],"children":[{"name":"--------","className":"ModuleScript","filePaths":["src\\RailUtil\\--------.luau"]},{"name":"CameraUtil","className":"ModuleScript","filePaths":["src\\RailUtil\\CameraUtil.luau"]},{"name":"DebugUtil","className":"ModuleScript","filePaths":["src\\RailUtil\\DebugUtil.luau"]},{"name":"DrawUtil","className":"ModuleScript","filePaths":["src\\RailUtil\\DrawUtil.luau"]},{"name":"FusionUtil","className":"ModuleScript","filePaths":["src\\RailUtil\\FusionUtil\\init.luau"],"children":[{"name":"FusionUtil_v0_2_0","className":"ModuleScript","filePaths":["src\\RailUtil\\FusionUtil\\FusionUtil_v0_2_0.luau"]},{"name":"FusionUtil_v0_2_5","className":"ModuleScript","filePaths":["src\\RailUtil\\FusionUtil\\FusionUtil_v0_2_5.luau"]},{"name":"FusionUtil_v0_3_0","className":"ModuleScript","filePaths":["src\\RailUtil\\FusionUtil\\FusionUtil_v0_3_0.luau"]},{"name":"FusionUtil_v0_3_0.spec","className":"ModuleScript","filePaths":["src\\RailUtil\\FusionUtil\\FusionUtil_v0_3_0.spec.luau"]}]},{"name":"InstanceUtil","className":"ModuleScript","filePaths":["src\\RailUtil\\InstanceUtil\\init.luau"],"children":[{"name":"init.spec","className":"ModuleScript","filePaths":["src\\RailUtil\\InstanceUtil\\init.spec.luau"]}]},{"name":"MathUtil","className":"ModuleScript","filePaths":["src\\RailUtil\\MathUtil.luau"]},{"name":"PlayerUtil","className":"ModuleScript","filePaths":["src\\RailUtil\\PlayerUtil.luau"]},{"name":"RailUtilTypes","className":"ModuleScript","filePaths":["src\\RailUtil\\RailUtilTypes.luau"]},{"name":"SignalUtil","className":"ModuleScript","filePaths":["src\\RailUtil\\SignalUtil\\init.luau"],"children":[{"name":"SignalProxy","className":"ModuleScript","filePaths":["src\\RailUtil\\SignalUtil\\SignalProxy.luau"]}]},{"name":"StringUtil","className":"ModuleScript","filePaths":["src\\RailUtil\\StringUtil\\init.luau"],"children":[{"name":"init.spec","className":"ModuleScript","filePaths":["src\\RailUtil\\StringUtil\\init.spec.luau"]}]},{"name":"TblUtil","className":"ModuleScript","filePaths":["src\\RailUtil\\TblUtil.luau"]},{"name":"VectorUtil","className":"ModuleScript","filePaths":["src\\RailUtil\\VectorUtil.luau"]},{"name":"wally","className":"ModuleScript","filePaths":["src\\RailUtil\\wally.toml"]}]}]}
{"name":"railutil","className":"Folder","filePaths":["default.project.json"],"children":[{"name":"RailUtil","className":"ModuleScript","filePaths":["src\\RailUtil\\init.luau"],"children":[{"name":"--------","className":"ModuleScript","filePaths":["src\\RailUtil\\--------.luau"]},{"name":"CameraUtil","className":"ModuleScript","filePaths":["src\\RailUtil\\CameraUtil.luau"]},{"name":"DebugUtil","className":"ModuleScript","filePaths":["src\\RailUtil\\DebugUtil.luau"]},{"name":"DrawUtil","className":"ModuleScript","filePaths":["src\\RailUtil\\DrawUtil.luau"]},{"name":"FusionUtil","className":"ModuleScript","filePaths":["src\\RailUtil\\FusionUtil\\init.luau"],"children":[{"name":"FusionUtil_v0_2_0","className":"ModuleScript","filePaths":["src\\RailUtil\\FusionUtil\\FusionUtil_v0_2_0.luau"]},{"name":"FusionUtil_v0_2_5","className":"ModuleScript","filePaths":["src\\RailUtil\\FusionUtil\\FusionUtil_v0_2_5.luau"]},{"name":"FusionUtil_v0_3_0","className":"ModuleScript","filePaths":["src\\RailUtil\\FusionUtil\\FusionUtil_v0_3_0.luau"]},{"name":"FusionUtil_v0_3_0.spec","className":"ModuleScript","filePaths":["src\\RailUtil\\FusionUtil\\FusionUtil_v0_3_0.spec.luau"]}]},{"name":"InputUtil","className":"ModuleScript","filePaths":["src\\RailUtil\\InputUtil\\init.luau"],"children":[{"name":"Gamepad","className":"ModuleScript","filePaths":["src\\RailUtil\\InputUtil\\Gamepad.luau"]},{"name":"Keyboard","className":"ModuleScript","filePaths":["src\\RailUtil\\InputUtil\\Keyboard.luau"]},{"name":"Mouse","className":"ModuleScript","filePaths":["src\\RailUtil\\InputUtil\\Mouse.luau"]},{"name":"PreferredInput","className":"ModuleScript","filePaths":["src\\RailUtil\\InputUtil\\PreferredInput.luau"]},{"name":"Touch","className":"ModuleScript","filePaths":["src\\RailUtil\\InputUtil\\Touch.luau"]}]},{"name":"InstanceUtil","className":"ModuleScript","filePaths":["src\\RailUtil\\InstanceUtil\\init.luau"],"children":[{"name":"init.spec","className":"ModuleScript","filePaths":["src\\RailUtil\\InstanceUtil\\init.spec.luau"]}]},{"name":"MathUtil","className":"ModuleScript","filePaths":["src\\RailUtil\\MathUtil.luau"]},{"name":"PlayerUtil","className":"ModuleScript","filePaths":["src\\RailUtil\\PlayerUtil.luau"]},{"name":"RailUtilTypes","className":"ModuleScript","filePaths":["src\\RailUtil\\RailUtilTypes.luau"]},{"name":"SignalUtil","className":"ModuleScript","filePaths":["src\\RailUtil\\SignalUtil\\init.luau"],"children":[{"name":"SignalProxy","className":"ModuleScript","filePaths":["src\\RailUtil\\SignalUtil\\SignalProxy.luau"]}]},{"name":"StringUtil","className":"ModuleScript","filePaths":["src\\RailUtil\\StringUtil\\init.luau"],"children":[{"name":"init.spec","className":"ModuleScript","filePaths":["src\\RailUtil\\StringUtil\\init.spec.luau"]}]},{"name":"TblUtil","className":"ModuleScript","filePaths":["src\\RailUtil\\TblUtil\\init.luau"],"children":[{"name":"TblUtil.spec","className":"ModuleScript","filePaths":["src\\RailUtil\\TblUtil\\TblUtil.spec.luau"]}]},{"name":"VectorUtil","className":"ModuleScript","filePaths":["src\\RailUtil\\VectorUtil.luau"]},{"name":"wally","className":"ModuleScript","filePaths":["src\\RailUtil\\wally.toml"]}]}]}
9 changes: 9 additions & 0 deletions src/RailUtil/.storybook.luau
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@

local storybook = {
name = "RailUtil",
storyRoots = {
script.Parent,
},
}

return storybook
19 changes: 13 additions & 6 deletions src/RailUtil/CameraUtil.luau
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ pcall(function()
IS_EDIT = game:GetService("RunService"):IsEdit()
end)

local scope = Fusion.scoped({Fusion})
local scope = Fusion:scoped()

--------------------------------------------------------------------------------
--// Class //--
Expand Down Expand Up @@ -66,25 +66,32 @@ CameraUtil.CameraCFrame = scope:Value(CurrentCamera.CFrame) :: State<CFrame>
]=]
CameraUtil.ViewportSize = scope:Value(CurrentCamera.ViewportSize) :: State<Vector2>

--[=[
@prop ViewportSizeX State<number>
@within CameraUtil
A Fusion Computed containing the current camera's ViewportSize.X.
]=]
CameraUtil.ViewportSizeX = scope:Value(CurrentCamera.ViewportSize.X) :: State<number>

--[=[
@prop ViewportSizeY State<number>
@within CameraUtil
A Fusion Computed containing the current camera's ViewportSize.Y.
]=]
CameraUtil.ViewportSizeY = scope:Computed(function(use)
return use(CameraUtil.ViewportSize).Y
end) :: Computed<number>
CameraUtil.ViewportSizeY = scope:Value(CurrentCamera.ViewportSize.Y) :: State<number>


-- INITIALIZATION HANDLING OF STATES --
if RunService:IsClient() or (IS_EDIT) then
-- Init State Updates --
CurrentCamera:GetPropertyChangedSignal("ViewportSize"):Connect(function()
CameraUtil.ViewportSize:set(CurrentCamera.ViewportSize)
CameraUtil.ViewportSizeX:set(CurrentCamera.ViewportSize.X)
CameraUtil.ViewportSizeY:set(CurrentCamera.ViewportSize.Y)
end)

workspace.CurrentCamera:GetPropertyChangedSignal("CFrame"):Connect(function()
CameraUtil.CameraCFrame:set(workspace.CurrentCamera.CFrame)
CurrentCamera:GetPropertyChangedSignal("CFrame"):Connect(function()
CameraUtil.CameraCFrame:set(CurrentCamera.CFrame)
end)
end

Expand Down
16 changes: 11 additions & 5 deletions src/RailUtil/DrawUtil.luau
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
```
]=]

local HttpService = game:GetService("HttpService")
type PartProps = {
Name: string?,
CFrame: CFrame?,
Expand Down Expand Up @@ -65,7 +66,11 @@ end
DrawUtil.vector("MyVector", Vector3.new(0, 0, 0), Vector3.new(10, 10, 10), Color3.new(1, 0, 0), 1)
```
]=]
function DrawUtil.vector(name: string, from: (Vector3 | CFrame | PVInstance | Attachment), to: (Vector3 | CFrame | PVInstance | Attachment)?, color: Color3?, _scale: number?)
function DrawUtil.vector(name: string?, from: (Vector3 | CFrame | PVInstance | Attachment), to: (Vector3 | CFrame | PVInstance | Attachment)?, color: Color3?, _scale: number?)
if not name then
name = HttpService:GenerateGUID(false)
end

if typeof(from) == "Instance" then
if from:IsA("PVInstance") then
from = from:GetPivot()
Expand Down Expand Up @@ -124,8 +129,6 @@ function DrawUtil.vector(name: string, from: (Vector3 | CFrame | PVInstance | At
else
color = color or shaft.Color3
end
shaft.Height = (from - to).Magnitude - 2
shaft.CFrame = CFrame.lookAt(((from + to) / 2) - ((to - from).Unit * 1), to)

if shaft.Parent == nil then
shaft.Name = name .. "_shaft"
Expand All @@ -139,6 +142,8 @@ function DrawUtil.vector(name: string, from: (Vector3 | CFrame | PVInstance | At
shaft.ZIndex = 5 - math.ceil(scale)
end

shaft.Height = (from - to).Magnitude - 2
shaft.CFrame = CFrame.lookAt(((from + to) / 2) - ((to - from).Unit * 1), to)
shaft.Parent = arrow

local pointy = arrow:FindFirstChild(name .. "_head") or Instance.new("ConeHandleAdornment")
Expand All @@ -157,6 +162,7 @@ function DrawUtil.vector(name: string, from: (Vector3 | CFrame | PVInstance | At
end

pointy.CFrame = CFrame.lookAt((CFrame.lookAt(to, from) * CFrame.new(0, 0, -2 - ((scale - 1) / 2))).Position, to)
pointy.Parent = arrow

arrow.Parent = container

Expand Down Expand Up @@ -206,7 +212,7 @@ function DrawUtil.point(name: string, position: Vector3 | CFrame, radius: number
end

point.Position = position
point.Size = Vector3.one * radius
point.Size = Vector3.one * radius :: number
point.Color = color

point.Parent = container
Expand Down Expand Up @@ -243,7 +249,7 @@ function DrawUtil.line(name: string, from: Vector3, to: Vector3, radius: number?
line.Shape = Enum.PartType.Cylinder
end

line.CFrame = CFrame.lookAt(from, to) * CFrame.new(0, 0, -((from - to).Magnitude / 2))
line.CFrame = CFrame.lookAt(from, to) * CFrame.new(0, 0, -((from - to).Magnitude / 2)) * CFrame.Angles(0, math.pi / 2, 0)
line.Size = Vector3.new((from - to).Magnitude, radius, radius)
line.Color = color or Color3.new(1, 1, 1)

Expand Down
Loading
Loading