Advertisement
Starly124

Untitled

Mar 2nd, 2015
209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.33 KB | None | 0 0
  1. local Waterer = Class(function(self, inst)
  2. self.inst = inst
  3. self.waterer = nil
  4. self.watertest = nil
  5. self.water1 = nil
  6. self.canusefrominventory = true
  7. self.canuseontargets = false
  8. self.canuseonpoint = false
  9. end)
  10.  
  11. function Waterer:SetWaterFn(fn)
  12. self.waterer = fn
  13. end
  14.  
  15. function Waterer:WaterTestFn(fn)
  16. self.watertest = fn
  17. end
  18.  
  19. function Waterer:Water1Fn(fn)
  20. self.water1 = fn
  21. end
  22.  
  23. function Waterer:Water(target, pos)
  24. if self.waterer then
  25. self.waterer(self.inst, target, pos)
  26.  
  27. if self.water1 then
  28. self.water1(self.inst, target, pos)
  29. end
  30. end
  31. end
  32.  
  33. function Waterer:CanWater(doer, target, pos)
  34. if self.watertest then
  35. return self.watertest(self.inst, doer, target, pos) and self.waterer ~= nil
  36. end
  37.  
  38. return self.waterer ~= nil
  39.  
  40. end
  41.  
  42. function Waterer:CollectInventoryActions(doer, actions)
  43. if self:CanWater(doer) and self.canusefrominventory then
  44. table.insert(actions, ACTIONS.WATER)
  45. end
  46. end
  47.  
  48. function Waterer:CollectEquippedActions(doer, target, actions, right)
  49. if right and self:CanWater(doer, target) and self.canuseontargets then
  50. table.insert(actions, ACTIONS.WATER)
  51. end
  52. end
  53.  
  54. function Waterer:CollectPointActions(doer, pos, actions, right)
  55. if right and self:CanWater(doer, nil, pos) and self.canuseonpoint then
  56. table.insert(actions, ACTIONS.WATER)
  57. end
  58. end
  59.  
  60. return Waterer
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement