2024-08-07 16:45:56 +00:00
|
|
|
local ReplicatedStorage = game:GetService("ReplicatedStorage")
|
2024-09-09 01:38:47 +00:00
|
|
|
local blink = require(ReplicatedStorage.net)
|
2024-12-26 05:15:41 +00:00
|
|
|
local std = ReplicatedStorage.std
|
|
|
|
local world = require(std.world)
|
|
|
|
local ref = require(std.ref)
|
2024-08-07 16:45:56 +00:00
|
|
|
|
2024-12-26 05:15:41 +00:00
|
|
|
local cts = require(std.components)
|
2024-08-07 16:45:56 +00:00
|
|
|
|
|
|
|
local Model = cts.Model
|
|
|
|
local Transform = cts.Transform
|
|
|
|
|
2024-12-26 05:15:41 +00:00
|
|
|
local moving_models = world:query(Transform, Model):cached()
|
2024-08-07 16:45:56 +00:00
|
|
|
local function move(dt: number)
|
2024-12-26 05:15:41 +00:00
|
|
|
for _, transform, model in moving_models do
|
2024-10-12 20:18:11 +00:00
|
|
|
local cf = transform.new
|
|
|
|
if cf ~= transform.old then
|
2024-12-26 05:15:41 +00:00
|
|
|
local part = model.PrimaryPart :: BasePart
|
|
|
|
local origo = part.CFrame
|
|
|
|
part.CFrame = origo:Lerp(cf, 1)
|
2024-10-12 20:18:11 +00:00
|
|
|
transform.old = cf
|
|
|
|
end
|
|
|
|
end
|
2024-08-07 16:45:56 +00:00
|
|
|
end
|
|
|
|
|
2024-09-09 01:38:47 +00:00
|
|
|
local function syncTransforms()
|
2024-10-12 20:18:11 +00:00
|
|
|
for _, id, cf in blink.UpdateTransform.Iter() do
|
2024-12-26 05:15:41 +00:00
|
|
|
local e = ref("server-" .. tostring(id))
|
|
|
|
local transform = world:get(e, Transform)
|
2024-10-12 20:18:11 +00:00
|
|
|
if not transform then
|
|
|
|
continue
|
|
|
|
end
|
|
|
|
transform.new = cf
|
|
|
|
end
|
2024-09-09 01:38:47 +00:00
|
|
|
end
|
|
|
|
|
2024-12-26 05:15:41 +00:00
|
|
|
local scheduler = require(std.scheduler)
|
|
|
|
|
|
|
|
scheduler.SYSTEM(move)
|
|
|
|
scheduler.SYSTEM(syncTransforms)
|
|
|
|
|
|
|
|
return 0
|