diff options
Diffstat (limited to 'src/main/java/gregtech/api/metatileentity/implementations')
3 files changed, 49 insertions, 8 deletions
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_CubicMultiBlockBase.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_CubicMultiBlockBase.java index e9e2e8f575..3e3433e52c 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_CubicMultiBlockBase.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_CubicMultiBlockBase.java @@ -8,15 +8,14 @@ import static gregtech.api.enums.GT_HatchElement.*; import com.google.common.collect.ImmutableList; import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable; -import com.gtnewhorizon.structurelib.structure.IItemSource; import com.gtnewhorizon.structurelib.structure.IStructureDefinition; import com.gtnewhorizon.structurelib.structure.IStructureElement; +import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment; import com.gtnewhorizon.structurelib.structure.StructureDefinition; import gregtech.api.interfaces.IHatchElement; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.util.GT_StructureUtility; import java.util.List; -import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; /** @@ -90,9 +89,9 @@ public abstract class GT_MetaTileEntity_CubicMultiBlockBase<T extends GT_MetaTil } @Override - public int survivalConstruct(ItemStack stackSize, int elementBudget, IItemSource source, EntityPlayerMP actor) { + public int survivalConstruct(ItemStack stackSize, int elementBudget, ISurvivalBuildEnvironment env) { if (mMachine) return -1; - return survivialBuildPiece(STRUCTURE_PIECE_MAIN, stackSize, 1, 1, 0, elementBudget, source, actor, false, true); + return survivialBuildPiece(STRUCTURE_PIECE_MAIN, stackSize, 1, 1, 0, elementBudget, env, false, true); } @Override diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_EnhancedMultiBlockBase.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_EnhancedMultiBlockBase.java index 76787fcd32..1f4b6dccc3 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_EnhancedMultiBlockBase.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_EnhancedMultiBlockBase.java @@ -10,6 +10,7 @@ import com.gtnewhorizon.structurelib.alignment.enumerable.Flip; import com.gtnewhorizon.structurelib.alignment.enumerable.Rotation; import com.gtnewhorizon.structurelib.structure.IItemSource; import com.gtnewhorizon.structurelib.structure.IStructureDefinition; +import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment; import cpw.mods.fml.common.network.NetworkRegistry; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; @@ -205,6 +206,26 @@ public abstract class GT_MetaTileEntity_EnhancedMultiBlockBase<T extends GT_Meta IItemSource source, EntityPlayerMP actor, boolean check) { + return survivialBuildPiece( + piece, + trigger, + horizontalOffset, + verticalOffset, + depthOffset, + elementsBudget, + ISurvivalBuildEnvironment.create(source, actor), + check); + } + + protected final int survivialBuildPiece( + String piece, + ItemStack trigger, + int horizontalOffset, + int verticalOffset, + int depthOffset, + int elementsBudget, + ISurvivalBuildEnvironment env, + boolean check) { final IGregTechTileEntity tTile = getBaseMetaTileEntity(); return getCastedStructureDefinition() .survivalBuild( @@ -220,8 +241,7 @@ public abstract class GT_MetaTileEntity_EnhancedMultiBlockBase<T extends GT_Meta verticalOffset, depthOffset, elementsBudget, - source, - actor, + env, check); } @@ -236,8 +256,30 @@ public abstract class GT_MetaTileEntity_EnhancedMultiBlockBase<T extends GT_Meta EntityPlayerMP actor, boolean check, boolean checkIfPlaced) { + return survivialBuildPiece( + piece, + trigger, + horizontalOffset, + verticalOffset, + depthOffset, + elementsBudget, + ISurvivalBuildEnvironment.create(source, actor), + check, + checkIfPlaced); + } + + protected final int survivialBuildPiece( + String piece, + ItemStack trigger, + int horizontalOffset, + int verticalOffset, + int depthOffset, + int elementsBudget, + ISurvivalBuildEnvironment env, + boolean check, + boolean checkIfPlaced) { int built = survivialBuildPiece( - piece, trigger, horizontalOffset, verticalOffset, depthOffset, elementsBudget, source, actor, check); + piece, trigger, horizontalOffset, verticalOffset, depthOffset, elementsBudget, env, check); if (checkIfPlaced && built > 0) checkStructure(true, getBaseMetaTileEntity()); return built; } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch.java index a92849a6d2..94721d2096 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch.java @@ -72,9 +72,9 @@ public abstract class GT_MetaTileEntity_Hatch extends GT_MetaTileEntity_BasicTan byte aColorIndex, boolean aActive, boolean aRedstone) { - int textureIndex = actualTexture | (mTexturePage << 7); // Shift seven since one page is 128 textures! int texturePointer = (byte) (actualTexture & 0x7F); // just to be sure, from my testing the 8th bit cannot be set clientside + int textureIndex = texturePointer | (mTexturePage << 7); // Shift seven since one page is 128 textures! try { if (aSide != aFacing) { if (textureIndex > 0) |