SyntaxGameServer/Scripts/Asset.lua

75 lines
4.8 KiB
Lua

local assetId, baseUrl, fileExtension, x, y, UploadURL, reqid, reqstarttime = ...
local ThumbnailGenerator = game:GetService("ThumbnailGenerator")
local ContentProvider = game:GetService("ContentProvider")
local InsertService = game:GetService("InsertService")
game:GetService('StarterGui'):SetCoreGuiEnabled(Enum.CoreGuiType.All, false);
pcall(function() game:GetService("ContentProvider"):SetBaseUrl(baseUrl) end)
game:GetService("ScriptContext").ScriptsDisabled = true
local asset = nil
local success,errormsg = pcall(function()
asset = game:GetObjects(baseUrl.."/asset/?id="..tostring(assetId))[1]
asset.Parent = game.Workspace
end)
if not success then
warn(errormsg)
local ErrorScreenGui = Instance.new("ScreenGui", game.StarterGui)
ErrorScreenGui.Name = "ErrorScreenGui"
local ErrorTextLabel = Instance.new("TextLabel", ErrorScreenGui)
ErrorTextLabel.Text = "Error occured during asset render: "..errormsg
ErrorTextLabel.BackgroundTransparency = 1
ErrorTextLabel.TextColor3 = Color3.new(1, 1, 1)
ErrorTextLabel.TextStrokeTransparency = 0
ErrorTextLabel.Font = Enum.Font.SourceSansBold
ErrorTextLabel.TextSize = 40
ErrorTextLabel.Size = UDim2.new(1, 0, 1, 0)
ErrorTextLabel.Position = UDim2.new(0, 10, 0, 10)
ErrorTextLabel.TextXAlignment = Enum.TextXAlignment.Left
ErrorTextLabel.TextYAlignment = Enum.TextYAlignment.Top
ErrorTextLabel.TextWrapped = true
local renderSuccess, message = pcall(function()
local result = ThumbnailGenerator:Click(fileExtension, x, y, --[[hideSky = ]] true)
game:HttpPost(UploadURL, result.."|"..reqid.."|"..tostring(reqstarttime), false, "text/plain")
end)
if not renderSuccess then
game:HttpPost(UploadURL, "iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAQAAABecRxxAAAEnklEQVR42u3UMQEAAAjDMOZf9JCAABIJPZp2gKdiAGAAgAEABgAYAGAAgAEABgAYAGAAgAEABgAYAGAAgAEABgAYAGAAgAEABgAYAGAAgAEABgAYAGAAgAEABgAYAGAAgAEABgAYAGAAgAEABgAYABiAAYABAAYAGABgAIABAAYAGABgAIABAAYAGABgAIABAAYAGABgAIABAAYAGABgAIABAAYAGABgAIABAAYAGABgAIABAAYAGABgAIABAAYAGABgAGAAIoABAAYAGABgAIABAAYAGABgAIABAAYAGABgAIABAAYAGABgAIABAAYAGABgAIABAAYAGABgAIABAAYAGABgAIABAAYAGABgAIABAAYAGABgAGAAgAEABgAYAGAAgAEABgAYAGAAgAEABgAYAGAAgAEABgAYAGAAgAEABgAYAGAAgAEABgAYAGAAgAEABgAYAGAAgAEABgAYAGAAgAEABgAYAGAAYACAAQAGABgAYACAAQAGABgAYACAAQAGABgAYACAAQAGABgAYACAAQAGABgAYACAAQAGABgAYACAAQAGABgAYACAAQAGABgAYACAAQAGABgAYABgAIABAAYAGABgAIABAAYAGABgAIABAAYAGABgAIABAAYAGABgAIABAAYAGABgAIABAAYAGABgAIABAAYAGABgAIABAAYAGABgAIABAAYAGABgAGAAgAEABgAYAGAAgAEABgAYAGAAgAEABgAYAGAAgAEABgAYAGAAgAEABgAYAGAAgAEABgAYAGAAgAEABgAYAGAAgAEABgAYAGAAgAEABgAYABiAAYABAAYAGABgAIABAAYAGABgAIABAAYAGABgAIABAAYAGABgAIABAAYAGABgAIABAAYAGABgAIABAAYAGABgAIABAAYAGABgAIABAAYAGABgAGAABgAGABgAYACAAQAGABgAYACAAQAGABgAYACAAQAGABgAYACAAQAGABgAYACAAQAGABgAYACAAQAGABgAYACAAQAGABgAYACAAQAGABgAYACAAYABiAAGABgAYACAAQAGABgAYACAAQAGABgAYACAAQAGABgAYACAAQAGABgAYACAAQAGABgAYACAAQAGABgAYACAAQAGABgAYACAAQAGABgAYACAAYABAAYAGABgAIABAAYAGABgAIABAAYAGABgAIABAAYAGABgAIABAAYAGABgAIABAAYAGABgAIABAAYAGABgAIABAAYAGABgAIABAAYAGABgAIABgAEABgAYAGAAgAEABgAYAGAAgAEABgAYAGAAgAEABgAYAGAAgAEABgAYAGAAgAEABgAYAGAAgAEABgAYAGAAgAEABgAYAGAAgAEABgAYAGAAgAGAAQAGABgAYACAAQAGABgAYACAAQAGABgAYACAAQAGABgAYACAAQAGABgAYACAAQAGABgAYACAAQAGABgAYACAAQAGABgAYACAAQAGABgAYACAAYABAAYAGABgAIABAAYAGABgAIABAAYAGABgAIABAAYAGABgAIABAAYAGABgAIABAAYAGABgAIABAAYAGABgAIABAAYAGABwW1Dy|"..reqid.."|"..tostring(reqstarttime), false, "text/plain")
end
return
end
-- Check for thumbnailcamera
local UsingThumbnailCamera = false
for _, child in pairs(asset:GetDescendants()) do
if child.Name == "ThumbnailCamera" then
UsingThumbnailCamera = true
workspace.CurrentCamera = child
end
if child.Name == "ThumbnailConfiguration" and child:IsA("Configuration") then
if child:FindFirstChild("ThumbnailCameraTarget") and child:FindFirstChild("ThumbnailCameraValue") then
local NewThumbnailCamera = Instance.new("Camera", workspace)
NewThumbnailCamera.Name = "ThumbnailCamera"
NewThumbnailCamera.CameraType = Enum.CameraType.Fixed
pcall(function()
NewThumbnailCamera.CFrame = child:FindFirstChild("ThumbnailCameraValue").Value
NewThumbnailCamera.Focus = child:FindFirstChild("ThumbnailCameraTarget").Value.CFrame
UsingThumbnailCamera = true
workspace.CurrentCamera = NewThumbnailCamera
end)
end
end
end
wait(0.05)
local StartTime = tick()
repeat wait(0.02) until ContentProvider.RequestQueueSize == 0 or tick() - StartTime > 3
if tick() - StartTime > 3 then
print("Timeout reached to wait for content to load")
end
local result = ThumbnailGenerator:Click(fileExtension, x, y, --[[hideSky = ]] true, true)
game:HttpPost(UploadURL, result.."|"..reqid.."|"..tostring(reqstarttime), false, "text/plain")