@antivivi/jconveyor
v0.0.0
Published
Roblox tycoon simulated conveyor physics system
Downloads
10
Readme
JConveyor
A simple physics simulating system that attempts to optimize Roblox step contacts with interpolation and raycasts.
To set up JConveyor, you will need to have:
- A
workspace.Droplets
folder where parts will be simulated as soon as they land on a registered JConveyor. - A unique droplet Name system. The Name property of each droplet must be unique and a 32-bit integer; this is for easy data serialization, though this can change in the future. A simple auto-incrementing by 1 system will suffice.
- An Actor that runs the module on a parallel thread. Not required, but highly recommended.
Transform a part with an AssemblyLinearVelocity into a JConveyor with JConveyor.new
which will make the part start listening to droplet touches.
- Server-wise, droplets landing onto the conveyor will seemingly teleport to the end of the conveyor after the calculated duration it would take normally.
- Client-wise, droplets will be interpolated to the end of the conveyor.
Since droplets are anchored when travelling on JConveyors, their .Touched
events will not fire. Instead, use JConveyor.touched(BasePart)
on parts that need to listen to droplet collisions.
Limitations
JConveyor cannot do the following:
- Simulating conveyors with a part shape other than
Block
. - Simulate the same droplet on the same conveyor more than once.
- Proper falling physics. Droplets are rotationally aligned when touching conveyors, and the interpolation for this on the client looks choppy.
- Simulate overlapping conveyors.
Client-side, JConveyor can also increase network received usage and lower FPS, though this problem is mostly localized to low-end devices.