diff options
Diffstat (limited to 'src/main/java')
3 files changed, 46 insertions, 42 deletions
diff --git a/src/main/java/com/github/technus/tectech/mechanics/structure/IStructureDefinition.java b/src/main/java/com/github/technus/tectech/mechanics/structure/IStructureDefinition.java index f70422fe72..a32c1f8840 100644 --- a/src/main/java/com/github/technus/tectech/mechanics/structure/IStructureDefinition.java +++ b/src/main/java/com/github/technus/tectech/mechanics/structure/IStructureDefinition.java @@ -65,11 +65,10 @@ public interface IStructureDefinition<T> { xyz[1] += basePositionY; xyz[2] += basePositionZ; - if(element instanceof IStructureNavigate) { - IStructureNavigate<T> navigate=(IStructureNavigate<T>)element; - abc[0] = (navigate.resetA() ? basePositionA : abc[0]) + navigate.getStepA(); - abc[1] = (navigate.resetB() ? basePositionA : abc[1]) + navigate.getStepB(); - abc[2] = (navigate.resetC() ? basePositionA : abc[2]) + navigate.getStepC(); + if(element.isNavigating()) { + abc[0] = (element.resetA() ? basePositionA : abc[0]) + element.getStepA(); + abc[1] = (element.resetB() ? basePositionA : abc[1]) + element.getStepB(); + abc[2] = (element.resetC() ? basePositionA : abc[2]) + element.getStepC(); }else { if (world.blockExists(xyz[0], xyz[1], xyz[2])) { if(!element.check(object, world, xyz[0], xyz[1], xyz[2])){ @@ -88,11 +87,10 @@ public interface IStructureDefinition<T> { xyz[1] += basePositionY; xyz[2] += basePositionZ; - if(element instanceof IStructureNavigate) { - IStructureNavigate<T> navigate=(IStructureNavigate<T>)element; - abc[0] = (navigate.resetA() ? basePositionA : abc[0]) + navigate.getStepA(); - abc[1] = (navigate.resetB() ? basePositionA : abc[1]) + navigate.getStepB(); - abc[2] = (navigate.resetC() ? basePositionA : abc[2]) + navigate.getStepC(); + if(element.isNavigating()) { + abc[0] = (element.resetA() ? basePositionA : abc[0]) + element.getStepA(); + abc[1] = (element.resetB() ? basePositionA : abc[1]) + element.getStepB(); + abc[2] = (element.resetC() ? basePositionA : abc[2]) + element.getStepC(); }else { if (world.blockExists(xyz[0], xyz[1], xyz[2])) { if(!element.check(object, world, xyz[0], xyz[1], xyz[2])){ @@ -111,11 +109,10 @@ public interface IStructureDefinition<T> { xyz[1] += basePositionY; xyz[2] += basePositionZ; - if(element instanceof IStructureNavigate) { - IStructureNavigate<T> navigate=(IStructureNavigate<T>)element; - abc[0] = (navigate.resetA() ? basePositionA : abc[0]) + navigate.getStepA(); - abc[1] = (navigate.resetB() ? basePositionA : abc[1]) + navigate.getStepB(); - abc[2] = (navigate.resetC() ? basePositionA : abc[2]) + navigate.getStepC(); + if(element.isNavigating()) { + abc[0] = (element.resetA() ? basePositionA : abc[0]) + element.getStepA(); + abc[1] = (element.resetB() ? basePositionA : abc[1]) + element.getStepB(); + abc[2] = (element.resetC() ? basePositionA : abc[2]) + element.getStepC(); }else { if (world.blockExists(xyz[0], xyz[1], xyz[2])) { element.spawnHint(object, world, xyz[0], xyz[1], xyz[2]); @@ -130,11 +127,10 @@ public interface IStructureDefinition<T> { xyz[1] += basePositionY; xyz[2] += basePositionZ; - if(element instanceof IStructureNavigate) { - IStructureNavigate<T> navigate=(IStructureNavigate<T>)element; - abc[0] = (navigate.resetA() ? basePositionA : abc[0]) + navigate.getStepA(); - abc[1] = (navigate.resetB() ? basePositionA : abc[1]) + navigate.getStepB(); - abc[2] = (navigate.resetC() ? basePositionA : abc[2]) + navigate.getStepC(); + if(element.isNavigating()) { + abc[0] = (element.resetA() ? basePositionA : abc[0]) + element.getStepA(); + abc[1] = (element.resetB() ? basePositionA : abc[1]) + element.getStepB(); + abc[2] = (element.resetC() ? basePositionA : abc[2]) + element.getStepC(); }else { if (world.blockExists(xyz[0], xyz[1], xyz[2])) { element.placeBlock(object, world, xyz[0], xyz[1], xyz[2]); diff --git a/src/main/java/com/github/technus/tectech/mechanics/structure/IStructureElement.java b/src/main/java/com/github/technus/tectech/mechanics/structure/IStructureElement.java index 2ac5c19538..f9510910ed 100644 --- a/src/main/java/com/github/technus/tectech/mechanics/structure/IStructureElement.java +++ b/src/main/java/com/github/technus/tectech/mechanics/structure/IStructureElement.java @@ -15,4 +15,32 @@ public interface IStructureElement<T> { default boolean placeBlock(T t,World world,int x,int y,int z){ return false; } + + default int getStepA(){ + return 1; + } + + default int getStepB(){ + return 0; + } + + default int getStepC(){ + return 0; + } + + default boolean resetA(){ + return false; + } + + default boolean resetB(){ + return false; + } + + default boolean resetC(){ + return false; + } + + default boolean isNavigating(){ + return false; + } } diff --git a/src/main/java/com/github/technus/tectech/mechanics/structure/IStructureNavigate.java b/src/main/java/com/github/technus/tectech/mechanics/structure/IStructureNavigate.java index 6382f130ee..4628c710af 100644 --- a/src/main/java/com/github/technus/tectech/mechanics/structure/IStructureNavigate.java +++ b/src/main/java/com/github/technus/tectech/mechanics/structure/IStructureNavigate.java @@ -21,27 +21,7 @@ interface IStructureNavigate<T> extends IStructureElement<T> { return true; } - default int getStepA(){ - return 1; - } - - default int getStepB(){ - return 0; - } - - default int getStepC(){ - return 0; - } - - default boolean resetA(){ - return false; - } - - default boolean resetB(){ - return false; - } - - default boolean resetC(){ - return false; + default boolean isNavigating(){ + return true; } } |
