From f4c08995b57fe29388c50efe537b857c125523df Mon Sep 17 00:00:00 2001 From: Major Date: Thu, 25 May 2017 02:32:20 +0100 Subject: [PATCH] Condense some unnecessarily-long variable names --- .../org/apollo/cache/IndexedFileSystem.java | 12 +- .../game/fs/decoder/WorldMapDecoder.java | 2 +- .../src/main/org/apollo/game/model/World.java | 4 +- .../org/apollo/game/model/area/Region.java | 62 +++++----- .../area/collision/CollisionManager.java | 106 +++++++++--------- .../model/area/collision/CollisionUpdate.java | 74 +++++++----- ...ener.java => CollisionUpdateListener.java} | 22 ++-- .../area/collision/CollisionUpdateType.java | 2 + .../apollo/game/model/entity/EntityType.java | 5 +- 9 files changed, 152 insertions(+), 137 deletions(-) rename game/src/main/org/apollo/game/model/area/collision/{GameObjectCollisionUpdateListener.java => CollisionUpdateListener.java} (56%) diff --git a/cache/src/main/org/apollo/cache/IndexedFileSystem.java b/cache/src/main/org/apollo/cache/IndexedFileSystem.java index 1b59d9de..43c83746 100644 --- a/cache/src/main/org/apollo/cache/IndexedFileSystem.java +++ b/cache/src/main/org/apollo/cache/IndexedFileSystem.java @@ -1,22 +1,20 @@ package org.apollo.cache; +import com.google.common.base.Preconditions; +import org.apollo.cache.archive.Archive; + import java.io.Closeable; import java.io.FileNotFoundException; import java.io.IOException; import java.io.RandomAccessFile; -import java.io.UncheckedIOException; import java.nio.ByteBuffer; import java.nio.file.Files; import java.nio.file.Path; import java.util.Arrays; import java.util.HashMap; import java.util.Map; -import java.util.function.Function; import java.util.zip.CRC32; -import com.google.common.base.Preconditions; -import org.apollo.cache.archive.Archive; - /** * A file system based on top of the operating system's file system. It consists of a data file and index files. Index * files point to blocks in the data file, which contains the actual data. @@ -95,7 +93,7 @@ public final class IndexedFileSystem implements Closeable { public Archive getArchive(int type, int file) throws IOException { FileDescriptor descriptor = new FileDescriptor(type, file); Archive cached = cache.get(descriptor); - + if (cached == null) { cached = Archive.decode(getFile(descriptor)); @@ -274,7 +272,7 @@ public final class IndexedFileSystem implements Closeable { } } if (indexCount <= 0) { - throw new FileNotFoundException("No index file(s) present."); + throw new FileNotFoundException("No index file(s) present in " + base + "."); } Path resources = base.resolve("main_file_cache.dat"); diff --git a/game/src/main/org/apollo/game/fs/decoder/WorldMapDecoder.java b/game/src/main/org/apollo/game/fs/decoder/WorldMapDecoder.java index 1f6fac93..8162842a 100644 --- a/game/src/main/org/apollo/game/fs/decoder/WorldMapDecoder.java +++ b/game/src/main/org/apollo/game/fs/decoder/WorldMapDecoder.java @@ -89,7 +89,7 @@ public final class WorldMapDecoder implements Runnable { Position position = new Position(mapX + x, mapY + y, plane.getLevel()); if ((tile.getAttributes() & BLOCKED_TILE) == BLOCKED_TILE) { - collisionManager.markBlocked(position); + collisionManager.block(position); } if ((tile.getAttributes() & BRIDGE_TILE) == BRIDGE_TILE) { diff --git a/game/src/main/org/apollo/game/model/World.java b/game/src/main/org/apollo/game/model/World.java index 0b10e0cf..991a41fc 100644 --- a/game/src/main/org/apollo/game/model/World.java +++ b/game/src/main/org/apollo/game/model/World.java @@ -18,7 +18,7 @@ import org.apollo.game.io.EquipmentDefinitionParser; import org.apollo.game.model.area.Region; import org.apollo.game.model.area.RegionRepository; import org.apollo.game.model.area.collision.CollisionManager; -import org.apollo.game.model.area.collision.GameObjectCollisionUpdateListener; +import org.apollo.game.model.area.collision.CollisionUpdateListener; import org.apollo.game.model.entity.Entity; import org.apollo.game.model.entity.EntityType; import org.apollo.game.model.entity.MobRepository; @@ -239,7 +239,7 @@ public final class World { // Build collision matrices for the first time collisionManager.build(false); - regions.addRegionListener(new GameObjectCollisionUpdateListener(collisionManager)); + regions.addRegionListener(new CollisionUpdateListener(collisionManager)); npcMovement = new NpcMovementTask(collisionManager); // Must be exactly here because of ordering issues. scheduler.schedule(npcMovement); diff --git a/game/src/main/org/apollo/game/model/area/Region.java b/game/src/main/org/apollo/game/model/area/Region.java index 39b54af7..7eafb952 100644 --- a/game/src/main/org/apollo/game/model/area/Region.java +++ b/game/src/main/org/apollo/game/model/area/Region.java @@ -1,5 +1,18 @@ package org.apollo.game.model.area; +import com.google.common.base.MoreObjects; +import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableSet; +import org.apollo.game.message.impl.RegionUpdateMessage; +import org.apollo.game.model.Direction; +import org.apollo.game.model.Position; +import org.apollo.game.model.area.collision.CollisionMatrix; +import org.apollo.game.model.area.update.GroupableEntity; +import org.apollo.game.model.area.update.UpdateOperation; +import org.apollo.game.model.entity.Entity; +import org.apollo.game.model.entity.EntityType; +import org.apollo.game.model.entity.obj.DynamicGameObject; + import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; @@ -10,21 +23,6 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.stream.Collectors; import java.util.stream.Stream; -import org.apollo.game.message.impl.RegionUpdateMessage; -import org.apollo.game.model.Direction; -import org.apollo.game.model.Position; -import org.apollo.game.model.area.collision.CollisionMatrix; -import org.apollo.game.model.area.update.GroupableEntity; -import org.apollo.game.model.area.update.UpdateOperation; -import org.apollo.game.model.entity.Entity; -import org.apollo.game.model.entity.EntityType; -import org.apollo.game.model.entity.Mob; -import org.apollo.game.model.entity.obj.DynamicGameObject; - -import com.google.common.base.MoreObjects; -import com.google.common.base.Preconditions; -import com.google.common.collect.ImmutableSet; - /** * An 8x8 area of the map. * @@ -34,8 +32,6 @@ public final class Region { /** * A {@link RegionListener} for {@link UpdateOperation}s. - * - * @author Major */ private static final class UpdateRegionListener implements RegionListener { @@ -49,6 +45,11 @@ public final class Region { } + /** + * The message of the exception thrown when a CollisionMatrix with an illegal height is requested. + */ + private static final String ILLEGAL_MATRIX_HEIGHT = "Matrix height level must be [0, %d), received %d."; + /** * The width and length of a Region, in tiles. */ @@ -199,10 +200,10 @@ public final class Region { */ public Set encode(int height) { Set additions = entities.values().stream() - .flatMap(Set::stream) // TODO fix this to work for ground items + projectiles - .filter(entity -> entity instanceof DynamicGameObject && entity.getPosition().getHeight() == height) - .map(entity -> ((GroupableEntity) entity).toUpdateOperation(this, EntityUpdateType.ADD).toMessage()) - .collect(Collectors.toSet()); + .flatMap(Set::stream) // TODO fix this to work for ground items + projectiles + .filter(entity -> entity instanceof DynamicGameObject && entity.getPosition().getHeight() == height) + .map(entity -> ((GroupableEntity) entity).toUpdateOperation(this, EntityUpdateType.ADD).toMessage()) + .collect(Collectors.toSet()); ImmutableSet.Builder builder = ImmutableSet.builder(); builder.addAll(additions).addAll(updates.get(height)).addAll(removedObjects.get(height)); @@ -231,7 +232,7 @@ public final class Region { public Stream getEntities(EntityType... types) { Set set = ImmutableSet.copyOf(types); return (Stream) entities.values().stream().flatMap(Collection::stream) - .filter(entity -> set.contains(entity.getEntityType())); + .filter(entity -> set.contains(entity.getEntityType())); } /** @@ -264,13 +265,13 @@ public final class Region { Set set = ImmutableSet.copyOf(types); @SuppressWarnings("unchecked") Set filtered = (Set) local.stream().filter(entity -> set.contains(entity.getEntityType())) - .collect(Collectors.toSet()); + .collect(Collectors.toSet()); return ImmutableSet.copyOf(filtered); } /** - * Gets the {@link Set} of {@link RegionCoordinates} of Regions that are - * viewable from the specified {@link Position}. + * Gets the {@link Set} of {@link RegionCoordinates} of Regions that are viewable from the specified + * {@link Position}. * * @return The Set of RegionCoordinates. */ @@ -295,13 +296,12 @@ public final class Region { * @return The CollisionMatrix. */ public CollisionMatrix getMatrix(int height) { - Preconditions.checkElementIndex(height, matrices.length, "Matrix height level must be [0, " + matrices.length - + "), received " + height + "."); + Preconditions.checkElementIndex(height, matrices.length, String.format(ILLEGAL_MATRIX_HEIGHT, matrices.length, height)); return matrices[height]; } /** - * Gets all {@link CollisionMatrix}'s in this {@code Region}. + * Gets all of the {@link CollisionMatrix} objects in this {@code Region}. * * @return The collision matrices of this region. */ @@ -388,7 +388,7 @@ public final class Region { */ private void checkPosition(Position position) { Preconditions.checkArgument(coordinates.equals(RegionCoordinates.fromPosition(position)), - "Position is not included in this Region."); + "Position is not included in this Region."); } /** @@ -411,10 +411,10 @@ public final class Region { if (update == EntityUpdateType.REMOVE) { removedObjects.get(height).add(message); } else { // TODO should this really be possible? - removedObjects.get(height).remove(operation.inverse()); + removedObjects.get(height).remove(inverse); } } else if (update == EntityUpdateType.REMOVE && !type.isTransient()) { - updates.remove(operation.inverse()); + updates.remove(inverse); } updates.add(message); diff --git a/game/src/main/org/apollo/game/model/area/collision/CollisionManager.java b/game/src/main/org/apollo/game/model/area/collision/CollisionManager.java index acb11e1c..4b54b36a 100644 --- a/game/src/main/org/apollo/game/model/area/collision/CollisionManager.java +++ b/game/src/main/org/apollo/game/model/area/collision/CollisionManager.java @@ -9,15 +9,23 @@ import org.apollo.game.model.area.collision.CollisionUpdate.DirectionFlag; import org.apollo.game.model.entity.EntityType; import org.apollo.game.model.entity.obj.GameObject; -import java.util.*; +import java.util.Collection; +import java.util.Comparator; +import java.util.Map; +import java.util.SortedSet; +import java.util.TreeSet; + +import static org.apollo.game.model.entity.EntityType.DYNAMIC_OBJECT; +import static org.apollo.game.model.entity.EntityType.STATIC_OBJECT; /** - * Manages applying {@link CollisionUpdate}s to the respective {@link CollisionMatrix} instances, and keeping + * Manages applying {@link CollisionUpdate}s to the appropriate {@link CollisionMatrix}, and keeping * a record of collision state (i.e., which tiles are bridged). */ public final class CollisionManager { + /** - * A comparator which sorts {@link Position}s by their X coordinate, then Y, then height. + * A comparator that sorts {@link Position}s by their X coordinate, then Y, then height. */ private static final Comparator POSITION_COMPARATOR = Comparator.comparingInt(Position::getX).thenComparingInt(Position::getY).thenComparingInt(Position::getHeight); @@ -25,71 +33,66 @@ public final class CollisionManager { /** * A {@code SortedSet} of positions where the tile is part of a bridged structure. */ - private final SortedSet bridgeTiles = new TreeSet<>(POSITION_COMPARATOR); + private final SortedSet bridges = new TreeSet<>(POSITION_COMPARATOR); /** * A {@code SortedSet} of positions where the tile is completely blocked. */ - private final SortedSet blockedTiles = new TreeSet<>(POSITION_COMPARATOR); + private final SortedSet blocked = new TreeSet<>(POSITION_COMPARATOR); /** - * The {@link RegionRepository} containing {@link Region}s, used to lookup {@link CollisionMatrix}'s. + * The {@link RegionRepository} used to lookup {@link CollisionMatrix} objects. */ - private final RegionRepository regionRepository; + private final RegionRepository regions; /** - * Creates a new {@code CollisionManager}. + * Creates the {@code CollisionManager}. * - * @param regionRepository The {@link RegionRepository} to lookup {@link Region} and {@link CollisionMatrix} instances - * from. + * @param regions The {@link RegionRepository} to retrieve {@link CollisionMatrix} objects from. */ - public CollisionManager(RegionRepository regionRepository) { - this.regionRepository = regionRepository; + public CollisionManager(RegionRepository regions) { + this.regions = regions; } /** - * Apples the first initial {@link CollisionUpdate} to the {@link CollisionMatrix}es for all objects and tiles loaded from - * the cache. + * Applies the initial {@link CollisionUpdate} to the {@link CollisionMatrix}es for all objects and tiles loaded + * from the cache. * - * @param rebuilding A flag indicating whether {@link CollisionMatrix}es are being rebuilt, or built for the first time. + * @param rebuilding A flag indicating whether or not {@link CollisionMatrix}es are being rebuilt. */ public void build(boolean rebuilding) { if (rebuilding) { - for (Region region : regionRepository.getRegions()) { + for (Region region : regions.getRegions()) { for (CollisionMatrix matrix : region.getMatrices()) { matrix.reset(); } } } - CollisionUpdate.Builder tileUpdateBuilder = new CollisionUpdate.Builder(); - tileUpdateBuilder.type(CollisionUpdateType.ADDING); + CollisionUpdate.Builder builder = new CollisionUpdate.Builder(); + builder.type(CollisionUpdateType.ADDING); - for (Position tile : blockedTiles) { + for (Position tile : blocked) { int x = tile.getX(), y = tile.getY(); int height = tile.getHeight(); - if (bridgeTiles.contains(new Position(x, y, 1))) { + if (bridges.contains(new Position(x, y, 1))) { height--; } if (height >= 0) { - tileUpdateBuilder.tile(new Position(x, y, height), false, Direction.NESW); + builder.tile(new Position(x, y, height), false, Direction.NESW); } } - CollisionUpdate tileUpdate = tileUpdateBuilder.build(); - apply(tileUpdate); + apply(builder.build()); - for (Region region : regionRepository.getRegions()) { - CollisionUpdate.Builder regionObjectsUpdateBuilder = new CollisionUpdate.Builder(); - regionObjectsUpdateBuilder.type(CollisionUpdateType.ADDING); + for (Region region : regions.getRegions()) { + CollisionUpdate.Builder objects = new CollisionUpdate.Builder(); + objects.type(CollisionUpdateType.ADDING); - region.getEntities(EntityType.STATIC_OBJECT, EntityType.DYNAMIC_OBJECT) - .forEach(entity -> regionObjectsUpdateBuilder.object((GameObject) entity)); - - CollisionUpdate regionObjectsUpdate = regionObjectsUpdateBuilder.build(); - apply(regionObjectsUpdate); + region.getEntities(STATIC_OBJECT, DYNAMIC_OBJECT).forEach(entity -> objects.object((GameObject) entity)); + apply(objects.build()); } } @@ -102,37 +105,37 @@ public final class CollisionManager { Region prev = null; CollisionUpdateType type = update.getType(); - Map> flags = update.getFlags().asMap(); + Map> map = update.getFlags().asMap(); - for (Map.Entry> flag : flags.entrySet()) { - Position position = flag.getKey(); - Collection directionFlags = flag.getValue(); + for (Map.Entry> entry : map.entrySet()) { + Position position = entry.getKey(); int height = position.getHeight(); - if (bridgeTiles.contains(new Position(position.getX(), position.getY(), 1))) { + if (bridges.contains(new Position(position.getX(), position.getY(), 1))) { if (--height < 0) { continue; } } if (prev == null || !prev.contains(position)) { - prev = regionRepository.fromPosition(position); + prev = regions.fromPosition(position); } - int localX = position.getX() % Region.SIZE, localY = position.getY() % Region.SIZE; + int localX = position.getX() % Region.SIZE; + int localY = position.getY() % Region.SIZE; CollisionMatrix matrix = prev.getMatrix(height); CollisionFlag[] mobs = CollisionFlag.mobs(); CollisionFlag[] projectiles = CollisionFlag.projectiles(); - for (DirectionFlag directionFlag : directionFlags) { - Direction direction = directionFlag.getDirection(); + for (DirectionFlag flag : entry.getValue()) { + Direction direction = flag.getDirection(); if (direction == Direction.NONE) { continue; } int orientation = direction.toInteger(); - if (directionFlag.isImpenetrable()) { + if (flag.isImpenetrable()) { flag(type, matrix, localX, localY, projectiles[orientation]); } @@ -189,7 +192,10 @@ public final class CollisionManager { float derror = Math.abs(dy / (float) dx); float error = 0; - int y = y0, currX, currY, lastX = 0, lastY = 0; + int y = y0; + int currX, currY; + + int lastX = 0, lastY = 0; boolean first = true; for (int x = x0; x <= x1; x++) { @@ -213,9 +219,9 @@ public final class CollisionManager { } Direction direction = Direction.fromDeltas(currX - lastX, currY - lastY); - Position lastPosition = new Position(lastX, lastY, start.getHeight()); + Position last = new Position(lastX, lastY, start.getHeight()); - if (!traversable(lastPosition, EntityType.PROJECTILE, direction)) { + if (!traversable(last, EntityType.PROJECTILE, direction)) { return false; } @@ -233,7 +239,7 @@ public final class CollisionManager { * @param matrix The matrix the update is being applied to. * @param localX The local X position of the tile the flag represents. * @param localY The local Y position of the tile the flag represents. - * @param flag The flag to update. + * @param flag The {@link CollisionFlag} to update. */ private void flag(CollisionUpdateType type, CollisionMatrix matrix, int localX, int localY, CollisionFlag flag) { if (type == CollisionUpdateType.ADDING) { @@ -248,8 +254,8 @@ public final class CollisionManager { * * @param position The {@link Position} of the tile. */ - public void markBlocked(Position position) { - blockedTiles.add(position); + public void block(Position position) { + blocked.add(position); } /** @@ -258,7 +264,7 @@ public final class CollisionManager { * @param position The {@link Position} of the tile. */ public void markBridged(Position position) { - bridgeTiles.add(position); + bridges.add(position); } /** @@ -272,7 +278,7 @@ public final class CollisionManager { */ public boolean traversable(Position position, EntityType type, Direction direction) { Position next = position.step(1, direction); - Region region = regionRepository.fromPosition(next); + Region region = regions.fromPosition(next); if (!region.traversable(next, type, direction)) { return false; @@ -283,7 +289,7 @@ public final class CollisionManager { next = position.step(1, component); if (!region.contains(next)) { - region = regionRepository.fromPosition(next); + region = regions.fromPosition(next); } if (!region.traversable(next, type, component)) { diff --git a/game/src/main/org/apollo/game/model/area/collision/CollisionUpdate.java b/game/src/main/org/apollo/game/model/area/collision/CollisionUpdate.java index 21225f00..cd8fb73a 100644 --- a/game/src/main/org/apollo/game/model/area/collision/CollisionUpdate.java +++ b/game/src/main/org/apollo/game/model/area/collision/CollisionUpdate.java @@ -1,29 +1,40 @@ package org.apollo.game.model.area.collision; import com.google.common.base.Preconditions; -import com.google.common.collect.*; +import com.google.common.collect.Multimap; +import com.google.common.collect.MultimapBuilder; +import com.google.common.collect.Multimaps; import org.apollo.cache.def.ObjectDefinition; import org.apollo.game.model.Direction; import org.apollo.game.model.Position; import org.apollo.game.model.entity.obj.GameObject; -import org.apollo.game.model.entity.obj.ObjectType; +import java.util.Objects; import java.util.stream.Stream; +import static org.apollo.game.model.entity.obj.ObjectType.*; + /** * A global update to the collision matrices. */ public final class CollisionUpdate { + /** * The type of this update. */ private final CollisionUpdateType type; /** - * A mapping of {@link Position}s to a set of their {@link DirectionFlag}s. + * A mapping of {@link Position}s to their {@link DirectionFlag}s. */ private final Multimap flags; + /** + * Creates the CollisionUpdate. + * + * @param type The {@link CollisionUpdateType} of this update. + * @param flags A {@link Multimap} of {@link Position}s to their {@link DirectionFlag}s. + */ public CollisionUpdate(CollisionUpdateType type, Multimap flags) { this.type = type; this.flags = flags; @@ -48,10 +59,11 @@ public final class CollisionUpdate { } /** - * A directional flag in a {@code CollisionUpdate}. Consists of a {@code direction} and a flag indicating whether + * A directional flag in a {@code CollisionUpdate}. Consists of a {@code direction} and a flag indicating whether * that tile is impenetrable as well as untraversable. */ public static final class DirectionFlag { + private final boolean impenetrable; private final Direction direction; @@ -61,22 +73,19 @@ public final class CollisionUpdate { } @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; + public boolean equals(Object obj) { + if (obj instanceof DirectionFlag) { + DirectionFlag other = (DirectionFlag) obj; + return impenetrable == other.impenetrable && direction == other.direction; + } - DirectionFlag that = (DirectionFlag) o; - - if (impenetrable != that.impenetrable) return false; - return direction == that.direction; + return false; } @Override public int hashCode() { - int result = (impenetrable ? 1 : 0); - result = 31 * result + direction.hashCode(); - return result; + return Objects.hash(impenetrable, direction); } /** @@ -96,9 +105,14 @@ public final class CollisionUpdate { public Direction getDirection() { return direction; } + } - public static class Builder { + /** + * A builder for CollisionUpdates. + */ + public static final class Builder { + private final Multimap flags; private CollisionUpdateType type; @@ -107,7 +121,7 @@ public final class CollisionUpdate { } /** - * Set the type of the {@link CollisionUpdate}. Can only be called once. + * Set the type of the {@link CollisionUpdate}. Can only be called once. * * @param type The type of collision update to use. */ @@ -159,7 +173,6 @@ public final class CollisionUpdate { */ public void largeCornerWall(Position position, boolean impenetrable, Direction orientation) { Direction[] directions = Direction.diagonalComponents(orientation); - tile(position, impenetrable, directions); for (Direction direction : directions) { @@ -192,22 +205,21 @@ public final class CollisionUpdate { length = definition.getWidth(); } - if (type == ObjectType.FLOOR_DECORATION.getValue()) { + if (type == FLOOR_DECORATION.getValue()) { if (definition.isInteractive() && definition.isSolid()) { tile(new Position(x, y, height), impenetrable, Direction.NESW); } - } else if (type >= ObjectType.DIAGONAL_WALL.getValue() && type < ObjectType.FLOOR_DECORATION.getValue()) { + } else if (type >= DIAGONAL_WALL.getValue() && type < FLOOR_DECORATION.getValue()) { for (int dx = 0; dx < width; dx++) { for (int dy = 0; dy < length; dy++) { tile(new Position(x + dx, y + dy, height), impenetrable, Direction.NESW); } } - } else if (type == ObjectType.LENGTHWISE_WALL.getValue()) { + } else if (type == LENGTHWISE_WALL.getValue()) { wall(position, impenetrable, Direction.WNES[orientation]); - } else if (type == ObjectType.TRIANGULAR_CORNER.getValue() - || type == ObjectType.RECTANGULAR_CORNER.getValue()) { + } else if (type == TRIANGULAR_CORNER.getValue() || type == RECTANGULAR_CORNER.getValue()) { wall(position, impenetrable, Direction.WNES_DIAGONAL[orientation]); - } else if (type == ObjectType.WALL_CORNER.getValue()) { + } else if (type == WALL_CORNER.getValue()) { largeCornerWall(position, impenetrable, Direction.WNES_DIAGONAL[orientation]); } } @@ -221,6 +233,7 @@ public final class CollisionUpdate { Preconditions.checkNotNull(type, "update type must not be null"); return new CollisionUpdate(type, Multimaps.unmodifiableMultimap(flags)); } + } /** @@ -232,17 +245,16 @@ public final class CollisionUpdate { * @return {@code true} iff the tile(s) the object is on should be blocked. */ private static boolean unwalkable(ObjectDefinition definition, int type) { - boolean isSolidFloorDecoration = type == ObjectType.FLOOR_DECORATION.getValue() && definition.isInteractive(); + boolean isSolidFloorDecoration = type == FLOOR_DECORATION.getValue() && definition.isInteractive(); + boolean isRoof = type > DIAGONAL_INTERACTABLE.getValue() && type < FLOOR_DECORATION.getValue(); - boolean isWall = type >= ObjectType.LENGTHWISE_WALL.getValue() - && type <= ObjectType.RECTANGULAR_CORNER.getValue() || type == ObjectType.DIAGONAL_WALL.getValue(); + boolean isWall = type >= LENGTHWISE_WALL.getValue() && type <= RECTANGULAR_CORNER.getValue() || + type == DIAGONAL_WALL.getValue(); - boolean isRoof = type > ObjectType.DIAGONAL_INTERACTABLE.getValue() - && type < ObjectType.FLOOR_DECORATION.getValue(); - - boolean isSolidInteractable = (type == ObjectType.DIAGONAL_INTERACTABLE.getValue() - || type == ObjectType.INTERACTABLE.getValue()) && definition.isSolid(); + boolean isSolidInteractable = (type == DIAGONAL_INTERACTABLE.getValue() || + type == INTERACTABLE.getValue()) && definition.isSolid(); return isWall || isRoof || isSolidInteractable || isSolidFloorDecoration; } + } diff --git a/game/src/main/org/apollo/game/model/area/collision/GameObjectCollisionUpdateListener.java b/game/src/main/org/apollo/game/model/area/collision/CollisionUpdateListener.java similarity index 56% rename from game/src/main/org/apollo/game/model/area/collision/GameObjectCollisionUpdateListener.java rename to game/src/main/org/apollo/game/model/area/collision/CollisionUpdateListener.java index 89c536cd..50a2cadc 100644 --- a/game/src/main/org/apollo/game/model/area/collision/GameObjectCollisionUpdateListener.java +++ b/game/src/main/org/apollo/game/model/area/collision/CollisionUpdateListener.java @@ -8,21 +8,21 @@ import org.apollo.game.model.entity.EntityType; import org.apollo.game.model.entity.obj.GameObject; /** - * A {@link RegionListener} which listens on object addition / removal events and applies - * the respective {@link CollisionUpdate}. + * A {@link RegionListener} that listens to object addition/removals and applies the respective {@link CollisionUpdate}. */ -public final class GameObjectCollisionUpdateListener implements RegionListener { +public final class CollisionUpdateListener implements RegionListener { + /** * The {@link CollisionManager} to apply updates to. */ private CollisionManager collisionManager; /** - * Create a new {@link GameObjectCollisionUpdateListener}. + * Create a new {@link CollisionUpdateListener}. * * @param collisionManager The {@link CollisionManager} that collision updates will be applied to. */ - public GameObjectCollisionUpdateListener(CollisionManager collisionManager) { + public CollisionUpdateListener(CollisionManager collisionManager) { this.collisionManager = collisionManager; } @@ -34,16 +34,14 @@ public final class GameObjectCollisionUpdateListener implements RegionListener { return; } - CollisionUpdate.Builder objectUpdateBuilder = new CollisionUpdate.Builder(); + CollisionUpdate.Builder builder = new CollisionUpdate.Builder(); if (type == EntityUpdateType.ADD) { - objectUpdateBuilder.type(CollisionUpdateType.ADDING); + builder.type(CollisionUpdateType.ADDING); } else { - objectUpdateBuilder.type(CollisionUpdateType.REMOVING); + builder.type(CollisionUpdateType.REMOVING); } - objectUpdateBuilder.object((GameObject) entity); - - CollisionUpdate objectUpdate = objectUpdateBuilder.build(); - collisionManager.apply(objectUpdate); + builder.object((GameObject) entity); + collisionManager.apply(builder.build()); } } diff --git a/game/src/main/org/apollo/game/model/area/collision/CollisionUpdateType.java b/game/src/main/org/apollo/game/model/area/collision/CollisionUpdateType.java index a7de9934..400566ab 100644 --- a/game/src/main/org/apollo/game/model/area/collision/CollisionUpdateType.java +++ b/game/src/main/org/apollo/game/model/area/collision/CollisionUpdateType.java @@ -4,6 +4,7 @@ package org.apollo.game.model.area.collision; * An enum which represents the type of a {@link CollisionUpdate}. */ public enum CollisionUpdateType { + /** * Indicates that a {@link CollisionUpdate} will be adding new flags to collision matrices. */ @@ -13,4 +14,5 @@ public enum CollisionUpdateType { * Indicates that a {@link CollisionUpdate} will be clearing existing flags from collision matrices. */ REMOVING + } diff --git a/game/src/main/org/apollo/game/model/entity/EntityType.java b/game/src/main/org/apollo/game/model/entity/EntityType.java index 1a4985c7..3628ccd7 100644 --- a/game/src/main/org/apollo/game/model/entity/EntityType.java +++ b/game/src/main/org/apollo/game/model/entity/EntityType.java @@ -47,11 +47,10 @@ public enum EntityType { } /** - * Returns whether or not this EntityType should be short-lived (i.e. not added to its {@link Region}s - * local objects). + * Returns whether or not this EntityType should be short-lived (i.e. not added to its regions local objects). * * @return {@code true} if this EntityType is short-lived. - */ + */ public boolean isTransient() { return this == PROJECTILE; }