20 package net.sf.gridarta.model.validation.checks;
22 import java.awt.Point;
23 import java.util.HashMap;
36 import org.jetbrains.annotations.NotNull;
42 public class DuplicateMonsterOnSquareChecker<G
extends GameObject<G, A, R>, A extends
MapArchObject<A>, R extends
Archetype<G, A, R>> extends
AbstractValidator<G, A, R> implements
MapValidator<G, A, R> {
62 final Map<Integer, Map<Integer, G>> monsters =
new HashMap<>();
63 final Map<Integer, Map<Integer, Boolean>> warning =
new HashMap<>();
65 for (
final G gameObject : mapSquare) {
68 final int x = gameObjectPart.getMapX();
69 final int y = gameObjectPart.getMapY();
70 final Map<Integer, G> tmp = monsters.compute(x, (x2, tmp2) -> tmp2 ==
null ?
new HashMap<>() : tmp2);
71 final G prevMonster = tmp.get(y);
72 if (prevMonster ==
null) {
73 tmp.put(y, gameObject);
74 }
else if (warning.compute(x, (x2, tmp2) -> tmp2 ==
null ?
new HashMap<>() : tmp2).put(y, Boolean.TRUE) ==
null) {