migration guide
This commit is contained in:
7
docs/tutorials/index.md
Normal file
7
docs/tutorials/index.md
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Tutorials
|
||||||
|
weight: 3
|
||||||
|
empty: true
|
||||||
|
---
|
||||||
|
|
||||||
|
# Tutorials
|
||||||
80
docs/tutorials/migration.md
Normal file
80
docs/tutorials/migration.md
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
---
|
||||||
|
title: Migrating to 2.0
|
||||||
|
description: Guide on how you can migrate your place to 2.0
|
||||||
|
---
|
||||||
|
|
||||||
|
!! WORK IN PROGRESS !!
|
||||||
|
|
||||||
|
# Migrating to 2.0
|
||||||
|
|
||||||
|
Tutorial on how to migrate to 2.0
|
||||||
|
|
||||||
|
## Lua 5.2 -> Luau
|
||||||
|
|
||||||
|
This is the biggest compatibility breaking change for 2.0. The transition from Lua 5.2 (Moonsharp) to Luau. One of the big change being the now non-available `goto` statements. Which you'll have to switch to `continue` statement instead.
|
||||||
|
|
||||||
|
## Tweening
|
||||||
|
|
||||||
|
Tweening has been revamped in 2.0. You should create a tween object first, then tween it from there. Example:
|
||||||
|
|
||||||
|
```lua
|
||||||
|
local part: Part = script.Parent
|
||||||
|
local origin = part.Position
|
||||||
|
local tw = Tween:NewTween()
|
||||||
|
|
||||||
|
print("Tween Start!")
|
||||||
|
|
||||||
|
tw:TweenVector3(origin, origin + Vector3.New(0, 10, 0), 10, function(val)
|
||||||
|
part.Position = val
|
||||||
|
end)
|
||||||
|
|
||||||
|
tw.Finished:Wait()
|
||||||
|
|
||||||
|
print("Tween Finished!")
|
||||||
|
```
|
||||||
|
|
||||||
|
## Particles
|
||||||
|
|
||||||
|
Particles has been revamped in 2.0.
|
||||||
|
|
||||||
|
## Datastore retrieving
|
||||||
|
|
||||||
|
Datastore now no longer requires waiting for it to load first.
|
||||||
|
|
||||||
|
```lua
|
||||||
|
local ds = Datastore:GetDatastore("datastore1")
|
||||||
|
ds:SetAsync("coins", 11)
|
||||||
|
local coins: number = ds:GetAsync("coins")
|
||||||
|
print(coins)
|
||||||
|
```
|
||||||
|
|
||||||
|
You may notice that these function now require Async suffix, which brings us to:
|
||||||
|
|
||||||
|
## Async functions
|
||||||
|
|
||||||
|
Some function will now be required to be async in non compatibility mode. These include but not limited to: Http requests, Datastore data retrieving, Insert via InsertService etc.
|
||||||
|
|
||||||
|
Example HTTP Request made with 2.0:
|
||||||
|
|
||||||
|
```lua
|
||||||
|
local success, res = pcall(function()
|
||||||
|
return Http:GetAsync("http://example.com/")
|
||||||
|
end)
|
||||||
|
print(success, res)
|
||||||
|
```
|
||||||
|
|
||||||
|
To run multiple tasks simultaneously, use `spawn`
|
||||||
|
|
||||||
|
```lua
|
||||||
|
spawn(function()
|
||||||
|
local success, res = pcall(function()
|
||||||
|
return Http:GetAsync("https://example.com")
|
||||||
|
end)
|
||||||
|
print(success, res)
|
||||||
|
end)
|
||||||
|
|
||||||
|
local ds = Datastore:GetDatastore("datastore1")
|
||||||
|
ds:SetAsync("coins", 11)
|
||||||
|
local coins: number = ds:GetAsync("coins")
|
||||||
|
print(coins)
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user