aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com
diff options
context:
space:
mode:
authorTec <daniel112092@gmail.com>2020-04-28 21:47:13 +0200
committerTec <daniel112092@gmail.com>2020-04-28 21:47:13 +0200
commitc6615bd442b41170c6ab46d948d832bc063f2b4a (patch)
tree4438881131418c70dc37bb2cd6d235ef6e7df464 /src/main/java/com
parentd58f2055aab235a3f3ead64ef86d1dc39396cae5 (diff)
downloadGT5-Unofficial-c6615bd442b41170c6ab46d948d832bc063f2b4a.tar.gz
GT5-Unofficial-c6615bd442b41170c6ab46d948d832bc063f2b4a.tar.bz2
GT5-Unofficial-c6615bd442b41170c6ab46d948d832bc063f2b4a.zip
Add optional hatch adders
Diffstat (limited to 'src/main/java/com')
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/structure/StructureUtility.java55
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_collider.java14
2 files changed, 62 insertions, 7 deletions
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 1658620d2e..467140cb2c 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
@@ -390,6 +390,34 @@ public class StructureUtility {
};
}
+ public static <T> IStructureElement<T> ofHatchAdderOptional(IHatchAdder<T> iHatchAdder, int textureIndex, int dots, Block placeCasing,int placeCasingMeta){
+ int meta=dots-1;
+ if(iHatchAdder==null){
+ throw new IllegalArgumentException();
+ }
+ return new IStructureElement<T>() {
+ @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));
+ }
+
+ @Override
+ public boolean spawnHint(T t, World world, int x, int y, int z, ItemStack trigger) {
+ TecTech.proxy.hint_particle(world,x,y,z,sHintCasingsTT,meta);
+ return true;
+ }
+
+ @Override
+ public boolean placeBlock(T t, World world, int x, int y, int z, ItemStack trigger) {
+ world.setBlock(x,y,z,placeCasing,placeCasingMeta,2);
+ return true;
+ }
+ };
+ }
+
public static <T> IStructureElement<T> ofHatchAdder(IHatchAdder<T> iHatchAdder, int textureIndex, Block hintBlock, int hintMeta){
if(iHatchAdder==null ||hintBlock==null){
throw new IllegalArgumentException();
@@ -434,6 +462,33 @@ public class StructureUtility {
};
}
+ public static <T> IStructureElement<T> ofHatchAdderOptional(IHatchAdder<T> iHatchAdder, int textureIndex, Block hintBlock, int hintMeta, Block placeCasing,int placeCasingMeta){
+ if(iHatchAdder==null ||hintBlock==null){
+ throw new IllegalArgumentException();
+ }
+ return new IStructureElement<T>() {
+ @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));
+ }
+
+ @Override
+ public boolean spawnHint(T t, World world, int x, int y, int z, ItemStack trigger) {
+ TecTech.proxy.hint_particle(world,x,y,z,hintBlock,hintMeta);
+ return true;
+ }
+
+ @Override
+ public boolean placeBlock(T t, World world, int x, int y, int z, ItemStack trigger) {
+ world.setBlock(x,y,z,placeCasing,placeCasingMeta,2);
+ return true;
+ }
+ };
+ }
+
public static <T> IStructureElement<T> onElementPass(Consumer<T> onCheckPass, IStructureElement<T> element){
return new IStructureElement<T>() {
@Override
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_collider.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_collider.java
index 924353cd29..2782e7924f 100644
--- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_collider.java
+++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_collider.java
@@ -325,20 +325,20 @@ public class GT_MetaTileEntity_EM_collider extends GT_MetaTileEntity_MultiblockB
})
.addElement('0', ofBlock(sBlockCasingsTT,4))
.addElement('1', ofBlock(sBlockCasingsTT,7))
- .addElement('2', defer(t->(int)t.eTier,(t,item)->(item.stackSize%2)+1,
+ .addElement('2', defer(t->(int)t.eTier,(t,item)->(item.stackSize&1)+1,
error(),ofBlock(sBlockCasingsTT,4),ofBlock(sBlockCasingsTT,5)))
.addElement('3', ofBlock(QuantumGlassBlock.INSTANCE,0))
- .addElement('4', defer(t->(int)t.eTier,(t,item)->(item.stackSize%2)+1,
+ .addElement('4', defer(t->(int)t.eTier,(t,item)->(item.stackSize&1)+1,
error(),ofBlock(sBlockCasingsTT,4),ofBlock(sBlockCasingsTT,6)))
- .addElement('5', defer(t->(int)t.eTier,(t,item)->(item.stackSize%2)+1,
+ .addElement('5', defer(t->(int)t.eTier,(t,item)->(item.stackSize&1)+1,
error(),ofBlock(sBlockCasingsTT,8),ofBlock(sBlockCasingsTT,9)))
- .addElement('&', ofHatchAdder(GT_MetaTileEntity_EM_collider::addClassicToMachineList,
+ .addElement('&', ofHatchAdderOptional(GT_MetaTileEntity_EM_collider::addClassicToMachineList,
textureOffset,1,sBlockCasingsTT,0))
- .addElement('!', ofHatchAdder(GT_MetaTileEntity_EM_collider::addElementalInputToMachineList,
+ .addElement('!', ofHatchAdderOptional(GT_MetaTileEntity_EM_collider::addElementalInputToMachineList,
textureOffset + 4,2,sBlockCasingsTT,4))
- .addElement('$', ofHatchAdder(GT_MetaTileEntity_EM_collider::addElementalOutputToMachineList,
+ .addElement('$', ofHatchAdderOptional(GT_MetaTileEntity_EM_collider::addElementalOutputToMachineList,
textureOffset + 4,3,sBlockCasingsTT,4))
- .addElement('#', ofHatchAdder(GT_MetaTileEntity_EM_collider::addElementalMufflerToMachineList,
+ .addElement('#', ofHatchAdderOptional(GT_MetaTileEntity_EM_collider::addElementalMufflerToMachineList,
textureOffset + 4,4,sBlockCasingsTT,4))
.build();
private static final String[] description = new String[]{