44 lines
899 B
Lua
44 lines
899 B
Lua
--[[
|
|
|
|
TechAge
|
|
=======
|
|
|
|
Copyright (C) 2019-2025 Joachim Stolberg
|
|
|
|
AGPL v3
|
|
See LICENSE.txt for more information
|
|
|
|
Credit-based CPU time distributing
|
|
|
|
]]--
|
|
|
|
local Credits = {}
|
|
local TimeSpent = {}
|
|
local S = techage.S
|
|
techage.credits = {}
|
|
|
|
function techage.credits.before_action(playername)
|
|
local t = minetest.get_us_time()
|
|
local dt = math.floor(minetest.get_us_time() - t)
|
|
TimeSpent[playername] = (TimeSpent[playername] or 0) + dt
|
|
return res
|
|
end
|
|
|
|
function techage.credits.after_action(playername)
|
|
local t = minetest.get_us_time()
|
|
local dt = math.floor(minetest.get_us_time() - t)
|
|
TimeSpent[playername] = (TimeSpent[playername] or 0) + dt
|
|
return res
|
|
end
|
|
|
|
local function evaluation()
|
|
Credits = {}
|
|
for playername, time in pairs(TimeSpent) do
|
|
Credits[playername] = time / 1000000 -- convert to seconds
|
|
end
|
|
TimeSpent = {}
|
|
|
|
minetest.after(1, evaluation)
|
|
end
|
|
|
|
minetest.after(1, evaluation) |