diff options
| author | Tec <daniel112092@gmail.com> | 2020-04-26 06:32:52 +0200 |
|---|---|---|
| committer | Tec <daniel112092@gmail.com> | 2020-04-26 06:32:52 +0200 |
| commit | 5314ad9da0ea1e776c1576ae13a6bb9ba5d5c019 (patch) | |
| tree | 13854cf460628ab4b347cf215616149a7f71634b /src/main/java/com | |
| parent | f740e2e7665c3a2aecca1ca912755353e875ad4c (diff) | |
| download | GT5-Unofficial-5314ad9da0ea1e776c1576ae13a6bb9ba5d5c019.tar.gz GT5-Unofficial-5314ad9da0ea1e776c1576ae13a6bb9ba5d5c019.tar.bz2 GT5-Unofficial-5314ad9da0ea1e776c1576ae13a6bb9ba5d5c019.zip | |
Drop element provider by reworking T into calls properly
Diffstat (limited to 'src/main/java/com')
35 files changed, 74 insertions, 126 deletions
diff --git a/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaDequantizer.java b/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaDequantizer.java index df5054ab4a..0ab4893000 100644 --- a/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaDequantizer.java +++ b/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaDequantizer.java @@ -11,7 +11,7 @@ import com.github.technus.tectech.thing.casing.TT_Container_Casings; import com.github.technus.tectech.mechanics.constructable.IConstructable; import com.github.technus.tectech.thing.metaTileEntity.multi.GT_MetaTileEntity_EM_quantizer; import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; -import com.github.technus.tectech.mechanics.structure.IHatchAdder; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.IHatchAdder; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; diff --git a/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaQuantizer.java b/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaQuantizer.java index d48c345e8e..c2ae9f3fdb 100644 --- a/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaQuantizer.java +++ b/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaQuantizer.java @@ -11,7 +11,7 @@ import com.github.technus.tectech.thing.casing.TT_Container_Casings; import com.github.technus.tectech.mechanics.constructable.IConstructable; import com.github.technus.tectech.thing.metaTileEntity.multi.GT_MetaTileEntity_EM_quantizer; import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; -import com.github.technus.tectech.mechanics.structure.IHatchAdder; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.IHatchAdder; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; diff --git a/src/main/java/com/github/technus/tectech/mechanics/structure/IBlockAdder.java b/src/main/java/com/github/technus/tectech/mechanics/structure/IBlockAdder.java index 3dda99fed2..85d6f1be3f 100644 --- a/src/main/java/com/github/technus/tectech/mechanics/structure/IBlockAdder.java +++ b/src/main/java/com/github/technus/tectech/mechanics/structure/IBlockAdder.java @@ -3,12 +3,12 @@ package com.github.technus.tectech.mechanics.structure; import net.minecraft.block.Block; -public interface IBlockAdder { +public interface IBlockAdder<T> { /** * Callback on block added * @param block block attempted to add * @param meta meta of block attempted to add * @return is structure still valid */ - boolean apply(Block block, Integer meta); + boolean apply(T t,Block block, Integer meta); } diff --git a/src/main/java/com/github/technus/tectech/mechanics/structure/IHatchAdder.java b/src/main/java/com/github/technus/tectech/mechanics/structure/IHatchAdder.java index 10d4c398ec..6e5aca5be3 100644 --- a/src/main/java/com/github/technus/tectech/mechanics/structure/IHatchAdder.java +++ b/src/main/java/com/github/technus/tectech/mechanics/structure/IHatchAdder.java @@ -3,12 +3,12 @@ package com.github.technus.tectech.mechanics.structure; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -public interface IHatchAdder { +public interface IHatchAdder<T> { /** * Callback to add hatch * @param iGregTechTileEntity hatch * @param aShort requested texture index, or null if not... * @return managed to add hatch (structure still valid) */ - boolean apply(IGregTechTileEntity iGregTechTileEntity, Short aShort); + boolean apply(T t,IGregTechTileEntity iGregTechTileEntity, Short aShort); } 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 656151dc86..1152713d5e 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 @@ -9,7 +9,7 @@ public interface IStructureDefinition<T> { * @param name same name as for other methods here * @return the array of elements to process */ - IStructureElementProvider<T>[] getElementsFor(String name); + IStructureElement<T>[] getElementsFor(String name); default boolean check(T object,String piece, World world, ExtendedFacing extendedFacing, int basePositionX, int basePositionY, int basePositionZ, @@ -41,7 +41,7 @@ public interface IStructureDefinition<T> { basePositionA, basePositionB, basePositionC,hintsOnly,null); } - static <T> boolean iterate(T object, IStructureElementProvider<T>[] elements, World world, ExtendedFacing extendedFacing, + static <T> boolean iterate(T object, IStructureElement<T>[] elements, World world, ExtendedFacing extendedFacing, int basePositionX, int basePositionY, int basePositionZ, int basePositionA, int basePositionB, int basePositionC, boolean hintsOnly, Boolean checkBlocksIfNotNullForceCheckAllIfTrue){ @@ -59,8 +59,7 @@ public interface IStructureDefinition<T> { if(checkBlocksIfNotNullForceCheckAllIfTrue!=null){ if(checkBlocksIfNotNullForceCheckAllIfTrue){ - for (IStructureElementProvider<T> elementProvider : elements) { - IStructureElement<T> element=elementProvider.getStructureElement(object); + for (IStructureElement<T> element : elements) { extendedFacing.getWorldOffset(abc, xyz); xyz[0] += basePositionX; xyz[1] += basePositionY; @@ -79,8 +78,7 @@ public interface IStructureDefinition<T> { abc[2] =(element.resetC()?basePositionA:abc[2])+element.getStepC(); } } else { - for (IStructureElementProvider<T> elementProvider : elements) { - IStructureElement<T> element=elementProvider.getStructureElement(object); + for (IStructureElement<T> element : elements) { extendedFacing.getWorldOffset(abc, xyz); xyz[0] += basePositionX; xyz[1] += basePositionY; @@ -99,8 +97,7 @@ public interface IStructureDefinition<T> { } }else { if(hintsOnly) { - for (IStructureElementProvider<T> elementProvider : elements) { - IStructureElement<T> element=elementProvider.getStructureElement(object); + for (IStructureElement<T> element : elements) { extendedFacing.getWorldOffset(abc, xyz); xyz[0] += basePositionX; xyz[1] += basePositionY; @@ -115,8 +112,7 @@ public interface IStructureDefinition<T> { abc[2] =(element.resetC()?basePositionA:abc[2])+element.getStepC(); } } else { - for (IStructureElementProvider<T> elementProvider : elements) { - IStructureElement<T> element=elementProvider.getStructureElement(object); + for (IStructureElement<T> element : elements) { extendedFacing.getWorldOffset(abc, xyz); xyz[0] += basePositionX; xyz[1] += basePositionY; 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 d33eac4119..78997648ab 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 @@ -5,7 +5,7 @@ import net.minecraft.world.World; /** * Use StructureUtility to instantiate */ -public interface IStructureElement<T> extends IStructureElementProvider<T> { +public interface IStructureElement<T> { boolean check(T t,World world,int x,int y,int z); default boolean spawnHint(T t,World world,int x,int y,int z){ @@ -39,9 +39,4 @@ public interface IStructureElement<T> extends IStructureElementProvider<T> { default boolean resetC(){ return false; } - - @Override - default IStructureElement<T> getStructureElement(T object){ - return this; - } } diff --git a/src/main/java/com/github/technus/tectech/mechanics/structure/IStructureElementProvider.java b/src/main/java/com/github/technus/tectech/mechanics/structure/IStructureElementProvider.java deleted file mode 100644 index b38c2164c3..0000000000 --- a/src/main/java/com/github/technus/tectech/mechanics/structure/IStructureElementProvider.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.github.technus.tectech.mechanics.structure; - -public interface IStructureElementProvider<T> { - IStructureElement<T> getStructureElement(T object); -} diff --git a/src/main/java/com/github/technus/tectech/mechanics/structure/IStructureFallbackProvider.java b/src/main/java/com/github/technus/tectech/mechanics/structure/IStructureFallbackProvider.java deleted file mode 100644 index c0c24eaec4..0000000000 --- a/src/main/java/com/github/technus/tectech/mechanics/structure/IStructureFallbackProvider.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.github.technus.tectech.mechanics.structure; - -import net.minecraft.world.World; - -/** - * Use StructureUtility to instantiate - */ -public interface IStructureFallbackProvider<T> extends IStructureElement<T> { - IStructureElementProvider<T>[] fallbacks(); - - @Override - default boolean check(T t,World world, int x, int y, int z){ - for (IStructureElementProvider<T> fallback : fallbacks()) { - if (fallback.getStructureElement(t).check(t, world, x, y, z)) { - return true; - } - } - return false; - } - - @Override - default boolean spawnHint(T t,World world, int x, int y, int z) { - for (IStructureElementProvider<T> fallback : fallbacks()) { - if (fallback.getStructureElement(t).spawnHint(t, world, x, y, z)) { - return true; - } - } - return false; - } - - @Override - default boolean placeBlock(T t,World world, int x, int y, int z) { - for (IStructureElementProvider<T> fallback : fallbacks()) { - if (fallback.getStructureElement(t).placeBlock(t, world, x, y, z)) { - return true; - } - } - return false; - } -} diff --git a/src/main/java/com/github/technus/tectech/mechanics/structure/ITileAdder.java b/src/main/java/com/github/technus/tectech/mechanics/structure/ITileAdder.java index 9d983e1c4d..bdb619984a 100644 --- a/src/main/java/com/github/technus/tectech/mechanics/structure/ITileAdder.java +++ b/src/main/java/com/github/technus/tectech/mechanics/structure/ITileAdder.java @@ -2,11 +2,11 @@ package com.github.technus.tectech.mechanics.structure; import net.minecraft.tileentity.TileEntity; -public interface ITileAdder { +public interface ITileAdder<T> { /** * Callback to add hatch * @param tileEntity tile * @return managed to add hatch (structure still valid) */ - boolean apply(TileEntity tileEntity); + boolean apply(T t,TileEntity tileEntity); } diff --git a/src/main/java/com/github/technus/tectech/mechanics/structure/Structure.java b/src/main/java/com/github/technus/tectech/mechanics/structure/Structure.java index 77c47ad19e..5da14f58f9 100644 --- a/src/main/java/com/github/technus/tectech/mechanics/structure/Structure.java +++ b/src/main/java/com/github/technus/tectech/mechanics/structure/Structure.java @@ -3,6 +3,7 @@ package com.github.technus.tectech.mechanics.structure; import com.github.technus.tectech.TecTech; import com.github.technus.tectech.mechanics.alignment.enumerable.ExtendedFacing; import com.github.technus.tectech.thing.casing.TT_Container_Casings; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.IHatchAdder; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import net.minecraft.block.Block; import net.minecraft.block.material.Material; diff --git a/src/main/java/com/github/technus/tectech/mechanics/structure/StructureDefinition.java b/src/main/java/com/github/technus/tectech/mechanics/structure/StructureDefinition.java index 79176c3f25..c8262e8473 100644 --- a/src/main/java/com/github/technus/tectech/mechanics/structure/StructureDefinition.java +++ b/src/main/java/com/github/technus/tectech/mechanics/structure/StructureDefinition.java @@ -6,18 +6,18 @@ import static com.github.technus.tectech.loader.TecTechConfig.DEBUG_MODE; import static com.github.technus.tectech.mechanics.structure.StructureUtility.*; public class StructureDefinition<T> implements IStructureDefinition<T> { - private final Map<Character, IStructureElementProvider<T>> elements; + private final Map<Character, IStructureElement<T>> elements; private final Map<String, String> shapes; - private final Map<String, IStructureElementProvider<T>[]> compiled; + private final Map<String, IStructureElement<T>[]> compiled; public static <B> Builder<B> builder() { return new Builder<>(); } private StructureDefinition( - Map<Character, IStructureElementProvider<T>> elements, + Map<Character, IStructureElement<T>> elements, Map<String, String> shapes, - Map<String, IStructureElementProvider<T>[]> compiled) { + Map<String, IStructureElement<T>[]> compiled) { this.elements =elements; this.shapes=shapes; this.compiled =compiled; @@ -28,7 +28,7 @@ public class StructureDefinition<T> implements IStructureDefinition<T> { private static final char B='\uB000'; private static final char C='\uC000'; private static final char D='\uD000'; - private final Map<Character, IStructureElementProvider<T>> elements; + private final Map<Character, IStructureElement<T>> elements; private final Map<String, String> shapes; private Builder() { @@ -36,7 +36,7 @@ public class StructureDefinition<T> implements IStructureDefinition<T> { shapes = new HashMap<>(); } - public Map<Character, IStructureElementProvider<T>> getElements() { + public Map<Character, IStructureElement<T>> getElements() { return elements; } @@ -113,7 +113,7 @@ public class StructureDefinition<T> implements IStructureDefinition<T> { return this; } - public Builder<T> addElement(Character name, IStructureElementProvider<T> structurePiece) { + public Builder<T> addElement(Character name, IStructureElement<T> structurePiece) { elements.put(name, structurePiece); return this; } @@ -127,18 +127,18 @@ public class StructureDefinition<T> implements IStructureDefinition<T> { } @SuppressWarnings("unchecked") - private Map<String, IStructureElementProvider<T>[]> compileMap() { + private Map<String, IStructureElement<T>[]> compileMap() { List<Integer> mising = new ArrayList<>(); shapes.values().stream().map(CharSequence::chars).forEach(intStream -> intStream.forEach(c -> { - IStructureElementProvider<T> iStructureElement = elements.get((char) c); + IStructureElement<T> iStructureElement = elements.get((char) c); if (iStructureElement == null) { mising.add(c); } })); if (mising.isEmpty()) { - Map<String, IStructureElementProvider<T>[]> map = new HashMap<>(); + Map<String, IStructureElement<T>[]> map = new HashMap<>(); shapes.forEach((key, value) -> { - IStructureElementProvider<T>[] compiled = new IStructureElementProvider[value.length()]; + IStructureElement<T>[] compiled = new IStructureElement[value.length()]; for (int i = 0; i < value.length(); i++) { compiled[i] = elements.get(value.charAt(i)); } @@ -152,7 +152,7 @@ public class StructureDefinition<T> implements IStructureDefinition<T> { } } - public Map<Character, IStructureElementProvider<T>> getElements(){ + public Map<Character, IStructureElement<T>> getElements(){ return elements; } @@ -160,12 +160,12 @@ public class StructureDefinition<T> implements IStructureDefinition<T> { return shapes; } - public Map<String, IStructureElementProvider<T>[]> getCompiled() { + public Map<String, IStructureElement<T>[]> getCompiled() { return compiled; } @Override - public IStructureElementProvider<T>[] getElementsFor(String name) { + public IStructureElement<T>[] getElementsFor(String name) { return compiled.get(name); } }
\ No newline at end of file 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 6feb07196d..3d13ca86e2 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 @@ -232,14 +232,14 @@ public class StructureUtility { return ofBlock(block, meta,block,meta); } - public static <T> IStructureElement<T> ofBlockAdder(IBlockAdder iBlockAdder,Block hintBlock,int hintMeta){ + public static <T> IStructureElement<T> ofBlockAdder(IBlockAdder<T> iBlockAdder,Block hintBlock,int hintMeta){ if(iBlockAdder==null ||hintBlock==null){ throw new IllegalArgumentException(); } return new IStructureElement<T>() { @Override public boolean check(T t, World world, int x, int y, int z) { - return iBlockAdder.apply(world.getBlock(x, y, z), world.getBlockMetadata(x, y, z)); + return iBlockAdder.apply(t,world.getBlock(x, y, z), world.getBlockMetadata(x, y, z)); } @Override @@ -256,7 +256,7 @@ public class StructureUtility { }; } - public static <T> IStructureElement<T> ofTileAdder(ITileAdder iTileAdder,Block hintBlock,int hintMeta){ + public static <T> IStructureElement<T> ofTileAdder(ITileAdder<T> iTileAdder,Block hintBlock,int hintMeta){ if(iTileAdder==null ||hintBlock==null){ throw new IllegalArgumentException(); } @@ -264,7 +264,7 @@ 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 && iTileAdder.apply(tileEntity); + return tileEntity instanceof IGregTechTileEntity && iTileAdder.apply(t,tileEntity); } @Override @@ -275,7 +275,7 @@ public class StructureUtility { }; } - public static <T> IStructureElement<T> ofHatchAdder(IHatchAdder iHatchAdder, Short textureIndex,Block hintBlock,int hintMeta){ + public static <T> IStructureElement<T> ofHatchAdder(IHatchAdder<T> iHatchAdder, Short textureIndex, Block hintBlock, int hintMeta){ if(iHatchAdder==null ||hintBlock==null){ throw new IllegalArgumentException(); } @@ -283,7 +283,7 @@ 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((IGregTechTileEntity) tileEntity, textureIndex); + return tileEntity instanceof IGregTechTileEntity && iHatchAdder.apply(t,(IGregTechTileEntity) tileEntity, textureIndex); } @Override @@ -391,20 +391,7 @@ public class StructureUtility { if(elementChain==null || elementChain.length==0){ throw new IllegalArgumentException(); } - for (IStructureElementProvider<T> iStructureElement : elementChain) { - if(iStructureElement==null){ - throw new IllegalArgumentException(); - } - } - return () -> elementChain; - } - - @SafeVarargs - public static <T> IStructureFallbackProvider<T> ofProviderChain(IStructureElementProvider<T>... elementChain){ - if(elementChain==null || elementChain.length==0){ - throw new IllegalArgumentException(); - } - for (IStructureElementProvider<T> iStructureElement : elementChain) { + for (IStructureElement<T> iStructureElement : elementChain) { if(iStructureElement==null){ throw new IllegalArgumentException(); } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_annihilation.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_annihilation.java index 4151dbfec0..36a89650fd 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_annihilation.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_annihilation.java @@ -5,7 +5,7 @@ import com.github.technus.tectech.util.CommonValues; import com.github.technus.tectech.thing.block.QuantumGlassBlock; import com.github.technus.tectech.mechanics.constructable.IConstructable; import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; -import com.github.technus.tectech.mechanics.structure.IHatchAdder; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.IHatchAdder; import com.github.technus.tectech.thing.metaTileEntity.multi.base.render.TT_RenderedExtendedFacingTexture; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_bhg.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_bhg.java index d90f4af8d2..aeb569efff 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_bhg.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_bhg.java @@ -5,7 +5,7 @@ import com.github.technus.tectech.util.CommonValues; import com.github.technus.tectech.thing.block.QuantumGlassBlock; import com.github.technus.tectech.mechanics.constructable.IConstructable; import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; -import com.github.technus.tectech.mechanics.structure.IHatchAdder; +import com.github.technus.tectech.t |
