Advertisement
Guest User

Untitled

a guest
Jan 19th, 2015
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 7.18 KB | None | 0 0
  1. package com.ar.interaction
  2.  
  3. import java.util.HashSet
  4. import com.ar.world.entity.npc.Npc
  5. import com.ar.world.entity.player.Player
  6. import com.ar.world.model.Location
  7. import com.ar.world.model.item.GroundItem
  8. import com.ar.world.model.item.Item
  9. import com.ar.interaction.listeners._
  10. import collection.JavaConversions._
  11. import com.ar.world.model.entity.player.content.npc.ShopOwners
  12. import com.ar.player.RunToggle
  13. import com.ar.world.content.skill.fletching.Fletching
  14. import com.ar.world.content.skill.mining.Mining
  15. import com.ar.world.content.skill.thieving.ThievingStalls
  16. import com.ar.world.content.skill.magic.Teleporting
  17. import com.ar.world.content.skill.runecrafting.Runecrafting
  18. import com.ar.world.model.entity.player.content.obj.BankBooth
  19. import com.ar.world.model.entity.player.content.obj.DitchJumping
  20. import com.ar.world.content.skill.herblore.Herblore
  21. import com.ar.world.model.entity.player.content.item.BirdNestOpening
  22. import com.ar.player.Logout
  23. import com.ar.world.content.skill.crafting.Crafting
  24. import com.ar.world.content.skill.thieving.ThievingNPCs
  25. import com.ar.world.content.skill.fishing.Fishing
  26. import com.ar.world.model.entity.player.content.npc.Bankers
  27. import com.ar.world.content.skill.prayer.BoneBurying
  28. import com.ar.world.content.skill.cooking.Cooking
  29. import com.ar.world.model.entity.player.content.obj.DoorHandling
  30. import com.ar.world.content.skill.prayer.BonesOnAltar
  31. import com.ar.world.content.skill.smithing.Smithing
  32. import com.ar.world.content.skill.smithing.Smelting
  33. import com.ar.world.content.skill.firemaking.Firemaking
  34. import com.ar.world.content.skill.prayer.Praying
  35. import com.ar.world.content.skill.agility.obstacle.Grapple
  36. import com.ar.world.content.skill.thieving.ThievingChests
  37.  
  38. class InteractionManager {
  39.  
  40.   private val entityInteractionListeners = new HashSet[EntityClickListener]
  41.   private val buttonPressedListeners = new HashSet[ButtonPressedListener]
  42.   private val itemClickListeners = new HashSet[ItemClickListener]
  43.   private val itemOptionListeners = new HashSet[ItemOptionListener]
  44.   private val itemOnObjectListeners = new HashSet[ItemOnObjectListener]
  45.   private val groundItemListeners = new HashSet[GroundItemClickListener]
  46.   private val itemOnGroundItemListeners = new HashSet[ItemOnGroundItemListener]
  47.   private val itemOnItemListeners = new HashSet[ItemOnItemListener]
  48.   private val objectClickListeners = new HashSet[ObjectClickListener]
  49.  
  50.   addListener(new Herblore())
  51.   addListener(new Fishing())
  52.   addListener(new Mining())
  53.   addListener(new Smithing())
  54.   addListener(new Smelting())
  55.   addListener(new Crafting())
  56.   addListener(new Fletching())
  57.   addListener(new Firemaking())
  58.   addListener(new Runecrafting())
  59.   addListener(new Cooking())
  60.   addListener(new BoneBurying())
  61.   addListener(new BonesOnAltar())
  62.   addListener(new ThievingNPCs())
  63.   addListener(new ThievingStalls())
  64.   addListener(new ThievingChests())
  65.  
  66.   //Button handlers
  67.   addListener(new Logout())
  68.   addListener(new RunToggle())
  69.  
  70.   //Object handlers
  71.   addListener(new BankBooth())
  72.   addListener(new DitchJumping())
  73.   addListener(new DoorHandling())
  74.  
  75.   //Entity handlers
  76.   addListener(new ShopOwners())
  77.   addListener(new Bankers())
  78.  
  79.   //Item handlers
  80.   addListener(new BirdNestOpening())
  81.  
  82.   //Misc
  83.   addListener(new Teleporting())
  84.   addListener(new Praying())
  85.   addListener(new Grapple())
  86.  
  87.   def addListener[T <: ActionListener](listener: T) {
  88.  
  89.     if (listener.isInstanceOf[EntityClickListener])
  90.       entityInteractionListeners.add(listener.asInstanceOf[EntityClickListener])
  91.  
  92.     if (listener.isInstanceOf[ButtonPressedListener])
  93.       buttonPressedListeners.add(listener.asInstanceOf[ButtonPressedListener])
  94.  
  95.     if (listener.isInstanceOf[ItemClickListener])
  96.       itemClickListeners.add(listener.asInstanceOf[ItemClickListener])
  97.  
  98.     if (listener.isInstanceOf[ItemOptionListener])
  99.       itemOptionListeners.add(listener.asInstanceOf[ItemOptionListener])
  100.  
  101.     if (listener.isInstanceOf[ItemOnObjectListener])
  102.       itemOnObjectListeners.add(listener.asInstanceOf[ItemOnObjectListener])
  103.  
  104.     if (listener.isInstanceOf[GroundItemClickListener])
  105.       groundItemListeners.add(listener.asInstanceOf[GroundItemClickListener])
  106.  
  107.     if (listener.isInstanceOf[ItemOnGroundItemListener])
  108.       itemOnGroundItemListeners.add(listener.asInstanceOf[ItemOnGroundItemListener])
  109.  
  110.     if (listener.isInstanceOf[ItemOnItemListener])
  111.       itemOnItemListeners.add(listener.asInstanceOf[ItemOnItemListener])
  112.  
  113.     if (listener.isInstanceOf[ObjectClickListener])
  114.       objectClickListeners.add(listener.asInstanceOf[ObjectClickListener])
  115.   }
  116.  
  117.   def fireNpcInteraction(player: Player, npc: Npc, option: Int): Boolean = {
  118.     player.setCurrentSkill(null)
  119.     var fired = false
  120.     for (listener <- entityInteractionListeners if listener.fireEntityClick(player, npc, option)) {
  121.       fired = true
  122.     }
  123.     fired
  124.   }
  125.  
  126.   def fireButtonPressed(player: Player, button: Int): Boolean = {
  127.     var fired = false
  128.     for (listener <- buttonPressedListeners if listener.fireButtonPressed(player, button)) {
  129.       fired = true
  130.     }
  131.     fired
  132.   }
  133.  
  134.   def fireItemClick(player: Player, item: Item): Boolean = {
  135.     player.setCurrentSkill(null)
  136.     var fired = false
  137.     for (listener <- itemClickListeners if listener.fireItemClick(player, item)) {
  138.       fired = true
  139.     }
  140.     fired
  141.   }
  142.  
  143.   def fireItemOption(player: Player, item: Item, interfaceId: Int, slotId: Int, option: Int): Boolean = {
  144.     player.setCurrentSkill(null)
  145.     var fired = false
  146.     for (listener <- itemOptionListeners if listener.fireItemOption(player, item, slotId, interfaceId, option)) {
  147.       fired = true
  148.     }
  149.     fired
  150.   }
  151.  
  152.   def fireItemOnObject(player: Player, item: Item, `object`: Int, location: Location): Boolean = {
  153.     player.setCurrentSkill(null)
  154.     var fired = false
  155.     for (listener <- itemOnObjectListeners if listener.fireItemOnObject(player, item, `object`, location)) {
  156.       fired = true
  157.     }
  158.     fired
  159.   }
  160.  
  161.   def fireGroundItemOption(player: Player, ground: GroundItem, action: Int, item: Item): Boolean = {
  162.     player.setCurrentSkill(null)
  163.     var fired = false
  164.     for (listener <- groundItemListeners if listener.fireGroundItemClick(player, ground, item, action)) {
  165.       fired = true
  166.     }
  167.     fired
  168.   }
  169.  
  170.   def fireItemOnGroundItem(player: Player, item: Item, ground: GroundItem): Boolean = {
  171.     player.setCurrentSkill(null)
  172.     var fired = false
  173.     for (listener <- itemOnGroundItemListeners if listener.fireItemOnGroundItem(player, item, ground)) {
  174.       fired = true
  175.     }
  176.     fired
  177.   }
  178.  
  179.   def fireItemOnItem(player: Player, use: Item, item: Item): Boolean = {
  180.     player.setCurrentSkill(null)
  181.     var fired = false
  182.     for (listener <- itemOnItemListeners if listener.fireItemOnItem(player, use, item)) {
  183.       fired = true
  184.     }
  185.     fired
  186.   }
  187.  
  188.   def fireObjectClick(player: Player, `object`: Int, location: Location, option: Int): Boolean = {
  189.     player.setCurrentSkill(null)
  190.     var fired = false
  191.     if(player.getWoodcutting().fireObjectClick(player,`object`, location, option))
  192.       fired = true
  193.     for (listener <- objectClickListeners if listener.fireObjectClick(player, `object`, location, option)) {
  194.       fired = true
  195.     }
  196.     fired
  197.   }
  198.  
  199. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement