package org.mafagafogigante.dungeon.game; import org.mafagafogigante.dungeon.logging.DungeonLogger; import org.mafagafogigante.dungeon.util.Utils; import java.io.Serializable; import java.util.Arrays; import java.util.HashSet; import java.util.Set; /** * BlockedEntrances class that defines a allows blocking the entrances of a Locations. */ public class BlockedEntrances implements Serializable { private Set<Direction> setOfBlockedEntrances = new HashSet<>(); public BlockedEntrances() { } /** * Copy constructor. * * @param source the object to be copied. */ public BlockedEntrances(BlockedEntrances source) { setOfBlockedEntrances = new HashSet<>(source.setOfBlockedEntrances); } /** * Blocks a given direction. Logs a warning if the direction was already blocked. */ public void block(Direction direction) { if (isBlocked(direction)) { DungeonLogger.warning("Tried to block an already blocked direction."); } else { setOfBlockedEntrances.add(direction); } } public boolean isBlocked(Direction direction) { return setOfBlockedEntrances.contains(direction); } @Override public String toString() { if (setOfBlockedEntrances.isEmpty()) { return "None"; } else { return Utils.enumerate(Arrays.asList(setOfBlockedEntrances.toArray())); } } }