diff options
author | Tec <daniel112092@gmail.com> | 2020-05-14 09:27:22 +0200 |
---|---|---|
committer | Tec <daniel112092@gmail.com> | 2020-05-14 09:27:22 +0200 |
commit | 3ccc193c26828c3e4ad2016a1b8a08e6793164ff (patch) | |
tree | 3e16060a732df907f401cb988ec61ba7a5d58e70 | |
parent | b63dcaf7b782d033742b28bf88f9587f6a7ab611 (diff) | |
download | GT5-Unofficial-3ccc193c26828c3e4ad2016a1b8a08e6793164ff.tar.gz GT5-Unofficial-3ccc193c26828c3e4ad2016a1b8a08e6793164ff.tar.bz2 GT5-Unofficial-3ccc193c26828c3e4ad2016a1b8a08e6793164ff.zip |
Cleanup, add debug print, fix hatch adder optional
-rw-r--r-- | src/main/java/com/github/technus/tectech/mechanics/structure/IStructureDefinition.java | 24 | ||||
-rw-r--r-- | src/main/java/com/github/technus/tectech/mechanics/structure/StructureUtility.java | 39 |
2 files changed, 59 insertions, 4 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 542d13a7cd..c8488d5cea 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 @@ -1,9 +1,14 @@ package com.github.technus.tectech.mechanics.structure; +import com.github.technus.tectech.TecTech; import com.github.technus.tectech.mechanics.alignment.enumerable.ExtendedFacing; import net.minecraft.item.ItemStack; import net.minecraft.world.World; +import java.util.Arrays; + +import static com.github.technus.tectech.loader.TecTechConfig.DEBUG_MODE; + public interface IStructureDefinition<T> { /** * Used internally @@ -73,9 +78,17 @@ public interface IStructureDefinition<T> { if (world.blockExists(xyz[0], xyz[1], xyz[2])) { if(!element.check(object, world, xyz[0], xyz[1], xyz[2])){ + if(DEBUG_MODE){ + TecTech.LOGGER.info("Multi ["+basePositionX+", "+basePositionY+", "+basePositionZ+"] failed @ "+ + Arrays.toString(xyz)+" "+Arrays.toString(abc)); + } return false; } - }else { + } else { + if(DEBUG_MODE){ + TecTech.LOGGER.info("Multi ["+basePositionX+", "+basePositionY+", "+basePositionZ+"] !blockExists @ "+ + Arrays.toString(xyz)+" "+Arrays.toString(abc)); + } return false; } abc[0]+=1; @@ -95,8 +108,17 @@ public interface IStructureDefinition<T> { if (world.blockExists(xyz[0], xyz[1], xyz[2])) { if(!element.check(object, world, xyz[0], xyz[1], xyz[2])){ + if(DEBUG_MODE){ + TecTech.LOGGER.info("Multi ["+basePositionX+", "+basePositionY+", "+basePositionZ+"] failed @ "+ + Arrays.toString(xyz)+" "+Arrays.toString(abc)); + } return false; } + } else { + if(DEBUG_MODE){ + TecTech.LOGGER.info("Multi ["+basePositionX+", "+basePositionY+", "+basePositionZ+"] !blockExists @ "+ + Arrays.toString(xyz)+" "+Arrays.toString(abc)); + } } abc[0]+=1; } diff --git a/src/main/java/com/github/technus/tectech/mechanics/structure/StructureUtility.java b/src/main/java/com/github/technus/tectech/mechanics/structure/StructureUtility.java index 00bdcdb1ad..1c2fd18326 100644 --- a/src/main/java/com/github/technus/tectech/mechanics/structure/StructureUtility.java +++ b/src/main/java/com/github/technus/tectech/mechanics/structure/StructureUtility.java @@ -112,6 +112,8 @@ public class StructureUtility { return ERROR; } + //region hint only + /** * Check always returns: true. * @@ -180,6 +182,10 @@ public class StructureUtility { }; } + //endregion + + //region block + /** * Does not allow Block duplicates (with different meta) */ @@ -354,6 +360,10 @@ public class StructureUtility { return ofBlock(block, meta, block, meta); } + //endregion + + //region adders + public static <T> IStructureElement<T> ofBlockAdder(IBlockAdder<T> iBlockAdder, Block defaultBlock, int defaultMeta) { if (iBlockAdder == null || defaultBlock == null) { throw new IllegalArgumentException(); @@ -436,9 +446,9 @@ public class StructureUtility { @Override public boolean check(T t, World world, int x, int y, int z) { TileEntity tileEntity = world.getTileEntity(x, y, z); - return tileEntity instanceof IGregTechTileEntity && - (iHatchAdder.apply(t, (IGregTechTileEntity) tileEntity, (short) textureIndex) || - (world.getBlock(x, y, z) == placeCasing && world.getBlockMetadata(x, y, z) == placeCasingMeta)); + return (tileEntity instanceof IGregTechTileEntity && + iHatchAdder.apply(t, (IGregTechTileEntity) tileEntity, (short) textureIndex)) || + (world.getBlock(x, y, z) == placeCasing && world.getBlockMetadata(x, y, z) == placeCasingMeta); } @Override @@ -455,6 +465,10 @@ public class StructureUtility { }; } + //endregion + + //region side effects + public static <B extends IStructureElement<T>, T> IStructureElement<T> onElementPass(Consumer<T> onCheckPass, B element) { return new IStructureElement<T>() { @Override @@ -501,6 +515,7 @@ public class StructureUtility { }; } + //endregion /** * Take care while chaining, as it will try to call every structure element until it returns true. @@ -536,6 +551,8 @@ public class StructureUtility { return ofChain(elementChain.toArray(new IStructureElement[0])); } + //region defer + public static <T> IStructureElementDeferred<T> defer(Supplier<IStructureElement<T>> to) { if (to == null) { throw new IllegalArgumentException(); @@ -840,10 +857,26 @@ public class StructureUtility { return defer(keyExtractorCheck, keyExtractor, array.toArray(new IStructureElement[0])); } + //endregion + + /** + * Used internally, to generate skips for structure definitions + * @param a + * @param b + * @param c + * @param <T> + * @return + */ public static <T> IStructureNavigate<T> step(int a, int b, int c) { return step(new Vec3Impl(a, b, c)); } + /** + * Used internally, to generate skips for structure definitions + * @param step + * @param <T> + * @return + */ @SuppressWarnings("unchecked") public static <T> IStructureNavigate<T> step(Vec3Impl step) { if (step == null || step.get0() < 0 || step.get1() < 0 || step.get2() < 0) { |