You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
1.5 KiB

-------------------------------------------------------------------------------
--[[Player]]
-------------------------------------------------------------------------------
require("stdlib/event/event")
local Player = {}
function Player.get_object_and_data(index)
if game.players[index] then
return game.players[index], global.players[index]
end
end
function Player.new(player_index)
local obj = {
index = player_index,
name = game.players[player_index].name,
}
return obj
end
function Player.add_data_all(data)
local pdata = global.players
table.each(pdata, function(v) table.merge(v, table.deepcopy(data)) end)
end
function Player.init(event, overwrite)
global.players = global.players or {}
local pdata = global.players or {}
if event and event.player_index then
if not game.players[event.player_index] then error("Invalid Player") end
if not pdata[event.player_index] or (pdata[event.player_index] and overwrite) then
pdata[event.player_index] = Player.new(event.player_index)
end
else
for index in pairs(game.players) do
if not pdata[index] or (pdata[index] and overwrite) then
pdata[index] = Player.new(index)
end
end
end
if global._mess_queue then
for _, msg in pairs(global._mess_queue) do
game.print(msg)
end
end
global._mess_queue = nil
end
Event.register(defines.events.on_player_created, Player.init)
return Player