Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.ar.interaction
- import java.util.HashSet
- import com.ar.world.entity.npc.Npc
- import com.ar.world.entity.player.Player
- import com.ar.world.model.Location
- import com.ar.world.model.item.GroundItem
- import com.ar.world.model.item.Item
- import com.ar.interaction.listeners._
- import collection.JavaConversions._
- import com.ar.world.model.entity.player.content.npc.ShopOwners
- import com.ar.player.RunToggle
- import com.ar.world.content.skill.fletching.Fletching
- import com.ar.world.content.skill.mining.Mining
- import com.ar.world.content.skill.thieving.ThievingStalls
- import com.ar.world.content.skill.magic.Teleporting
- import com.ar.world.content.skill.runecrafting.Runecrafting
- import com.ar.world.model.entity.player.content.obj.BankBooth
- import com.ar.world.model.entity.player.content.obj.DitchJumping
- import com.ar.world.content.skill.herblore.Herblore
- import com.ar.world.model.entity.player.content.item.BirdNestOpening
- import com.ar.player.Logout
- import com.ar.world.content.skill.crafting.Crafting
- import com.ar.world.content.skill.thieving.ThievingNPCs
- import com.ar.world.content.skill.fishing.Fishing
- import com.ar.world.model.entity.player.content.npc.Bankers
- import com.ar.world.content.skill.prayer.BoneBurying
- import com.ar.world.content.skill.cooking.Cooking
- import com.ar.world.model.entity.player.content.obj.DoorHandling
- import com.ar.world.content.skill.prayer.BonesOnAltar
- import com.ar.world.content.skill.smithing.Smithing
- import com.ar.world.content.skill.smithing.Smelting
- import com.ar.world.content.skill.firemaking.Firemaking
- import com.ar.world.content.skill.prayer.Praying
- import com.ar.world.content.skill.agility.obstacle.Grapple
- import com.ar.world.content.skill.thieving.ThievingChests
- class InteractionManager {
- private val entityInteractionListeners = new HashSet[EntityClickListener]
- private val buttonPressedListeners = new HashSet[ButtonPressedListener]
- private val itemClickListeners = new HashSet[ItemClickListener]
- private val itemOptionListeners = new HashSet[ItemOptionListener]
- private val itemOnObjectListeners = new HashSet[ItemOnObjectListener]
- private val groundItemListeners = new HashSet[GroundItemClickListener]
- private val itemOnGroundItemListeners = new HashSet[ItemOnGroundItemListener]
- private val itemOnItemListeners = new HashSet[ItemOnItemListener]
- private val objectClickListeners = new HashSet[ObjectClickListener]
- addListener(new Herblore())
- addListener(new Fishing())
- addListener(new Mining())
- addListener(new Smithing())
- addListener(new Smelting())
- addListener(new Crafting())
- addListener(new Fletching())
- addListener(new Firemaking())
- addListener(new Runecrafting())
- addListener(new Cooking())
- addListener(new BoneBurying())
- addListener(new BonesOnAltar())
- addListener(new ThievingNPCs())
- addListener(new ThievingStalls())
- addListener(new ThievingChests())
- //Button handlers
- addListener(new Logout())
- addListener(new RunToggle())
- //Object handlers
- addListener(new BankBooth())
- addListener(new DitchJumping())
- addListener(new DoorHandling())
- //Entity handlers
- addListener(new ShopOwners())
- addListener(new Bankers())
- //Item handlers
- addListener(new BirdNestOpening())
- //Misc
- addListener(new Teleporting())
- addListener(new Praying())
- addListener(new Grapple())
- def addListener[T <: ActionListener](listener: T) {
- if (listener.isInstanceOf[EntityClickListener])
- entityInteractionListeners.add(listener.asInstanceOf[EntityClickListener])
- if (listener.isInstanceOf[ButtonPressedListener])
- buttonPressedListeners.add(listener.asInstanceOf[ButtonPressedListener])
- if (listener.isInstanceOf[ItemClickListener])
- itemClickListeners.add(listener.asInstanceOf[ItemClickListener])
- if (listener.isInstanceOf[ItemOptionListener])
- itemOptionListeners.add(listener.asInstanceOf[ItemOptionListener])
- if (listener.isInstanceOf[ItemOnObjectListener])
- itemOnObjectListeners.add(listener.asInstanceOf[ItemOnObjectListener])
- if (listener.isInstanceOf[GroundItemClickListener])
- groundItemListeners.add(listener.asInstanceOf[GroundItemClickListener])
- if (listener.isInstanceOf[ItemOnGroundItemListener])
- itemOnGroundItemListeners.add(listener.asInstanceOf[ItemOnGroundItemListener])
- if (listener.isInstanceOf[ItemOnItemListener])
- itemOnItemListeners.add(listener.asInstanceOf[ItemOnItemListener])
- if (listener.isInstanceOf[ObjectClickListener])
- objectClickListeners.add(listener.asInstanceOf[ObjectClickListener])
- }
- def fireNpcInteraction(player: Player, npc: Npc, option: Int): Boolean = {
- player.setCurrentSkill(null)
- var fired = false
- for (listener <- entityInteractionListeners if listener.fireEntityClick(player, npc, option)) {
- fired = true
- }
- fired
- }
- def fireButtonPressed(player: Player, button: Int): Boolean = {
- var fired = false
- for (listener <- buttonPressedListeners if listener.fireButtonPressed(player, button)) {
- fired = true
- }
- fired
- }
- def fireItemClick(player: Player, item: Item): Boolean = {
- player.setCurrentSkill(null)
- var fired = false
- for (listener <- itemClickListeners if listener.fireItemClick(player, item)) {
- fired = true
- }
- fired
- }
- def fireItemOption(player: Player, item: Item, interfaceId: Int, slotId: Int, option: Int): Boolean = {
- player.setCurrentSkill(null)
- var fired = false
- for (listener <- itemOptionListeners if listener.fireItemOption(player, item, slotId, interfaceId, option)) {
- fired = true
- }
- fired
- }
- def fireItemOnObject(player: Player, item: Item, `object`: Int, location: Location): Boolean = {
- player.setCurrentSkill(null)
- var fired = false
- for (listener <- itemOnObjectListeners if listener.fireItemOnObject(player, item, `object`, location)) {
- fired = true
- }
- fired
- }
- def fireGroundItemOption(player: Player, ground: GroundItem, action: Int, item: Item): Boolean = {
- player.setCurrentSkill(null)
- var fired = false
- for (listener <- groundItemListeners if listener.fireGroundItemClick(player, ground, item, action)) {
- fired = true
- }
- fired
- }
- def fireItemOnGroundItem(player: Player, item: Item, ground: GroundItem): Boolean = {
- player.setCurrentSkill(null)
- var fired = false
- for (listener <- itemOnGroundItemListeners if listener.fireItemOnGroundItem(player, item, ground)) {
- fired = true
- }
- fired
- }
- def fireItemOnItem(player: Player, use: Item, item: Item): Boolean = {
- player.setCurrentSkill(null)
- var fired = false
- for (listener <- itemOnItemListeners if listener.fireItemOnItem(player, use, item)) {
- fired = true
- }
- fired
- }
- def fireObjectClick(player: Player, `object`: Int, location: Location, option: Int): Boolean = {
- player.setCurrentSkill(null)
- var fired = false
- if(player.getWoodcutting().fireObjectClick(player,`object`, location, option))
- fired = true
- for (listener <- objectClickListeners if listener.fireObjectClick(player, `object`, location, option)) {
- fired = true
- }
- fired
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement