RuneHive-Game
Loading...
Searching...
No Matches
Cannon.java
Go to the documentation of this file.
1package com.runehive.content.combat.cannon;
2
3import com.runehive.content.combat.cannon.CannonManager.Rotation;
4import com.runehive.content.combat.cannon.CannonManager.Setup;
5import com.runehive.game.world.entity.Entity;
6import com.runehive.game.world.entity.EntityType;
7import com.runehive.game.world.entity.mob.player.Player;
8import com.runehive.game.world.object.CustomGameObject;
9import com.runehive.game.world.position.Position;
10import com.runehive.game.world.region.Region;
11import com.runehive.net.packet.out.SendAddObject;
12import com.runehive.net.packet.out.SendRemoveObject;
13
14/**
15 * Handles the dwarf cannon.
16 *
17 * @author Daniel
18 */
19public class Cannon extends Entity {
20
21 private final String owner;
22
23 private final Position position;
24
26
27 private int ammunition;
28
29 private boolean firing;
30
31 private Setup stage;
32
34
35 public Cannon(String owner, Position position) {
36 super(position);
37 this.owner = owner;
38 this.position = position;
39 this.ammunition = 0;
40 this.firing = false;
41 this.stage = Setup.NO_CANNON;
42 this.rotation = Rotation.NORTH;
43 this.object = new CustomGameObject(8, position);
44 }
45
46 public String getOwner() {
47 return owner;
48 }
49
51 return position;
52 }
53
54 public int getAmmunition() {
55 return ammunition;
56 }
57
58 public void setAmmunition(int ammunition) {
59 this.ammunition = ammunition;
60 }
61
62 public boolean isFiring() {
63 return firing;
64 }
65
66 public void setFiring(boolean firing) {
67 this.firing = firing;
68 }
69
70 public Setup getStage() {
71 return stage;
72 }
73
74 public void setStage(Setup stage) {
75 this.stage = stage;
76 }
77
79 return object;
80 }
81
82 public void setObject(CustomGameObject object) {
83 this.object = object;
84 }
85
87 return rotation;
88 }
89
91 this.rotation = rotation;
92 }
93
94 @Override
95 public void register() {
96 if (!isRegistered()) {
97 Region region = getRegion();
98 setRegistered(true);
99
100 if (region == null) {
102 } else if (!region.containsObject(getHeight(), object)) {
103 addToRegion(region);
104 }
105 }
106 }
107
108 @Override
109 public void unregister() {
110 if (isRegistered()) {
111 destroy();
112 }
113 }
114
115 @Override
116 public void addToRegion(Region region) {
117 region.getPlayers(getHeight()).stream().filter(Player::isValid).forEach(player -> player.send(new SendAddObject(object)));
118 }
119
120 @Override
121 public void removeFromRegion(Region region) {
122 region.getPlayers(getHeight()).stream().filter(Player::isValid).forEach(player -> player.send(new SendRemoveObject(object)));
123 }
124
125 @Override
126 public String getName() {
127 return "Dwarf cannon";
128 }
129
130 @Override
133 }
134
135 @Override
136 public boolean equals(Object obj) {
137 return false;
138 }
139
140 @Override
141 public int hashCode() {
142 return 0;
143 }
144}
void setRotation(Rotation rotation)
Definition Cannon.java:90
void setObject(CustomGameObject object)
Definition Cannon.java:82
EntityType getType()
Gets the EntityType.
Definition Cannon.java:131
void register()
Registers an entity to the World.
Definition Cannon.java:95
void removeFromRegion(Region region)
Removes this entity from the specified region.
Definition Cannon.java:121
String getName()
Gets the name of this entity.
Definition Cannon.java:126
void unregister()
Unregisters an entity from the World.
Definition Cannon.java:109
void addToRegion(Region region)
Adds this entity to the specified region.
Definition Cannon.java:116
Cannon(String owner, Position position)
Definition Cannon.java:35
void setRegistered(boolean registered)
Definition Entity.java:98
Entity destroy()
Destroys this entity.
Definition Entity.java:143
void setPosition(Position position)
Definition Entity.java:106
boolean isValid()
Validates this npc based on its current region and registered state.
Definition Player.java:784
Represents a static game object loaded from the map fs.
Represents a single tile on the game world.
Definition Position.java:14
Represents a single region.
Definition Region.java:21
boolean containsObject(int height, GameObject object)
Definition Region.java:168
Collection< Player > getPlayers(int height)
Definition Region.java:105