mirror of https://github.com/teverse/teverse
Compare commits
18 Commits
f7b286b0bf
...
263a6c76be
Author | SHA1 | Date |
---|---|---|
Sanjay Bhadra | 263a6c76be | |
Sanjay Bhadra | af1d9bd871 | |
Sanjay Bhadra | d69c667eff | |
Sanjay Bhadra | 721c1dda83 | |
Sanjay Bhadra | 89f5f99bbf | |
Jay | ba2a9f1c0d | |
Jay | b052012515 | |
Jay | 264df6c040 | |
Jay | 90bbc0743c | |
Jay | 901b8a815f | |
Jay | 6c2956aa1a | |
teverse | b26d2814cc | |
Sanjay | 5393b77131 | |
UndecidedFactor | 5ab00b1a43 | |
UndecidedFactor | 7e1895fd6a | |
UndecidedFactor | cdaa993ade | |
UndecidedFactor | adebd303a6 | |
UndecidedFactor | b341d889f6 |
|
@ -0,0 +1,2 @@
|
|||
local ui = require("tevgit:core/dashboard/ui.lua")
|
||||
ui.setup()
|
|
@ -0,0 +1,8 @@
|
|||
return {
|
||||
name = "Apps",
|
||||
iconId = "shapes",
|
||||
iconType = "faSolid",
|
||||
setup = function(page)
|
||||
|
||||
end
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
return {
|
||||
name = "Develop",
|
||||
iconId = "layer-group",
|
||||
iconType = "faSolid",
|
||||
setup = function(page)
|
||||
|
||||
end
|
||||
}
|
|
@ -0,0 +1,292 @@
|
|||
local function newFeedItem(pfp, name, date, body)
|
||||
local item = teverse.construct("guiFrame", {
|
||||
size = guiCoord(1, -20, 0, 48),
|
||||
position = guiCoord(0, 10, 0, 26),
|
||||
backgroundAlpha = 1
|
||||
})
|
||||
|
||||
teverse.construct("guiImage", {
|
||||
name = "profilePicture",
|
||||
size = guiCoord(0, 30, 0, 30),
|
||||
position = guiCoord(0, 0, 0, 5),
|
||||
image = pfp,
|
||||
parent = item,
|
||||
strokeRadius = 15,
|
||||
strokeAlpha = 0.04
|
||||
})
|
||||
|
||||
local name = teverse.construct("guiTextBox", {
|
||||
name = "username",
|
||||
size = guiCoord(1, -40, 0, 20),
|
||||
position = guiCoord(0, 40, 0, 3),
|
||||
backgroundAlpha = 0,
|
||||
parent = item,
|
||||
text = name,
|
||||
textSize = 20,
|
||||
textAlpha = 0.6,
|
||||
textFont = "tevurl:fonts/openSansBold.ttf"
|
||||
})
|
||||
|
||||
teverse.construct("guiTextBox", {
|
||||
name = "date",
|
||||
size = guiCoord(1, -50, 0, 14),
|
||||
position = guiCoord(0, 40, 0, 3),
|
||||
backgroundAlpha = 0,
|
||||
parent = item,
|
||||
text = date,
|
||||
textAlign = enums.align.middleRight,
|
||||
textSize = 14,
|
||||
textAlpha = 0.4
|
||||
})
|
||||
|
||||
teverse.construct("guiTextBox", {
|
||||
name = "body",
|
||||
size = guiCoord(1, -50, 1, -28),
|
||||
position = guiCoord(0, 40, 0, 22),
|
||||
backgroundAlpha = 0,
|
||||
parent = item,
|
||||
text = body,
|
||||
textWrap = true,
|
||||
textAlign = enums.align.topLeft,
|
||||
textSize = 16
|
||||
})
|
||||
|
||||
return item
|
||||
end
|
||||
|
||||
return {
|
||||
name = "Home",
|
||||
iconId = "sliders-h",
|
||||
iconType = "faSolid",
|
||||
setup = function(page)
|
||||
local feed = teverse.construct("guiScrollView", {
|
||||
parent = page,
|
||||
size = guiCoord(1, 0, 1, 50),
|
||||
position = guiCoord(0, 0, 0, -50),
|
||||
backgroundAlpha = 0,
|
||||
strokeRadius = 3
|
||||
})
|
||||
|
||||
teverse.bp
|
||||
.bind(feed, "xs", {
|
||||
size = guiCoord(1, 0, 1, 50),
|
||||
position = guiCoord(0, 0, 0, -50)
|
||||
})
|
||||
.bind(feed, "lg", {
|
||||
size = guiCoord(1, 0, 1, 0),
|
||||
position = guiCoord(0, 0, 0, 0)
|
||||
})
|
||||
|
||||
local tevs = teverse.construct("guiFrame", {
|
||||
parent = feed,
|
||||
size = guiCoord(1/3, -20, 0, 70),
|
||||
position = guiCoord(0, 10, 0, 0),
|
||||
backgroundColour = colour.rgb(74, 140, 122),
|
||||
strokeRadius = 3
|
||||
})
|
||||
|
||||
teverse.bp
|
||||
.bind(tevs, "xs", {
|
||||
size = guiCoord(1, -20, 0, 70),
|
||||
position = guiCoord(0, 10, 0, 50)
|
||||
})
|
||||
.bind(tevs, "sm", {
|
||||
size = guiCoord(1/3, -20, 0, 70),
|
||||
position = guiCoord(0, 10, 0, 50)
|
||||
})
|
||||
.bind(tevs, "lg", {
|
||||
size = guiCoord(1/3, -20, 0, 70),
|
||||
position = guiCoord(0, 10, 0, 0)
|
||||
})
|
||||
|
||||
teverse.construct("guiTextBox", {
|
||||
parent = tevs,
|
||||
size = guiCoord(0.5, -20, 0, 40),
|
||||
position = guiCoord(0.5, 0, 0.5, -15),
|
||||
backgroundAlpha = 0,
|
||||
text = "975",
|
||||
textSize = 40,
|
||||
textAlign = "middleLeft",
|
||||
textColour = colour(1, 1, 1),
|
||||
textFont = "tevurl:fonts/openSansBold.ttf"
|
||||
})
|
||||
|
||||
teverse.construct("guiTextBox", {
|
||||
parent = tevs,
|
||||
size = guiCoord(0.5, -10, 0, 18),
|
||||
position = guiCoord(0.5, 0, 0.5, -24),
|
||||
backgroundAlpha = 0,
|
||||
text = "Tevs",
|
||||
textSize = 18,
|
||||
textAlign = "middleLeft",
|
||||
textColour = colour(1, 1, 1),
|
||||
textFont = "tevurl:fonts/openSansLight.ttf"
|
||||
})
|
||||
|
||||
teverse.construct("guiIcon", {
|
||||
parent = tevs,
|
||||
size = guiCoord(0, 40, 0, 40),
|
||||
position = guiCoord(0.5, -60, 0.5, -20),
|
||||
iconMax = 40,
|
||||
iconColour = colour(1, 1, 1),
|
||||
iconType = "faSolid",
|
||||
iconId = "coins",
|
||||
iconAlpha = 0.9
|
||||
})
|
||||
|
||||
local membership = teverse.construct("guiFrame", {
|
||||
parent = feed,
|
||||
size = guiCoord(1/3, -20, 0, 70),
|
||||
position = guiCoord(1/3, 10, 0, 0),
|
||||
backgroundColour = colour.rgb(235, 187, 83),
|
||||
strokeRadius = 3
|
||||
})
|
||||
|
||||
teverse.bp
|
||||
.bind(membership, "xs", {
|
||||
size = guiCoord(1, -20, 0, 70),
|
||||
position = guiCoord(0, 10, 0, 80 + 50)
|
||||
})
|
||||
.bind(membership, "sm", {
|
||||
size = guiCoord(1/3, -20, 0, 70),
|
||||
position = guiCoord(1/3, 10, 0, 50)
|
||||
})
|
||||
.bind(membership, "lg", {
|
||||
size = guiCoord(1/3, -20, 0, 70),
|
||||
position = guiCoord(1/3, 10, 0, 0)
|
||||
})
|
||||
|
||||
teverse.construct("guiTextBox", {
|
||||
parent = membership,
|
||||
size = guiCoord(0.5, -5, 0, 18),
|
||||
position = guiCoord(0.5, 0, 0.5, -24),
|
||||
backgroundAlpha = 0,
|
||||
text = "Membership",
|
||||
textSize = 18,
|
||||
textAlign = "middleLeft",
|
||||
textColour = colour(1, 1, 1),
|
||||
textFont = "tevurl:fonts/openSansLight.ttf"
|
||||
})
|
||||
|
||||
teverse.construct("guiTextBox", {
|
||||
parent = membership,
|
||||
size = guiCoord(0.5, -20, 0, 40),
|
||||
position = guiCoord(0.5, 0, 0.5, -15),
|
||||
backgroundAlpha = 0,
|
||||
text = "Free",
|
||||
textSize = 40,
|
||||
textAlign = "middleLeft",
|
||||
textColour = colour(1, 1, 1),
|
||||
textFont = "tevurl:fonts/openSansBold.ttf"
|
||||
})
|
||||
|
||||
teverse.construct("guiIcon", {
|
||||
parent = membership,
|
||||
size = guiCoord(0, 40, 0, 40),
|
||||
position = guiCoord(0.5, -60, 0.5, -20),
|
||||
iconMax = 40,
|
||||
iconColour = colour(1, 1, 1),
|
||||
iconType = "faSolid",
|
||||
iconId = "crown",
|
||||
iconAlpha = 0.9
|
||||
})
|
||||
|
||||
local version = teverse.construct("guiFrame", {
|
||||
parent = feed,
|
||||
size = guiCoord(1/3, -20, 0, 70),
|
||||
position = guiCoord(2/3, 10, 0, 0),
|
||||
backgroundColour = colour.rgb(216, 100, 89),
|
||||
strokeRadius = 3
|
||||
})
|
||||
|
||||
teverse.bp
|
||||
.bind(version, "xs", {
|
||||
size = guiCoord(1, -20, 0, 70),
|
||||
position = guiCoord(0, 10, 0, 160 + 50)
|
||||
})
|
||||
.bind(version, "sm", {
|
||||
size = guiCoord(1/3, -20, 0, 70),
|
||||
position = guiCoord(2/3, 10, 0, 50)
|
||||
})
|
||||
.bind(version, "lg", {
|
||||
size = guiCoord(1/3, -20, 0, 70),
|
||||
position = guiCoord(2/3, 10, 0, 0)
|
||||
})
|
||||
|
||||
teverse.construct("guiTextBox", {
|
||||
parent = version,
|
||||
size = guiCoord(0.5, -5, 0, 18),
|
||||
position = guiCoord(0.5, 0, 0.5, -24),
|
||||
backgroundAlpha = 0,
|
||||
text = "Build",
|
||||
textSize = 18,
|
||||
textAlign = "middleLeft",
|
||||
textColour = colour(1, 1, 1),
|
||||
textFont = "tevurl:fonts/openSansLight.ttf"
|
||||
})
|
||||
|
||||
teverse.construct("guiTextBox", {
|
||||
parent = version,
|
||||
size = guiCoord(0.5, 0, 0, 40),
|
||||
position = guiCoord(0.5, 0, 0.5, -15),
|
||||
backgroundAlpha = 0,
|
||||
text = _TEV_BUILD,
|
||||
textSize = 40,
|
||||
textAlign = "middleLeft",
|
||||
textColour = colour(1, 1, 1),
|
||||
textFont = "tevurl:fonts/openSansBold.ttf"
|
||||
})
|
||||
|
||||
teverse.construct("guiIcon", {
|
||||
parent = version,
|
||||
size = guiCoord(0, 40, 0, 40),
|
||||
position = guiCoord(0.5, -60, 0.5, -20),
|
||||
iconMax = 40,
|
||||
iconColour = colour(1, 1, 1),
|
||||
iconType = "faSolid",
|
||||
iconId = "code-branch",
|
||||
iconAlpha = 0.9
|
||||
})
|
||||
|
||||
local feedItems = teverse.construct("guiFrame", {
|
||||
parent = feed,
|
||||
backgroundAlpha = 1,
|
||||
clip = true
|
||||
})
|
||||
|
||||
teverse.bp
|
||||
.bind(feedItems, "xs", {
|
||||
size = guiCoord(1, -20, 1, -(240 + 50)),
|
||||
position = guiCoord(0, 10, 0, 240 + 50)
|
||||
})
|
||||
.bind(feedItems, "sm", {
|
||||
size = guiCoord(1, -20, 1, -(70 + 60)),
|
||||
position = guiCoord(0, 10, 0, 70 + 60)
|
||||
})
|
||||
.bind(feedItems, "lg", {
|
||||
size = guiCoord(1/3, -20, 1, -80),
|
||||
position = guiCoord(0, 10, 0, 80)
|
||||
})
|
||||
|
||||
teverse.construct("guiTextBox", {
|
||||
size = guiCoord(1, -20, 0, 26),
|
||||
position = guiCoord(0, 10, 0, 0),
|
||||
backgroundAlpha = 0,
|
||||
parent = feedItems,
|
||||
text = "Feed",
|
||||
textSize = 26,
|
||||
textFont = "tevurl:fonts/openSansBold.ttf"
|
||||
})
|
||||
|
||||
local function pushItem(item)
|
||||
local y = item.absoluteSize.y
|
||||
for i,v in pairs(feedItems.children) do
|
||||
v.position = guiCoord(0, 10, 0, y)
|
||||
y = y + v.absoluteSize.y + 10
|
||||
end
|
||||
item.parent = feedItems
|
||||
end
|
||||
|
||||
pushItem(newFeedItem("tevurl:asset/user/" .. teverse.networking.localClient.id, teverse.networking.localClient.name, "Now", "test"))
|
||||
end
|
||||
}
|
|
@ -0,0 +1,143 @@
|
|||
local controller = {}
|
||||
|
||||
controller.setup = function()
|
||||
local navBar = teverse.construct("guiFrame", {
|
||||
strokeAlpha = 0.1,
|
||||
parent = teverse.interface,
|
||||
zIndex = 10,
|
||||
backgroundColour = colour.rgb(52, 58, 64)
|
||||
})
|
||||
|
||||
local navContainer = teverse.construct("guiFrame", {
|
||||
parent = navBar,
|
||||
backgroundAlpha = 0
|
||||
})
|
||||
|
||||
teverse.bp
|
||||
.gridConstraint(navContainer, {
|
||||
cellSize = guiCoord(0, 40, 0, 40),
|
||||
cellMargin = guiCoord(0, 25, 0, 25)
|
||||
})
|
||||
.bind(navBar, "xs", {
|
||||
position = guiCoord(0, -45, 1, -65),
|
||||
size = guiCoord(1, 90, 0, 105)
|
||||
})
|
||||
.bind(navContainer, "xs", {
|
||||
position = guiCoord(0, 80, 0.5, -40),
|
||||
size = guiCoord(1, -160, 0, 40)
|
||||
})
|
||||
.bind(navBar, "lg", {
|
||||
position = guiCoord(0, 0, 0, 0),
|
||||
size = guiCoord(0, 65, 1, 0)
|
||||
})
|
||||
.bind(navContainer, "lg", {
|
||||
position = guiCoord(0.5, -20, 0, 80),
|
||||
size = guiCoord(0, 40, 1, -80)
|
||||
})
|
||||
|
||||
local profilePictureContainer = teverse.construct("guiFrame", {
|
||||
parent = navContainer,
|
||||
backgroundAlpha = 0,
|
||||
name = "0"
|
||||
})
|
||||
|
||||
local profilePicture = teverse.construct("guiImage", {
|
||||
size = guiCoord(0, 30, 0, 30),
|
||||
position = guiCoord(0.5, -15, 0.5, -15),
|
||||
image = "tevurl:asset/user/" .. teverse.networking.localClient.id,
|
||||
parent = profilePictureContainer,
|
||||
strokeRadius = 30,
|
||||
name = "0"
|
||||
})
|
||||
|
||||
local status = teverse.construct("guiImage", {
|
||||
size = guiCoord(0, 8, 0, 8),
|
||||
position = guiCoord(1, -8, 1, -8),
|
||||
backgroundColour = colour(0, 0.9, 0),
|
||||
strokeRadius = 6,
|
||||
strokeWidth = 2,
|
||||
strokeAlpha = 1,
|
||||
strokeColour = colour.rgb(52, 58, 64),
|
||||
parent = profilePicture
|
||||
})
|
||||
|
||||
local body = teverse.construct("guiFrame", {
|
||||
size = guiCoord(1, -65, 1, 0),
|
||||
position = guiCoord(0, 65, 0, 0),
|
||||
parent = teverse.interface,
|
||||
backgroundColour = colour.rgb(242, 244, 245)
|
||||
})
|
||||
|
||||
teverse.bp
|
||||
.bind(body, "xs", {
|
||||
size = guiCoord(1, 90, 1, -5),
|
||||
position = guiCoord(0, -45, 0, -60)
|
||||
})
|
||||
.bind(body, "lg", {
|
||||
size = guiCoord(1, -65, 1, 0),
|
||||
position = guiCoord(0, 65, 0, 0)
|
||||
})
|
||||
|
||||
local pages = {}
|
||||
|
||||
local function setupPage(page)
|
||||
local container = teverse.construct("guiFrame", {
|
||||
parent = body,
|
||||
size = guiCoord(1, -40, 1, -80),
|
||||
position = guiCoord(0, 10, 0, 80),
|
||||
backgroundAlpha = 0,
|
||||
strokeRadius = 3,
|
||||
visible = false
|
||||
})
|
||||
|
||||
teverse.bp
|
||||
.bind(container, "xs", {
|
||||
size = guiCoord(1, -120, 1, -80),
|
||||
position = guiCoord(0, 60, 0, 80)
|
||||
})
|
||||
.bind(container, "lg", {
|
||||
size = guiCoord(1, 0, 1, -10),
|
||||
position = guiCoord(0, 0, 0, 10)
|
||||
})
|
||||
|
||||
local icon = teverse.construct("guiIcon", {
|
||||
name = tostring(#pages + 1),
|
||||
size = guiCoord(0, 40, 0, 40),
|
||||
position = guiCoord(0.5, -20, 1, -60),
|
||||
parent = navContainer,
|
||||
iconId = page.iconId,
|
||||
iconType = page.iconType,
|
||||
iconAlpha = 0.75,
|
||||
iconMax = 20,
|
||||
backgroundColour = colour(0, 0, 0),
|
||||
strokeRadius = 3
|
||||
})
|
||||
|
||||
icon:on("mouseLeftUp", function()
|
||||
for _,v in pairs(pages) do
|
||||
v[1].visible = false
|
||||
v[2].iconAlpha = 0.75
|
||||
v[2].backgroundAlpha = 0.0
|
||||
end
|
||||
|
||||
container.visible = true
|
||||
icon.iconAlpha = 1.0
|
||||
icon.backgroundAlpha = 0.2
|
||||
end)
|
||||
|
||||
page.setup(container)
|
||||
|
||||
if #pages == 0 then
|
||||
container.visible = true
|
||||
icon.iconAlpha = 1.0
|
||||
icon.backgroundAlpha = 0.2
|
||||
end
|
||||
|
||||
table.insert(pages, {container, icon})
|
||||
end
|
||||
setupPage(require("tevgit:core/dashboard/pages/home"))
|
||||
setupPage(require("tevgit:core/dashboard/pages/apps"))
|
||||
setupPage(require("tevgit:core/dashboard/pages/develop"))
|
||||
end
|
||||
|
||||
return controller
|
|
@ -0,0 +1,80 @@
|
|||
local main = teverse.construct("guiFrame", {
|
||||
parent = teverse.coreInterface,
|
||||
backgroundColour = colour.rgb(52, 58, 64),
|
||||
size = guiCoord(1, 0, 1, 100),
|
||||
position = guiCoord(0, 0, 0, -50)
|
||||
})
|
||||
|
||||
teverse.construct("guiImage", {
|
||||
position = guiCoord(0.5, -750, 0.5, -750),
|
||||
size = guiCoord(0, 1500, 0, 1500),
|
||||
parent = main,
|
||||
backgroundAlpha = 0,
|
||||
image = "tevurl:img/tTiled.png",
|
||||
imageBottomRight = vector2(90, 90),
|
||||
imageColour = colour:rgb(28, 33, 38),
|
||||
imageAlpha = 0.25,
|
||||
zIndex = -1
|
||||
})
|
||||
|
||||
local gui = teverse.construct("guiTextBox", {
|
||||
parent = main,
|
||||
size = guiCoord(0.8, 0, 0, 70),
|
||||
position = guiCoord(0.1, 0, 0.5, -35),
|
||||
backgroundAlpha = 0,
|
||||
text = "teverse",
|
||||
textSize = 70,
|
||||
textAlign = enums.align.middle,
|
||||
textShadowSize = 2,
|
||||
textColour = colour(1, 1, 1),
|
||||
textFont = "tevurl:fonts/moskUltraBold.ttf"
|
||||
})
|
||||
|
||||
local login = teverse.construct("guiTextBox", {
|
||||
parent = main,
|
||||
size = guiCoord(0, 80, 0, 26),
|
||||
position = guiCoord(0.5, -40, 0.5, 45),
|
||||
backgroundColour = colour(1, 1, 1),
|
||||
text = "Login",
|
||||
textFont = "tevurl:fonts/openSansBold.ttf",
|
||||
textSize = 24,
|
||||
textAlign = enums.align.middle,
|
||||
strokeRadius = 3,
|
||||
visible = false
|
||||
})
|
||||
|
||||
login.size = guiCoord(0, login.textDimensions.x + 30, 0, 26)
|
||||
login.position = guiCoord(0.5, -(login.textDimensions.x + 30)/2, 0.5, 45)
|
||||
|
||||
local db = false
|
||||
local listenerid = login:on("mouseLeftDown", function()
|
||||
if db then return end
|
||||
teverse.openUrl("https://teverse.com/dashboard?client=1")
|
||||
login.visible = false
|
||||
sleep(2)
|
||||
login.visible = true
|
||||
end)
|
||||
|
||||
teverse.networking:on("_localAuthenticating", function(state)
|
||||
if state ~= "failed" then
|
||||
db = true
|
||||
login.text = "Authenticating..."
|
||||
login.size = guiCoord(0, login.textDimensions.x + 30, 0, 26)
|
||||
login.position = guiCoord(0.5, -(login.textDimensions.x + 30)/2, 0.5, 45)
|
||||
else
|
||||
db = false
|
||||
login.text = "Login"
|
||||
login.size = guiCoord(0, login.textDimensions.x + 30, 0, 26)
|
||||
login.position = guiCoord(0.5, -(login.textDimensions.x + 30)/2, 0.5, 45)
|
||||
end
|
||||
end)
|
||||
|
||||
sleep(1)
|
||||
login.visible = true
|
||||
|
||||
while teverse.networking.localClient == nil do
|
||||
sleep(1.5)
|
||||
end
|
||||
|
||||
print("Logged in as " .. teverse.networking.localClient.name)
|
||||
main:destroy()
|
|
@ -0,0 +1,24 @@
|
|||
-- Uses to test integrity of a sandbox
|
||||
|
||||
return function()
|
||||
print(_VERSION)
|
||||
print("Safety Test (TevC)", tevC == nil and "PASS" or "FAIL")
|
||||
print("Safety Test (jit)", jit == nil and "PASS" or "FAIL")
|
||||
print("Safety Test (ffi)", ffi == nil and "PASS" or "FAIL")
|
||||
print("Safety Test (events)", events == nil and "PASS" or "FAIL")
|
||||
print("Safety Test (os.open)", os.open == nil and "PASS" or "FAIL")
|
||||
print("Safety Test (os.write)", os.write == nil and "PASS" or "FAIL")
|
||||
print("Safety Test (teverse.userToken)", teverse.userToken == nil and "PASS" or "FAIL")
|
||||
print("Safety Test (globaltest)", globaltest == nil and "PASS" or "FAIL")
|
||||
|
||||
print("Require Test (Has teverse overriden default require)", (require ~= nil and require("ping") == "pong") and "PASS" or "FAIL")
|
||||
|
||||
local result = teverse.load("tevgit:core/tests/tevgit.lua")
|
||||
print("Require Test #3", result == "Hello World!" and "PASS" or "FAIL")
|
||||
|
||||
local a = os.clock()
|
||||
print("Running Scheduler Test #1", a)
|
||||
sleep(1)
|
||||
local elapsed = os.clock() - a
|
||||
print("Scheduler Test #1", elapsed >= 1.0 and "PASS" or "FAIL", elapsed)
|
||||
end
|
|
@ -0,0 +1,142 @@
|
|||
return function()
|
||||
|
||||
-- Textbox colour/border radius/shadow demo
|
||||
|
||||
local colours = {
|
||||
colour(1, 0, 0),
|
||||
colour(1, 1, 0),
|
||||
colour(0, 1, 0),
|
||||
colour(0, 1, 1),
|
||||
colour(0, 0, 1),
|
||||
colour(1, 0, 1),
|
||||
colour(1, 1, 1),
|
||||
colour(0, 0, 0)
|
||||
}
|
||||
|
||||
local size = 1/#colours
|
||||
local lastColour = colour(0,0,0)
|
||||
for i = 1, #colours do
|
||||
teverse.construct("guiTextBox", {
|
||||
parent = teverse.interface,
|
||||
size = guiCoord(size, 0, 0, 50),
|
||||
position = guiCoord(size * (i - 1), 0, 0, 0),
|
||||
backgroundColour = colours[i],
|
||||
text = "#" .. colours[i]:hex(),
|
||||
textShadowSize = 2,
|
||||
textColour = colour(1, 1, 1)
|
||||
})
|
||||
|
||||
local c = colours[i] * colour(0.9, 0.9, 0.9)
|
||||
teverse.construct("guiGradientFrame", {
|
||||
parent = teverse.interface,
|
||||
size = guiCoord(size, 2, 0, 20),
|
||||
position = guiCoord(size * (i - 1), -1, 0, 60),
|
||||
backgroundColour = lastColour,
|
||||
backgroundColourB = c,
|
||||
start = guiCoord(0.4, 0, 0, 0),
|
||||
finish = guiCoord(0.6, 0, size * (i - 1), 0)
|
||||
})
|
||||
|
||||
lastColour = c
|
||||
end
|
||||
|
||||
-- Textbox Align Demo
|
||||
|
||||
local reverseAlign = {}
|
||||
for k,v in pairs(enums.align) do
|
||||
reverseAlign[v] = k
|
||||
end
|
||||
|
||||
local txtGuis = {}
|
||||
|
||||
local size = 1/3
|
||||
local i = 0
|
||||
local y = 90
|
||||
for a = 0, 8 do
|
||||
i = i + 1
|
||||
local gui = teverse.construct("guiTextBox", {
|
||||
parent = teverse.interface,
|
||||
size = guiCoord(size, -1, 0, 28),
|
||||
position = guiCoord(size * (i - 1), 0, 0, y),
|
||||
backgroundColour = colour(1, 1, 1),
|
||||
text = "enums.align." .. reverseAlign[a],
|
||||
textSize = 14,
|
||||
textAlign = a,
|
||||
strokeRadius = 5
|
||||
})
|
||||
table.insert(txtGuis, gui)
|
||||
if i > 2 then
|
||||
i = 0
|
||||
y = y + 29
|
||||
end
|
||||
end
|
||||
|
||||
for i = 1, #colours do
|
||||
teverse.construct("guiImage", {
|
||||
position = guiCoord(0, (i-1) * 75, 0, y),
|
||||
size = guiCoord(0, 75, 0, 50),
|
||||
parent = teverse.interface,
|
||||
backgroundAlpha = 0,
|
||||
image = "tevurl:img/tTiled.png",
|
||||
imageBottomRight = vector2(3, 2),
|
||||
imageColour = colours[i]
|
||||
})
|
||||
end
|
||||
|
||||
local size = 1/#colours
|
||||
y = y + 60
|
||||
local previous = 0
|
||||
for i = 1, #colours do
|
||||
local new = math.random(1, 50)
|
||||
local a = teverse.construct("guiLine", {
|
||||
pointA = guiCoord(size*(i-1), 0, 0, y + previous),
|
||||
pointB = guiCoord(size*(i), 0, 0, y + new),
|
||||
parent = teverse.interface,
|
||||
lineWidth = 5,
|
||||
lineAlpha = 0.5,
|
||||
lineColour = colours[i],
|
||||
lineCap = enums.lineCap.round
|
||||
})
|
||||
previous = new
|
||||
end
|
||||
|
||||
for i = 1, #colours do
|
||||
local new = math.random(1, 50)
|
||||
local a = teverse.construct("guiLineBezier", {
|
||||
pointA = guiCoord(0, 0, 0, y + (i * 10)),
|
||||
controlA = guiCoord(0, 50, 0, y+100),
|
||||
pointB = guiCoord(1, 0, 0, y - 30 + (i * 10)),
|
||||
controlB = guiCoord(1, -200, 0, y-100),
|
||||
parent = teverse.interface,
|
||||
lineWidth = 2,
|
||||
lineColour = colours[i],
|
||||
lineCap = enums.lineCap.round
|
||||
})
|
||||
previous = new
|
||||
end
|
||||
|
||||
y = y + 60
|
||||
|
||||
-- create an arrow using lines:
|
||||
local arrow = teverse.construct("guiLine", {
|
||||
pointA = guiCoord(0, 100, 0, y ),
|
||||
pointB = guiCoord(0, 100, 0, y + 50),
|
||||
parent = teverse.interface,
|
||||
lineWidth = 2,
|
||||
-- rotation = 0.4
|
||||
})
|
||||
|
||||
teverse.construct("guiLine", {
|
||||
parent = arrow,
|
||||
pointA = guiCoord(0, 0, 0, 0 ),
|
||||
pointB = guiCoord(0, 10, 0, -10),
|
||||
lineWidth = 2
|
||||
})
|
||||
|
||||
teverse.construct("guiLine", {
|
||||
parent = arrow,
|
||||
pointA = guiCoord(0, 0, 0, 0 ),
|
||||
pointB = guiCoord(0, -10, 0, -10),
|
||||
lineWidth = 2
|
||||
})
|
||||
end
|
|
@ -0,0 +1,2 @@
|
|||
-- used internally to validate that our api is working
|
||||
return "Hello World!"
|
|
@ -0,0 +1,61 @@
|
|||
local main = teverse.construct("guiFrame", {
|
||||
parent = teverse.interface,
|
||||
backgroundColour = colour.rgb(52, 58, 64),
|
||||
size = guiCoord(1, 0, 1, 100),
|
||||
position = guiCoord(0, 0, 0, -50)
|
||||
})
|
||||
|
||||
teverse.construct("guiImage", {
|
||||
position = guiCoord(0.5, -750, 0.5, -750),
|
||||
size = guiCoord(0, 1500, 0, 1500),
|
||||
parent = main,
|
||||
backgroundAlpha = 0,
|
||||
image = "tevurl:img/tTiled.png",
|
||||
imageBottomRight = vector2(90, 90),
|
||||
imageColour = colour:rgb(28, 33, 38),
|
||||
imageAlpha = 0.25,
|
||||
zIndex = -1
|
||||
})
|
||||
|
||||
local dialog = teverse.construct("guiFrame", {
|
||||
parent = main,
|
||||
size = guiCoord(0, 200, 0, 100),
|
||||
position = guiCoord(0.5, -100, 0.5, -50),
|
||||
backgroundColour = colour(1, 1, 1),
|
||||
strokeAlpha = 0,
|
||||
strokeRadius = 3
|
||||
})
|
||||
|
||||
local gui = teverse.construct("guiTextBox", {
|
||||
parent = dialog,
|
||||
size = guiCoord(0.8, 0, 0, 40),
|
||||
position = guiCoord(0.1, 0, 0, 5),
|
||||
backgroundAlpha = 0,
|
||||
text = "teverse",
|
||||
textSize = 40,
|
||||
textAlign = enums.align.middle,
|
||||
textColour = colour.rgb(61, 66, 71),
|
||||
textFont = "tevurl:fonts/moskUltraBold.ttf"
|
||||
})
|
||||
|
||||
local gui = teverse.construct("guiTextBox", {
|
||||
parent = dialog,
|
||||
size = guiCoord(0.8, 0, 1, -50),
|
||||
position = guiCoord(0.1, 0, 0, 50),
|
||||
backgroundAlpha = 0,
|
||||
text = "An update is in progress\nPlease be patient",
|
||||
textWrap = true,
|
||||
textSize = 16,
|
||||
textAlign = enums.align.topMiddle,
|
||||
textColour = colour.rgb(61, 66, 71)
|
||||
})
|
||||
|
||||
if _OS == "OSX" or _OS == "IOS" then
|
||||
-- We distribute updates via the app store on iOS/OSX
|
||||
gui.text = "A new version is available, please check the App Store."
|
||||
end
|
||||
|
||||
teverse.networking:on("_update", function(message)
|
||||
print('got ', message)
|
||||
gui.text = message
|
||||
end)
|
Loading…
Reference in New Issue