From 20608166fc0ba88ab3d0830f761bcb33d82951bb Mon Sep 17 00:00:00 2001 From: Michael Pollind Date: Mon, 4 May 2020 19:20:30 -0700 Subject: [PATCH] added precondition checks --- .../main/java/org/terasology/math/Diamond3iIterable.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/engine/src/main/java/org/terasology/math/Diamond3iIterable.java b/engine/src/main/java/org/terasology/math/Diamond3iIterable.java index b50f4608ecf..cc2341c0e6b 100644 --- a/engine/src/main/java/org/terasology/math/Diamond3iIterable.java +++ b/engine/src/main/java/org/terasology/math/Diamond3iIterable.java @@ -16,12 +16,16 @@ package org.terasology.math; +import com.google.common.base.Preconditions; import org.joml.Vector3i; import org.joml.Vector3ic; import java.util.Iterator; /** + * Diamond3Iterable iterates in a diamond shape hull where the manhattan distance is the same for that level. + * for each group of iterations the manhattan distance decreases. inner and outer radiuses can be set where + * the shape can be an hull with distance 1 to a full solid. */ public final class Diamond3iIterable implements Iterable { @@ -30,11 +34,16 @@ public final class Diamond3iIterable implements Iterable { private int startDistance = 0; private Diamond3iIterable(Vector3ic origin, int maxDistance) { + Preconditions.checkArgument(maxDistance >= 0, "maxDistance must be > 0"); this.origin.set(origin); this.endDistance = maxDistance; } private Diamond3iIterable(Vector3ic origin, int startDistance, int maxDistance) { + Preconditions.checkArgument(startDistance < maxDistance, "startDistance must be < maxDistance"); + Preconditions.checkArgument(maxDistance >= 0, "maxDistance must be >= 0"); + Preconditions.checkArgument(startDistance >= 0, "maxDistance must be >= 0"); + this.origin.set(origin); this.endDistance = maxDistance; this.startDistance = startDistance;