Advertisement
Guest User

Untitled

a guest
Aug 6th, 2016
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.63 KB | None | 0 0
  1. ---------------------
  2. --! @brief create a faction object
  3. factionsmod.new_faction = function(name)
  4.     return {
  5.         name = name,
  6.         power = 0.,
  7.         players = {},
  8.         ranks = {["leader"] = {"disband", "claim", "invite", "build", "edit"},
  9.                  ["member"] = {"build"}
  10.                 },
  11.         leader = nil,
  12.         default_rank = "member",
  13.         default_leader_rank = "leader",
  14.         land = {},
  15.  
  16.         ----------------------
  17.         --  methods
  18.         increase_power = function(self, power)
  19.             self.power = self.power + power
  20.         end,
  21.         decrease_power = function(self, power)
  22.             self.power = self.power - power
  23.         end,
  24.         add_player = function(self, player, rank)
  25.             self.players[player] = rank or self.default_rank
  26.             self:on_player_join(player)
  27.         end,
  28.         remove_player = function(self, player)
  29.             self.players[player] = nil
  30.             self:on_player_leave(player)
  31.         end,
  32.         can_claim_chunk = function(self, pos)
  33.             --TODO: implement
  34.         end,
  35.         claim_chunk = function(self, pos)
  36.             --TODO: implement
  37.             self:on_claim_chunk(pos)
  38.         end,
  39.         lose_chunk = function(self, pos)
  40.             --TODO: implement
  41.             self:on_lose_chunks(pos)
  42.         end,
  43.         disband = function(self)
  44.             --TODO: implement
  45.             self:on_disband()
  46.         end,
  47.         set_leader = function(self, player)
  48.             self.leader = player
  49.             self.players[player] = self.default_leader_rank
  50.             self:on_new_leader()
  51.         end,
  52.         has_permission = function(self, player, permission)
  53.             local p = self.players[player]
  54.             if not p then
  55.                 return false
  56.             end
  57.             return table.contains(self.groups[p], permission)
  58.         end,
  59.  
  60.         -----------------------
  61.         -- callbacks for events
  62.         on_create = function(self)  --! @brief called when the faction is added to the global faction list
  63.             --TODO: implement
  64.         end,
  65.         on_player_leave = function(self, player)
  66.             --TODO: implement
  67.         end,
  68.         on_player_join = function(self, player)
  69.             --TODO: implement
  70.         end,
  71.         on_claim_chunk = function(self, pos)
  72.             --TODO: implement
  73.         end,
  74.         on_lose_chunk = function(self, pos)
  75.             --TODO: implement
  76.         end,
  77.         on_disband = function(self, pos)
  78.             --TODO: implement
  79.         end,
  80.         on_new_leader = function(self)
  81.             --TODO: implement
  82.         end,
  83.     }
  84. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement