Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ---------------------
- --! @brief create a faction object
- factionsmod.new_faction = function(name)
- return {
- name = name,
- power = 0.,
- players = {},
- ranks = {["leader"] = {"disband", "claim", "invite", "build", "edit"},
- ["member"] = {"build"}
- },
- leader = nil,
- default_rank = "member",
- default_leader_rank = "leader",
- land = {},
- ----------------------
- -- methods
- increase_power = function(self, power)
- self.power = self.power + power
- end,
- decrease_power = function(self, power)
- self.power = self.power - power
- end,
- add_player = function(self, player, rank)
- self.players[player] = rank or self.default_rank
- self:on_player_join(player)
- end,
- remove_player = function(self, player)
- self.players[player] = nil
- self:on_player_leave(player)
- end,
- can_claim_chunk = function(self, pos)
- --TODO: implement
- end,
- claim_chunk = function(self, pos)
- --TODO: implement
- self:on_claim_chunk(pos)
- end,
- lose_chunk = function(self, pos)
- --TODO: implement
- self:on_lose_chunks(pos)
- end,
- disband = function(self)
- --TODO: implement
- self:on_disband()
- end,
- set_leader = function(self, player)
- self.leader = player
- self.players[player] = self.default_leader_rank
- self:on_new_leader()
- end,
- has_permission = function(self, player, permission)
- local p = self.players[player]
- if not p then
- return false
- end
- return table.contains(self.groups[p], permission)
- end,
- -----------------------
- -- callbacks for events
- on_create = function(self) --! @brief called when the faction is added to the global faction list
- --TODO: implement
- end,
- on_player_leave = function(self, player)
- --TODO: implement
- end,
- on_player_join = function(self, player)
- --TODO: implement
- end,
- on_claim_chunk = function(self, pos)
- --TODO: implement
- end,
- on_lose_chunk = function(self, pos)
- --TODO: implement
- end,
- on_disband = function(self, pos)
- --TODO: implement
- end,
- on_new_leader = function(self)
- --TODO: implement
- end,
- }
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement