aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com>2020-06-23 12:36:11 +0200
committerbartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com>2020-06-23 12:36:11 +0200
commit1959a09715b671073379f63e34c2df391635278d (patch)
tree0b1e99f0946cde5e686973f03003239ab0e8ba48
parent2c0bbbb109aa0cc00193ad294e0aa794137bf9e1 (diff)
downloadGT5-Unofficial-1959a09715b671073379f63e34c2df391635278d.tar.gz
GT5-Unofficial-1959a09715b671073379f63e34c2df391635278d.tar.bz2
GT5-Unofficial-1959a09715b671073379f63e34c2df391635278d.zip
Added Support for MetaBlocks
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/structure/Structure.java20
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/structure/StructureUtility.java33
2 files changed, 32 insertions, 21 deletions
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 e7769b3e04..7195563d19 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
@@ -103,32 +103,34 @@ public class Structure {
}
break;
default://check for block (countable)
+ Block worldblock = world.getBlock(xyz[0], xyz[1], xyz[2]);
+ int dmg = worldblock.getDamageValue(world, xyz[0], xyz[1], xyz[2]);
if ((pointer = block - '0') >= 0) {
//countable air -> net.minecraft.block.BlockAir
- if (world.getBlock(xyz[0], xyz[1], xyz[2]) != blockType[pointer]) {
+ if (worldblock != blockType[pointer]) {
if (DEBUG_MODE) {
- TecTech.LOGGER.info("Struct-block-error " + xyz[0] + ' ' + xyz[1] + ' ' + xyz[2] + " / " + abc[0] + ' ' + abc[1] + ' ' + abc[2] + " / " + world.getBlock(xyz[0], xyz[1], xyz[2]).getUnlocalizedName() + ' ' + blockType[pointer].getUnlocalizedName());
+ TecTech.LOGGER.info("Struct-block-error " + xyz[0] + ' ' + xyz[1] + ' ' + xyz[2] + " / " + abc[0] + ' ' + abc[1] + ' ' + abc[2] + " / " + worldblock.getUnlocalizedName() + ' ' + blockType[pointer].getUnlocalizedName());
}
return false;
}
- if (world.getBlockMetadata(xyz[0], xyz[1], xyz[2]) != blockMeta[pointer]) {
+ if (dmg != blockMeta[pointer]) {
if (DEBUG_MODE) {
- TecTech.LOGGER.info("Struct-meta-id-error " + xyz[0] + ' ' + xyz[1] + ' ' + xyz[2] + " / " + abc[0] + ' ' + abc[1] + ' ' + abc[2] + " / " + world.getBlockMetadata(xyz[0], xyz[1], xyz[2]) + ' ' + blockMeta[pointer]);
+ TecTech.LOGGER.info("Struct-meta-id-error " + xyz[0] + ' ' + xyz[1] + ' ' + xyz[2] + " / " + abc[0] + ' ' + abc[1] + ' ' + abc[2] + " / " + dmg + ' ' + blockMeta[pointer]);
}
return false;
}
} else if ((pointer = block - ' ') >= 0) {
igt = aBaseMetaTileEntity.getIGregTechTileEntity(xyz[0], xyz[1], xyz[2]);
if (igt == null || !addingMethods[pointer].apply(metaTile,igt, casingTextures[pointer])) {
- if (world.getBlock(xyz[0], xyz[1], xyz[2]) != blockTypeFallback[pointer]) {
+ if (worldblock != blockTypeFallback[pointer]) {
if (DEBUG_MODE) {
- TecTech.LOGGER.info("Fallback-struct-block-error " + xyz[0] + ' ' + xyz[1] + ' ' + xyz[2] + " / " + abc[0] + ' ' + abc[1] + ' ' + abc[2] + " / " + world.getBlock(xyz[0], xyz[1], xyz[2]).getUnlocalizedName() + ' ' + (blockTypeFallback[pointer] == null ? "null" : blockTypeFallback[pointer].getUnlocalizedName()));
+ TecTech.LOGGER.info("Fallback-struct-block-error " + xyz[0] + ' ' + xyz[1] + ' ' + xyz[2] + " / " + abc[0] + ' ' + abc[1] + ' ' + abc[2] + " / " + worldblock.getUnlocalizedName() + ' ' + (blockTypeFallback[pointer] == null ? "null" : blockTypeFallback[pointer].getUnlocalizedName()));
}
return false;
}
- if (world.getBlockMetadata(xyz[0], xyz[1], xyz[2]) != blockMetaFallback[pointer]) {
+ if (dmg != blockMetaFallback[pointer]) {
if (DEBUG_MODE) {
- TecTech.LOGGER.info("Fallback-Struct-meta-id-error " + xyz[0] + ' ' + xyz[1] + ' ' + xyz[2] + " / " + abc[0] + ' ' + abc[1] + ' ' + abc[2] + " / " + world.getBlockMetadata(xyz[0], xyz[1], xyz[2]) + ' ' + blockMetaFallback[pointer]);
+ TecTech.LOGGER.info("Fallback-Struct-meta-id-error " + xyz[0] + ' ' + xyz[1] + ' ' + xyz[2] + " / " + abc[0] + ' ' + abc[1] + ' ' + abc[2] + " / " + dmg + ' ' + blockMetaFallback[pointer]);
}
return false;
}
@@ -212,7 +214,7 @@ public class Structure {
break;
default: //check for block
if ((pointer = block - '0') >= 0) {
- if (world.getBlock(xyz[0], xyz[1], xyz[2]) != blockType[pointer] || world.getBlockMetadata(xyz[0], xyz[1], xyz[2]) != blockMeta[pointer]) {
+ if (world.getBlock(xyz[0], xyz[1], xyz[2]) != blockType[pointer] || blockType[pointer].getDamageValue(world,xyz[0], xyz[1], xyz[2]) != blockMeta[pointer]) {
TecTech.proxy.hint_particle(world, xyz[0], xyz[1], xyz[2], blockType[pointer], blockMeta[pointer]);
}
} else if ((pointer = block - ' ') >= 0) {
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 1c2fd18326..04e79ea33b 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
@@ -196,7 +196,8 @@ public class StructureUtility {
return new IStructureElementNoPlacement<T>() {
@Override
public boolean check(T t, World world, int x, int y, int z) {
- return blocsMap.getOrDefault(world.getBlock(x, y, z), -1) == world.getBlockMetadata(x, y, z);
+ Block worldBlock = world.getBlock(x, y, z);
+ return blocsMap.getOrDefault(worldBlock, -1) == worldBlock.getDamageValue(world, x, y, z);
}
@Override
@@ -222,7 +223,8 @@ public class StructureUtility {
return new IStructureElementNoPlacement<T>() {
@Override
public boolean check(T t, World world, int x, int y, int z) {
- return blocsMap.getOrDefault(world.getBlock(x, y, z), Collections.emptySet()).contains(world.getBlockMetadata(x, y, z));
+ Block worldBlock = world.getBlock(x, y, z);
+ return blocsMap.getOrDefault(worldBlock, Collections.emptySet()).contains(worldBlock.getDamageValue(world, x, y, z));
}
@Override
@@ -240,7 +242,8 @@ public class StructureUtility {
return new IStructureElementNoPlacement<T>() {
@Override
public boolean check(T t, World world, int x, int y, int z) {
- return block == world.getBlock(x, y, z) && meta == world.getBlockMetadata(x, y, z);
+ Block worldBlock = world.getBlock(x, y, z);
+ return block == worldBlock && meta == worldBlock.getDamageValue(world, x, y, z);
}
@Override
@@ -262,7 +265,8 @@ public class StructureUtility {
return new IStructureElementNoPlacement<T>() {
@Override
public boolean check(T t, World world, int x, int y, int z) {
- return iBlockAdder.apply(t, world.getBlock(x, y, z), world.getBlockMetadata(x, y, z));
+ Block worldBlock = world.getBlock(x, y, z);
+ return iBlockAdder.apply(t, worldBlock, worldBlock.getDamageValue(world,x,y,z));
}
@Override
@@ -283,7 +287,8 @@ public class StructureUtility {
return new IStructureElement<T>() {
@Override
public boolean check(T t, World world, int x, int y, int z) {
- return blocsMap.getOrDefault(world.getBlock(x, y, z), -1) == world.getBlockMetadata(x, y, z);
+ Block worldBlock = world.getBlock(x, y, z);
+ return blocsMap.getOrDefault(worldBlock, -1) == worldBlock.getDamageValue(world,x,y,z);
}
@Override
@@ -315,7 +320,8 @@ public class StructureUtility {
return new IStructureElement<T>() {
@Override
public boolean check(T t, World world, int x, int y, int z) {
- return blocsMap.getOrDefault(world.getBlock(x, y, z), Collections.emptySet()).contains(world.getBlockMetadata(x, y, z));
+ Block worldBlock = world.getBlock(x, y, z);
+ return blocsMap.getOrDefault(worldBlock, Collections.emptySet()).contains(worldBlock.getDamageValue(world, x, y, z));
}
@Override
@@ -339,7 +345,8 @@ public class StructureUtility {
return new IStructureElement<T>() {
@Override
public boolean check(T t, World world, int x, int y, int z) {
- return block == world.getBlock(x, y, z) && meta == world.getBlockMetadata(x, y, z);
+ Block worldBlock = world.getBlock(x, y, z);
+ return block == worldBlock && meta == worldBlock.getDamageValue(world, x, y, z);
}
@Override
@@ -371,7 +378,8 @@ public class StructureUtility {
return new IStructureElement<T>() {
@Override
public boolean check(T t, World world, int x, int y, int z) {
- return iBlockAdder.apply(t, world.getBlock(x, y, z), world.getBlockMetadata(x, y, z));
+ Block worldBlock = world.getBlock(x, y, z);
+ return iBlockAdder.apply(t, worldBlock, worldBlock.getDamageValue(world, x, y, z));
}
@Override
@@ -446,9 +454,10 @@ public class StructureUtility {
@Override
public boolean check(T t, World world, int x, int y, int z) {
TileEntity tileEntity = world.getTileEntity(x, y, z);
+ Block worldBlock = world.getBlock(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);
+ (worldBlock == placeCasing && worldBlock.getDamageValue(world, x, y, z) == placeCasingMeta);
}
@Override
@@ -989,7 +998,7 @@ public class StructureUtility {
if (set == null) {
set = new TreeSet<>();
}
- set.add(world.getBlockMetadata(x, y, z));
+ set.add(block.getDamageValue(world, x, y, z));
return set;
});
}
@@ -1060,7 +1069,7 @@ public class StructureUtility {
if (tileEntity == null) {
Block block = w.getBlock(x, y, z);
if (block != null && block != Blocks.air) {
- builder.append(map.get(block.getUnlocalizedName() + '\0' + world.getBlockMetadata(x, y, z)));
+ builder.append(map.get(block.getUnlocalizedName() + '\0' + block.getDamageValue(world, x, y, z)));
} else {
builder.append(' ');
}
@@ -1095,7 +1104,7 @@ public class StructureUtility {
if (tileEntity == null) {
Block block = w.getBlock(x, y, z);
if (block != null && block != Blocks.air) {
- builder.append(map.get(block.getUnlocalizedName() + '\0' + world.getBlockMetadata(x, y, z)));
+ builder.append(map.get(block.getUnlocalizedName() + '\0' + block.getDamageValue(world,x, y, z)));
} else {
builder.append(' ');
}