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
|
||||
--@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 = {
|
||||
serverName = game.getHostname(),
|
||||
map = game.getMap(),
|
||||
maxPlayers = game.getMaxPlayers(),
|
||||
cTime = os.date(),
|
||||
sTime = os.date()
|
||||
cTime = "",
|
||||
sTime = "",
|
||||
runningChips = {}
|
||||
}
|
||||
|
||||
if SERVER then
|
||||
hook.add("think", "serverTimeTick", function()
|
||||
local prevSTime = ""
|
||||
function getRunningChips()
|
||||
for _, v in ipairs(find.byClass("starfall_processor")) do
|
||||
if not isValid(v) then continue end
|
||||
|
||||
if prevSTime != os.date() then
|
||||
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
|
||||
local prevName = ""
|
||||
local prevSTime = ""
|
||||
|
||||
hook.add("tick", "serverTimeTick", function()
|
||||
if prevSTime ~= os.date() then
|
||||
prevSTime = os.date()
|
||||
net.start("serverTime")
|
||||
net.writeString(os.date())
|
||||
net.send(owner(), false)
|
||||
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
|
||||
|
||||
if CLIENT then
|
||||
hook.add("think", "clientTimeTick", function()
|
||||
hook.add("tick", "clientTimeTick", function()
|
||||
serverMetadata.cTime = os.date()
|
||||
end)
|
||||
|
||||
-- METASTRUCT SPECIFIC HOOK
|
||||
net.receive("serverTime", function()
|
||||
serverMetadata.sTime = net.readString()
|
||||
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()
|
||||
render.setColor(Color(255, 0, 0, 255))
|
||||
render.drawText(10, 10, "Server Name: " .. serverMetadata.serverName)
|
||||
render.drawText(10, 30, "Map: " .. serverMetadata.map)
|
||||
render.drawText(10, 50, "Client Time: " .. serverMetadata.cTime)
|
||||
render.drawText(10, 70, "Server Time: " .. serverMetadata.sTime)
|
||||
end)
|
||||
|
||||
hook.add("ComponentUnlinked", "unlink_evt", function()
|
||||
hook.remove("think", "curTimeMutator")
|
||||
hook.remove("render", "metadataRenderMain")
|
||||
render.drawText(10, 110, "Name\t\tOwner\t\tCPU Quota")
|
||||
for i, v in ipairs(serverMetadata.runningChips) do
|
||||
render.drawText(10, 130 + (i * 20), "" .. v["chip_name"] .. "\t\t" .. v["chip_owner"] .. "\t\t" .. v["chip_quota"] .. "us")
|
||||
end
|
||||
end)
|
||||
end
|
Loading…
Reference in a new issue