Files
factorio-scenario-ExpCluster/modules/ExpGamingCore/Role/control.lua
2018-09-20 23:03:24 +01:00

120 lines
2.9 KiB
Lua

--- Adds roles where a player can have more than one role
-- @module ExpGamingCore.Role@4.0.0
-- @author Cooldude2606
-- @license https://github.com/explosivegaming/scenario/releases/download/v4.0-core/ExpGamingCore.Ranking_4.0.0.zip
-- @alais Role
-- Module Require
local Group = require('ExpGamingCore.Group@^4.0.0')
-- Local Varibles
-- Module Define
local module_verbose = false
local Role = {
_prototype={},
roles={},
order={},
flags={},
actions={},
on_init=function()
--code
end,
on_post=function()
--code
end
}
-- Global Define
local global = global{
changes={},
players={},
roles={}
}
-- Function Define
function Role.define(obj)
-- creates role object
end
function Role.get(mixed)
-- gets all roles of a user or a role by name
end
function Role.assign(player,role)
-- gives a player a role by name or a table of roles
end
function Role.unassign(player,role)
-- removes a player from a role by name or a table of roles
end
function Role.highest(options)
-- gets the highest role from a set of options; player can be passed
end
function Role.revert(player)
-- reverts the last change to a user's roles
end
function Role.add_flag(flag,callback)
-- when a role has the given flag the callback is called, params: player, state
-- all the flags a player has are combined with true as pirority
-- example Role.add_flag('is_admin',function(player,state) player.admin = state end)
end
function Role.has_flag(mixed,flag)
-- tests if mixed (either player or role) has the requested flag
end
function Role.add_action(action)
-- allows a table to be made that includes all possible actions and thus can test who is allowed
-- used purly as a way to loop over all actions
end
function Role.allowed(mixed,action)
-- returns if mixed (either player or role) is allowed to do this action
end
function Role.print(role,rtn,colour,inv)
-- prints to this role and all below it or above if inv
end
function Role.debug_output(role,player)
-- outputs all info on a role
end
function Role._prototype:has_flag(flag)
-- if this role has this flag
end
function Role._prototype:allowed(action)
-- if this role is allowed this action
end
function Role._prototype:get_players(online)
-- gets all/online players who have this role
end
function Role._prototype:print(rtn,colour)
-- prints a message to all players with this role
end
function Role._prototype:get_permissions()
-- runs though Role.actions and returns a list of which this role can do
end
function Role._prototype.add_player(player)
-- adds a player to this role
end
function Role._prototype.remove_player(player)
-- removes this role from the player
end
-- Event Handlers Define
-- event call for role updates
-- Module Return
return setmetatable(Role,{__call=function(tbl,...) tbl.define(...) end})