mirror of
https://github.com/2006-Scape/apollo.git
synced 2026-07-06 16:51:37 +00:00
Move attribute base from Entity to Mob.
This commit is contained in:
@@ -1,10 +1,6 @@
|
|||||||
package org.apollo.game.model.entity;
|
package org.apollo.game.model.entity;
|
||||||
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import org.apollo.game.model.Position;
|
import org.apollo.game.model.Position;
|
||||||
import org.apollo.game.model.entity.attr.Attribute;
|
|
||||||
import org.apollo.game.model.entity.attr.AttributeMap;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents an in-game entity, such as a mob, object, projectile etc.
|
* Represents an in-game entity, such as a mob, object, projectile etc.
|
||||||
@@ -47,11 +43,6 @@ public abstract class Entity {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* The attribute map of this entity.
|
|
||||||
*/
|
|
||||||
protected final AttributeMap attributes = new AttributeMap();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The position of this entity.
|
* The position of this entity.
|
||||||
*/
|
*/
|
||||||
@@ -66,25 +57,6 @@ public abstract class Entity {
|
|||||||
this.position = position;
|
this.position = position;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the value of the attribute with the specified name.
|
|
||||||
*
|
|
||||||
* @param name The name of the attribute.
|
|
||||||
* @return The value of the attribute.
|
|
||||||
*/
|
|
||||||
public final Attribute<?> getAttribute(String name) {
|
|
||||||
return attributes.getAttribute(name);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets a shallow copy of the attributes of this entity, as a {@link Map}.
|
|
||||||
*
|
|
||||||
* @return The map of attributes.
|
|
||||||
*/
|
|
||||||
public final Map<String, Attribute<?>> getAttributes() {
|
|
||||||
return attributes.getAttributes();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the {@link EntityType} of this entity.
|
* Gets the {@link EntityType} of this entity.
|
||||||
*
|
*
|
||||||
@@ -101,14 +73,4 @@ public abstract class Entity {
|
|||||||
return position;
|
return position;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value of the attribute with the specified name.
|
|
||||||
*
|
|
||||||
* @param name The name of the attribute.
|
|
||||||
* @param value The attribute.
|
|
||||||
*/
|
|
||||||
public final void setAttribute(String name, Attribute<?> value) {
|
|
||||||
attributes.setAttribute(name, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -2,6 +2,7 @@ package org.apollo.game.model.entity;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import org.apollo.game.action.Action;
|
import org.apollo.game.action.Action;
|
||||||
import org.apollo.game.model.Animation;
|
import org.apollo.game.model.Animation;
|
||||||
@@ -10,9 +11,11 @@ import org.apollo.game.model.Graphic;
|
|||||||
import org.apollo.game.model.Position;
|
import org.apollo.game.model.Position;
|
||||||
import org.apollo.game.model.World;
|
import org.apollo.game.model.World;
|
||||||
import org.apollo.game.model.def.NpcDefinition;
|
import org.apollo.game.model.def.NpcDefinition;
|
||||||
|
import org.apollo.game.model.entity.attr.Attribute;
|
||||||
|
import org.apollo.game.model.entity.attr.AttributeMap;
|
||||||
import org.apollo.game.model.inv.Inventory;
|
import org.apollo.game.model.inv.Inventory;
|
||||||
import org.apollo.game.model.inv.InventoryConstants;
|
|
||||||
import org.apollo.game.model.inv.Inventory.StackMode;
|
import org.apollo.game.model.inv.Inventory.StackMode;
|
||||||
|
import org.apollo.game.model.inv.InventoryConstants;
|
||||||
import org.apollo.game.scheduling.impl.SkillNormalizationTask;
|
import org.apollo.game.scheduling.impl.SkillNormalizationTask;
|
||||||
import org.apollo.game.sync.block.SynchronizationBlock;
|
import org.apollo.game.sync.block.SynchronizationBlock;
|
||||||
import org.apollo.game.sync.block.SynchronizationBlockSet;
|
import org.apollo.game.sync.block.SynchronizationBlockSet;
|
||||||
@@ -21,6 +24,7 @@ import org.apollo.game.sync.block.SynchronizationBlockSet;
|
|||||||
* A {@link Mob} is a living entity in the world, such as a player or NPC.
|
* A {@link Mob} is a living entity in the world, such as a player or NPC.
|
||||||
*
|
*
|
||||||
* @author Graham
|
* @author Graham
|
||||||
|
* @author Major
|
||||||
*/
|
*/
|
||||||
public abstract class Mob extends Entity {
|
public abstract class Mob extends Entity {
|
||||||
|
|
||||||
@@ -29,21 +33,6 @@ public abstract class Mob extends Entity {
|
|||||||
*/
|
*/
|
||||||
private transient Action<?> action;
|
private transient Action<?> action;
|
||||||
|
|
||||||
/**
|
|
||||||
* This mob's set of synchronization blocks.
|
|
||||||
*/
|
|
||||||
protected transient SynchronizationBlockSet blockSet = new SynchronizationBlockSet();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This mob's npc definition. A player only uses this if they are appearing as an npc.
|
|
||||||
*/
|
|
||||||
protected NpcDefinition definition;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This mob's equipment.
|
|
||||||
*/
|
|
||||||
protected final Inventory equipment = new Inventory(InventoryConstants.EQUIPMENT_CAPACITY, StackMode.STACK_ALWAYS);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The position this mob is facing towards.
|
* The position this mob is facing towards.
|
||||||
*/
|
*/
|
||||||
@@ -54,21 +43,6 @@ public abstract class Mob extends Entity {
|
|||||||
*/
|
*/
|
||||||
private transient Direction firstDirection = Direction.NONE;
|
private transient Direction firstDirection = Direction.NONE;
|
||||||
|
|
||||||
/**
|
|
||||||
* The index of this mob.
|
|
||||||
*/
|
|
||||||
protected int index = -1;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The mob this mob is interacting with.
|
|
||||||
*/
|
|
||||||
protected Mob interactingMob;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This mob's inventory.
|
|
||||||
*/
|
|
||||||
protected final Inventory inventory = new Inventory(InventoryConstants.INVENTORY_CAPACITY);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This mob's list of local npcs.
|
* This mob's list of local npcs.
|
||||||
*/
|
*/
|
||||||
@@ -84,16 +58,51 @@ public abstract class Mob extends Entity {
|
|||||||
*/
|
*/
|
||||||
private transient Direction secondDirection = Direction.NONE;
|
private transient Direction secondDirection = Direction.NONE;
|
||||||
|
|
||||||
/**
|
|
||||||
* This mob's skill set.
|
|
||||||
*/
|
|
||||||
protected final SkillSet skillSet = new SkillSet();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Indicates whether this mob is currently teleporting or not.
|
* Indicates whether this mob is currently teleporting or not.
|
||||||
*/
|
*/
|
||||||
private transient boolean teleporting = false;
|
private transient boolean teleporting = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The attribute map of this entity.
|
||||||
|
*/
|
||||||
|
protected final AttributeMap attributes = new AttributeMap();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This mob's set of synchronization blocks.
|
||||||
|
*/
|
||||||
|
protected transient SynchronizationBlockSet blockSet = new SynchronizationBlockSet();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This mob's npc definition. A player only uses this if they are appearing as an npc.
|
||||||
|
*/
|
||||||
|
protected NpcDefinition definition;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This mob's equipment.
|
||||||
|
*/
|
||||||
|
protected final Inventory equipment = new Inventory(InventoryConstants.EQUIPMENT_CAPACITY, StackMode.STACK_ALWAYS);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The index of this mob.
|
||||||
|
*/
|
||||||
|
protected int index = -1;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The mob this mob is interacting with.
|
||||||
|
*/
|
||||||
|
protected Mob interactingMob;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This mob's inventory.
|
||||||
|
*/
|
||||||
|
protected final Inventory inventory = new Inventory(InventoryConstants.INVENTORY_CAPACITY);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This mob's skill set.
|
||||||
|
*/
|
||||||
|
protected final SkillSet skillSet = new SkillSet();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This mob's walking queue.
|
* This mob's walking queue.
|
||||||
*/
|
*/
|
||||||
@@ -124,6 +133,25 @@ public abstract class Mob extends Entity {
|
|||||||
skillSet.setSkill(Skill.HITPOINTS, new Skill(hitpoints.getExperience(), current, maximum));
|
skillSet.setSkill(Skill.HITPOINTS, new Skill(hitpoints.getExperience(), current, maximum));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the attribute with the specified name.
|
||||||
|
*
|
||||||
|
* @param name The name of the attribute.
|
||||||
|
* @return The value of the attribute.
|
||||||
|
*/
|
||||||
|
public final Attribute<?> getAttribute(String name) {
|
||||||
|
return attributes.getAttribute(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets a shallow copy of the attributes of this entity, as a {@link Map}.
|
||||||
|
*
|
||||||
|
* @return The map of attributes.
|
||||||
|
*/
|
||||||
|
public final Map<String, Attribute<?>> getAttributes() {
|
||||||
|
return attributes.getAttributes();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets this mob's {@link SynchronizationBlockSet}.
|
* Gets this mob's {@link SynchronizationBlockSet}.
|
||||||
*
|
*
|
||||||
@@ -133,6 +161,15 @@ public abstract class Mob extends Entity {
|
|||||||
return blockSet;
|
return blockSet;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets this mob's {@link NpcDefinition}.
|
||||||
|
*
|
||||||
|
* @param definition The definition.
|
||||||
|
*/
|
||||||
|
public final NpcDefinition getDefinition() {
|
||||||
|
return definition;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets this mob's movement {@link Direction}s, as an array.
|
* Gets this mob's movement {@link Direction}s, as an array.
|
||||||
*
|
*
|
||||||
@@ -220,15 +257,6 @@ public abstract class Mob extends Entity {
|
|||||||
return localPlayers;
|
return localPlayers;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets this mob's {@link NpcDefinition}.
|
|
||||||
*
|
|
||||||
* @param definition The definition.
|
|
||||||
*/
|
|
||||||
public final NpcDefinition getDefinition() {
|
|
||||||
return definition;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets this mob's second movement {@link Direction}.
|
* Gets this mob's second movement {@link Direction}.
|
||||||
*
|
*
|
||||||
@@ -256,13 +284,6 @@ public abstract class Mob extends Entity {
|
|||||||
return walkingQueue;
|
return walkingQueue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Initialises this mob.
|
|
||||||
*/
|
|
||||||
private void init() {
|
|
||||||
World.getWorld().schedule(new SkillNormalizationTask(this));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if this mob is active.
|
* Checks if this mob is active.
|
||||||
*
|
*
|
||||||
@@ -314,6 +335,16 @@ public abstract class Mob extends Entity {
|
|||||||
blockSet.add(SynchronizationBlock.createInteractingMobBlock(65535));
|
blockSet.add(SynchronizationBlock.createInteractingMobBlock(65535));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value of the attribute with the specified name.
|
||||||
|
*
|
||||||
|
* @param name The name of the attribute.
|
||||||
|
* @param value The attribute.
|
||||||
|
*/
|
||||||
|
public final void setAttribute(String name, Attribute<?> value) {
|
||||||
|
attributes.setAttribute(name, value);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets this mob's {@link NpcDefinition}.
|
* Sets this mob's {@link NpcDefinition}.
|
||||||
*
|
*
|
||||||
@@ -445,4 +476,11 @@ public abstract class Mob extends Entity {
|
|||||||
blockSet.add(SynchronizationBlock.createTurnToPositionBlock(this.facingPosition = position));
|
blockSet.add(SynchronizationBlock.createTurnToPositionBlock(this.facingPosition = position));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initialises this mob.
|
||||||
|
*/
|
||||||
|
private void init() {
|
||||||
|
World.getWorld().schedule(new SkillNormalizationTask(this));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -26,10 +26,10 @@ import org.apollo.game.model.inter.bank.BankInterfaceListener;
|
|||||||
import org.apollo.game.model.inv.AppearanceInventoryListener;
|
import org.apollo.game.model.inv.AppearanceInventoryListener;
|
||||||
import org.apollo.game.model.inv.FullInventoryListener;
|
import org.apollo.game.model.inv.FullInventoryListener;
|
||||||
import org.apollo.game.model.inv.Inventory;
|
import org.apollo.game.model.inv.Inventory;
|
||||||
|
import org.apollo.game.model.inv.Inventory.StackMode;
|
||||||
import org.apollo.game.model.inv.InventoryConstants;
|
import org.apollo.game.model.inv.InventoryConstants;
|
||||||
import org.apollo.game.model.inv.InventoryListener;
|
import org.apollo.game.model.inv.InventoryListener;
|
||||||
import org.apollo.game.model.inv.SynchronizationInventoryListener;
|
import org.apollo.game.model.inv.SynchronizationInventoryListener;
|
||||||
import org.apollo.game.model.inv.Inventory.StackMode;
|
|
||||||
import org.apollo.game.model.setting.PrivacyState;
|
import org.apollo.game.model.setting.PrivacyState;
|
||||||
import org.apollo.game.model.setting.PrivilegeLevel;
|
import org.apollo.game.model.setting.PrivilegeLevel;
|
||||||
import org.apollo.game.model.setting.ScreenBrightness;
|
import org.apollo.game.model.setting.ScreenBrightness;
|
||||||
@@ -44,6 +44,7 @@ import org.apollo.util.Point;
|
|||||||
* A {@link Player} is a {@link Mob} that a user is controlling.
|
* A {@link Player} is a {@link Mob} that a user is controlling.
|
||||||
*
|
*
|
||||||
* @author Graham
|
* @author Graham
|
||||||
|
* @author Major
|
||||||
*/
|
*/
|
||||||
public final class Player extends Mob {
|
public final class Player extends Mob {
|
||||||
|
|
||||||
@@ -452,9 +453,9 @@ public final class Player extends Mob {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the player's name.
|
* Gets this player's name.
|
||||||
*
|
*
|
||||||
* @return The player's name.
|
* @return The name.
|
||||||
*/
|
*/
|
||||||
public String getUsername() {
|
public String getUsername() {
|
||||||
return credentials.getUsername();
|
return credentials.getUsername();
|
||||||
@@ -573,7 +574,7 @@ public final class Player extends Mob {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if this player account has membership.
|
* Checks if this player has membership.
|
||||||
*
|
*
|
||||||
* @return {@code true} if so, {@code false} if not.
|
* @return {@code true} if so, {@code false} if not.
|
||||||
*/
|
*/
|
||||||
@@ -591,7 +592,7 @@ public final class Player extends Mob {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets whether the player is running or not.
|
* Checks if this player is running.
|
||||||
*
|
*
|
||||||
* @return {@code true} if the player is running, otherwise {@code false}.
|
* @return {@code true} if the player is running, otherwise {@code false}.
|
||||||
*/
|
*/
|
||||||
@@ -600,9 +601,9 @@ public final class Player extends Mob {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the withdrawing notes flag.
|
* Checks if this player is withdrawing noted items.
|
||||||
*
|
*
|
||||||
* @return The flag.
|
* @return {@code true} if the player is currently withdrawing notes, otherwise {@code false}.
|
||||||
*/
|
*/
|
||||||
public boolean isWithdrawingNotes() {
|
public boolean isWithdrawingNotes() {
|
||||||
return withdrawingNotes;
|
return withdrawingNotes;
|
||||||
@@ -788,7 +789,7 @@ public final class Player extends Mob {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the value denoting the client's modified version.
|
* Sets the value denoting the client's modified version. TODO make this an attribute?
|
||||||
*
|
*
|
||||||
* @param clientVersion The client version.
|
* @param clientVersion The client version.
|
||||||
*/
|
*/
|
||||||
@@ -815,7 +816,7 @@ public final class Player extends Mob {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets whether or not the player is skulled.
|
* Sets whether or not the player is skulled. TODO make this an attribute
|
||||||
*
|
*
|
||||||
* @param isSkulled Whether or not the player is skulled.
|
* @param isSkulled Whether or not the player is skulled.
|
||||||
*/
|
*/
|
||||||
@@ -851,7 +852,7 @@ public final class Player extends Mob {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the new player flag.
|
* Sets the new player flag. TODO make this an attribute?
|
||||||
*
|
*
|
||||||
* @param newPlayer A flag indicating if the player has played before.
|
* @param newPlayer A flag indicating if the player has played before.
|
||||||
*/
|
*/
|
||||||
@@ -860,7 +861,7 @@ public final class Player extends Mob {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the player's prayer icon.
|
* Sets the player's prayer icon. TODO make this an attribute?
|
||||||
*
|
*
|
||||||
* @param prayerIcon The prayer icon.
|
* @param prayerIcon The prayer icon.
|
||||||
*/
|
*/
|
||||||
@@ -887,12 +888,13 @@ public final class Player extends Mob {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the player's run energy.
|
* Sets the player's run energy. TODO make this an attribute?
|
||||||
*
|
*
|
||||||
* @param runEnergy The energy.
|
* @param runEnergy The energy.
|
||||||
*/
|
*/
|
||||||
public void setRunEnergy(int runEnergy) {
|
public void setRunEnergy(int runEnergy) {
|
||||||
send(new UpdateRunEnergyEvent(this.runEnergy = runEnergy));
|
this.runEnergy = runEnergy;
|
||||||
|
send(new UpdateRunEnergyEvent(runEnergy));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -928,9 +930,9 @@ public final class Player extends Mob {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets whether the player is withdrawing notes from the bank.
|
* Sets whether or not the player is withdrawing notes from the bank.
|
||||||
*
|
*
|
||||||
* @param withdrawingNotes Whether the player is withdrawing noted items or not.
|
* @param withdrawingNotes Whether or not the player is withdrawing noted items.
|
||||||
*/
|
*/
|
||||||
public void setWithdrawingNotes(boolean withdrawingNotes) {
|
public void setWithdrawingNotes(boolean withdrawingNotes) {
|
||||||
this.withdrawingNotes = withdrawingNotes;
|
this.withdrawingNotes = withdrawingNotes;
|
||||||
@@ -959,16 +961,18 @@ public final class Player extends Mob {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Toggles whether the player is running or not.
|
* Toggles the player's run status.
|
||||||
*/
|
*/
|
||||||
public void toggleRunning() {
|
public void toggleRunning() {
|
||||||
walkingQueue.setRunningQueue(running = !running);
|
running = !running;
|
||||||
|
walkingQueue.setRunningQueue(running);
|
||||||
send(new ConfigEvent(173, running ? 1 : 0));
|
send(new ConfigEvent(173, running ? 1 : 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return Player.class.getName() + " [username=" + getUsername() + ", privilege=" + privilegeLevel + "]";
|
return Player.class.getName() + " [username=" + getUsername() + ", privilege=" + privilegeLevel
|
||||||
|
+ ", clientVersion=" + clientVersion + "]";
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user