Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local Waterer = Class(function(self, inst)
- self.inst = inst
- self.waterer = nil
- self.watertest = nil
- self.water1 = nil
- self.canusefrominventory = true
- self.canuseontargets = false
- self.canuseonpoint = false
- end)
- function Waterer:SetWaterFn(fn)
- self.waterer = fn
- end
- function Waterer:WaterTestFn(fn)
- self.watertest = fn
- end
- function Waterer:Water1Fn(fn)
- self.water1 = fn
- end
- function Waterer:Water(target, pos)
- if self.waterer then
- self.waterer(self.inst, target, pos)
- if self.water1 then
- self.water1(self.inst, target, pos)
- end
- end
- end
- function Waterer:CanWater(doer, target, pos)
- if self.watertest then
- return self.watertest(self.inst, doer, target, pos) and self.waterer ~= nil
- end
- return self.waterer ~= nil
- end
- function Waterer:CollectInventoryActions(doer, actions)
- if self:CanWater(doer) and self.canusefrominventory then
- table.insert(actions, ACTIONS.WATER)
- end
- end
- function Waterer:CollectEquippedActions(doer, target, actions, right)
- if right and self:CanWater(doer, target) and self.canuseontargets then
- table.insert(actions, ACTIONS.WATER)
- end
- end
- function Waterer:CollectPointActions(doer, pos, actions, right)
- if right and self:CanWater(doer, nil, pos) and self.canuseonpoint then
- table.insert(actions, ACTIONS.WATER)
- end
- end
- return Waterer
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement