Resolves issue #155, resolves issue #154, resolves issue #107

This commit is contained in:
atomicint
2016-02-03 18:15:37 -05:00
parent a551f0b22c
commit 86ed50da12
2 changed files with 4 additions and 4 deletions
@@ -2,11 +2,11 @@ package org.apollo.game.model.area;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream; import java.util.stream.Stream;
@@ -76,7 +76,7 @@ public final class Region {
/** /**
* The Map of Positions to Entities in that Position. * The Map of Positions to Entities in that Position.
*/ */
private final Map<Position, Set<Entity>> entities = new HashMap<>(); private final Map<Position, Set<Entity>> entities = new ConcurrentHashMap<>();
/** /**
* A List of RegionListeners registered to this Region. * A List of RegionListeners registered to this Region.
@@ -119,7 +119,7 @@ public final class GameService extends Service {
* *
* @param player The player. * @param player The player.
*/ */
public void finalizePlayerRegistration(Player player) { public synchronized void finalizePlayerRegistration(Player player) {
world.register(player); world.register(player);
Region region = world.getRegionRepository().fromPosition(player.getPosition()); Region region = world.getRegionRepository().fromPosition(player.getPosition());
region.addEntity(player); region.addEntity(player);
@@ -150,7 +150,7 @@ public final class GameService extends Service {
/** /**
* Called every pulse. * Called every pulse.
*/ */
public void pulse() { public synchronized void pulse() {
finalizeRegistrations(); finalizeRegistrations();
finalizeUnregistrations(); finalizeUnregistrations();