79 lines
2.2 KiB
Lua

local vncore = {}
vncore.loaded = false
local HUD,workspace,disp,chat,name,disp,handle
function vncore.getHUD()
return HUD
end
function vncore.getWorkspace()
return workspace
end
function vncore.getStateMachine()
return handle
end
-- We need to manage the disp, chat and name loval varaibles
function vncore.init(frame, parseManager, multi)
if vncore.loaded then return vncore.__Frame end
vncore.__Frame = frame
frame.Visibility = 0
workspace = frame:newImageLabel(nil,"Workspace", 0,0,0,0,0,0,1,1)
workspace.Color = Color.Green
HUD = frame:newFullFrame("HUD")
local go = false
HUD.Visibility = 0
handle = parseManager:load("init.dms")
handle:define{
sleep = thread.sleep
}
chat = HUD:newTextLabel("","",0,0,0,0,.5/40,31/40,39/40,1/5)
name = chat:newTextLabel("Name","Name",0,0,80,0,0,-1.165/5,0,1/5)
name.Visible = false
name:fitFont()
name:widthToTextSize()
name:setRoundness(6,6,180)
disp = chat:newTextLabel("","",15/2,15/2,-15,-15,0,0,1,1)
disp.TextFormat = "left"
disp.Font = name.Font
disp.Visibility = 0
disp.BorderSize = 0
chat:setRoundness(15,15,180)
workspace:OnReleased(function(b,self)
if b == "l" then
go = true
else
HUD.Visible = not HUD.Visible
end
end)
parseManager.print("\n"..handle:dump())
handle.__TEXT = function(text) -- change the default text stuff
local n,txt = text:match("([%w ]+):(.+)")
if disp.text == "" then
go = true
end
thread.hold(function()
return go
end)
if n then
text = txt
name.text = n
name:widthToTextSize()
name.Visible = true
end
go = false
disp.text = ""
for i in text:gmatch(".") do
disp.text = disp.text .. i
thread.sleep(.1)
if go then disp.text = text go = false break end
end
end
multi:newThread("Runner",function()
local active = true
while true do
thread.skip()
active = handle:think()
end
end)
vncore.loaded = true
return vncore
end
return vncore