diff --git a/src/main/java/com/gtnewhorizon/structurelib/alignment/IAlignmentLimits.java b/src/main/java/com/gtnewhorizon/structurelib/alignment/IAlignmentLimits.java index 105b19d0..50eea865 100644 --- a/src/main/java/com/gtnewhorizon/structurelib/alignment/IAlignmentLimits.java +++ b/src/main/java/com/gtnewhorizon/structurelib/alignment/IAlignmentLimits.java @@ -23,9 +23,27 @@ public interface IAlignmentLimits { alignment.getFlip()); } + static IAlignmentLimits allowOnly(ExtendedFacing... allowedFacings) { + Builder builder = Builder.denyAll(); + for (ExtendedFacing allowedFacing : allowedFacings) { + builder.allow(allowedFacing); + } + return builder.build(); + } + + static IAlignmentLimits denyOnly(ExtendedFacing... allowedFacings) { + Builder builder = Builder.allowAll(); + for (ExtendedFacing allowedFacing : allowedFacings) { + builder.deny(allowedFacing); + } + return builder.build(); + } + class Builder { protected final boolean[] validStates = new boolean[STATES_COUNT]; + private Builder() {} + public static Builder allowAll() { Builder b = new Builder(); Arrays.fill(b.validStates, true);