mirror of
https://github.com/sr229/metastruct-experiments.git
synced 2024-09-20 06:30:36 +00:00
finish up initial implementation
This commit is contained in:
parent
7eb3c23b98
commit
77384c2d62
2 changed files with 67 additions and 18 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
starfallex/kiosk.lua
|
|
@ -1,50 +1,98 @@
|
||||||
--@name Test-Serverinfo
|
--@name StarfallTop
|
||||||
--@author Minori
|
--@author Minori
|
||||||
--@shared
|
--@shared
|
||||||
--[[
|
|
||||||
This grabs the basic server information we can print later on
|
|
||||||
This table doesn't need to be updated much so we can initialize this immediately.
|
|
||||||
]]
|
|
||||||
local serverMetadata = {
|
local serverMetadata = {
|
||||||
serverName = game.getHostname(),
|
serverName = game.getHostname(),
|
||||||
map = game.getMap(),
|
map = game.getMap(),
|
||||||
maxPlayers = game.getMaxPlayers(),
|
cTime = "",
|
||||||
cTime = os.date(),
|
sTime = "",
|
||||||
sTime = os.date()
|
runningChips = {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getRunningChips()
|
||||||
|
for _, v in ipairs(find.byClass("starfall_processor")) do
|
||||||
|
if not isValid(v) then continue end
|
||||||
|
|
||||||
|
if v:getChipName() == "" and v:getChipAuthor() == "" then
|
||||||
|
table.insert(serverMetadata.runningChips, {
|
||||||
|
["this"] = v,
|
||||||
|
["chip_name"] = "Unknown",
|
||||||
|
["chip_owner"] = "Unknown",
|
||||||
|
["chip_quota"] = math.floor(v:getQuotaAverage() * 100000)
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
table.insert(serverMetadata.runningChips, {
|
||||||
|
["this"] = v,
|
||||||
|
["chip_name"] = v:getChipName(),
|
||||||
|
["chip_owner"] = v:getChipAuthor(),
|
||||||
|
["chip_quota"] = math.floor(v:getQuotaAverage() * 100000)
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
if SERVER then
|
if SERVER then
|
||||||
hook.add("think", "serverTimeTick", function()
|
local prevName = ""
|
||||||
local prevSTime = ""
|
local prevSTime = ""
|
||||||
|
|
||||||
if prevSTime != os.date() then
|
hook.add("tick", "serverTimeTick", function()
|
||||||
|
if prevSTime ~= os.date() then
|
||||||
prevSTime = os.date()
|
prevSTime = os.date()
|
||||||
net.start("serverTime")
|
net.start("serverTime")
|
||||||
net.writeString(os.date())
|
net.writeString(os.date())
|
||||||
net.send(owner(), false)
|
net.send(owner(), false)
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
-- METASTRUCT SPECIFIC HOOK
|
||||||
|
hook.add("tick", "e621", function()
|
||||||
|
if prevName ~= game.getHostname() then
|
||||||
|
prevName = game.getHostname()
|
||||||
|
net.start("serverName")
|
||||||
|
net.writeString(game.getHostname())
|
||||||
|
net.send(owner(), false)
|
||||||
|
end
|
||||||
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
if CLIENT then
|
if CLIENT then
|
||||||
hook.add("think", "clientTimeTick", function()
|
hook.add("tick", "clientTimeTick", function()
|
||||||
serverMetadata.cTime = os.date()
|
serverMetadata.cTime = os.date()
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
-- METASTRUCT SPECIFIC HOOK
|
||||||
net.receive("serverTime", function()
|
net.receive("serverTime", function()
|
||||||
serverMetadata.sTime = net.readString()
|
serverMetadata.sTime = net.readString()
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
net.receive("serverName", function()
|
||||||
|
serverMetadata.serverName = net.readString()
|
||||||
|
end)
|
||||||
|
|
||||||
|
getRunningChips()
|
||||||
|
|
||||||
|
-- update the table
|
||||||
|
timer.create("update", 1, 0, function()
|
||||||
|
if serverMetadata.runningChips == {} then
|
||||||
|
-- don't forget to populate dr freeman
|
||||||
|
getRunningChips()
|
||||||
|
end
|
||||||
|
|
||||||
|
for i, v in ipairs(serverMetadata.runningChips) do
|
||||||
|
local ent = v["this"]
|
||||||
|
v.chip_quota = math.floor(ent:getQuotaAverage() * 100000)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
hook.add("render", "metadataRenderMain", function()
|
hook.add("render", "metadataRenderMain", function()
|
||||||
render.setColor(Color(255, 0, 0, 255))
|
render.setColor(Color(255, 0, 0, 255))
|
||||||
render.drawText(10, 10, "Server Name: " .. serverMetadata.serverName)
|
render.drawText(10, 10, "Server Name: " .. serverMetadata.serverName)
|
||||||
render.drawText(10, 30, "Map: " .. serverMetadata.map)
|
render.drawText(10, 30, "Map: " .. serverMetadata.map)
|
||||||
render.drawText(10, 50, "Client Time: " .. serverMetadata.cTime)
|
render.drawText(10, 50, "Client Time: " .. serverMetadata.cTime)
|
||||||
render.drawText(10, 70, "Server Time: " .. serverMetadata.sTime)
|
render.drawText(10, 70, "Server Time: " .. serverMetadata.sTime)
|
||||||
end)
|
render.drawText(10, 110, "Name\t\tOwner\t\tCPU Quota")
|
||||||
|
for i, v in ipairs(serverMetadata.runningChips) do
|
||||||
hook.add("ComponentUnlinked", "unlink_evt", function()
|
render.drawText(10, 130 + (i * 20), "" .. v["chip_name"] .. "\t\t" .. v["chip_owner"] .. "\t\t" .. v["chip_quota"] .. "us")
|
||||||
hook.remove("think", "curTimeMutator")
|
end
|
||||||
hook.remove("render", "metadataRenderMain")
|
|
||||||
end)
|
end)
|
||||||
end
|
end
|
Loading…
Reference in a new issue