aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/xmod
diff options
context:
space:
mode:
authorSphyix <masifede2@gmail.com>2021-11-21 20:04:48 +0100
committerSphyix <masifede2@gmail.com>2021-11-21 20:04:48 +0100
commit656c9cdc5aa57c66ebe3e4cf5f09e0a8466531d7 (patch)
tree57d085f14aa566fd63641a8eda31913a0ef684b2 /src/Java/gtPlusPlus/xmod
parent967b5a7f23404c8c57bc3bf329affb29d9918048 (diff)
downloadGT5-Unofficial-656c9cdc5aa57c66ebe3e4cf5f09e0a8466531d7.tar.gz
GT5-Unofficial-656c9cdc5aa57c66ebe3e4cf5f09e0a8466531d7.tar.bz2
GT5-Unofficial-656c9cdc5aa57c66ebe3e4cf5f09e0a8466531d7.zip
tool replacement & extraction, accept hatches in front aswell
Diffstat (limited to 'src/Java/gtPlusPlus/xmod')
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntityTreeFarm.java56
1 files changed, 33 insertions, 23 deletions
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntityTreeFarm.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntityTreeFarm.java
index 77487d795e..2b8d1d9e03 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntityTreeFarm.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntityTreeFarm.java
@@ -31,7 +31,10 @@ import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.Gregtech
import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock;
import gtPlusPlus.xmod.gregtech.common.helpers.TreeFarmHelper;
import gtPlusPlus.xmod.gregtech.common.helpers.treefarm.TreeGenerator;
+import gtPlusPlus.xmod.gregtech.common.items.MetaGeneratedGregtechItems;
+import gtPlusPlus.xmod.gregtech.common.items.MetaGeneratedGregtechTools;
import net.minecraft.init.Blocks;
+import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import static com.gtnewhorizon.structurelib.structure.StructureUtility.*;
@@ -245,9 +248,9 @@ if (executor == null || mTreeData == null) {
if (STRUCTURE_DEFINITION == null) {
STRUCTURE_DEFINITION = StructureDefinition.<GregtechMetaTileEntityTreeFarm>builder()
.addShape(mName, transpose(new String[][]{
- {"XXX", "CCC", "CCC"},
- {"X~X", "C-C", "CCC"},
- {"XXX", "CCC", "CCC"},
+ {"CCC", "CCC", "CCC"},
+ {"C~C", "C-C", "CCC"},
+ {"CCC", "CCC", "CCC"},
}))
.addElement(
'C',
@@ -263,12 +266,6 @@ if (executor == null || mTreeData == null) {
)
)
)
- .addElement(
- 'X',
- ofBlock(
- ModBlocks.blockCasings2Misc, 15
- )
- )
.build();
}
return STRUCTURE_DEFINITION;
@@ -298,25 +295,37 @@ if (executor == null || mTreeData == null) {
return false;
}
+ public boolean replaceTool() {
+ ItemStack invItem = this.mInventory[1];
+ if (invItem == null) {
+ for (GT_MetaTileEntity_Hatch_InputBus mInputBus : this.mInputBusses) {
+ for (int i = 0; i < mInputBus.mInventory.length ; i++) {
+ ItemStack uStack = mInputBus.mInventory[i];
+ if(uStack != null && TreeFarmHelper.isCorrectPart(uStack)) {
+ this.setGUIItemStack(uStack);
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+ }
+
@Override
public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {
super.onPostTick(aBaseMetaTileEntity, aTick);
- if (this.mInventory[1] != null && aTick % 200 == 0 && this.getBaseMetaTileEntity().isServerSide()) {
- ItemStack invItem = this.mInventory[1];
+ replaceTool();
+ ItemStack invItem = this.mInventory[1];
+ if (invItem != null && aTick % 200 == 0 && this.getBaseMetaTileEntity().isServerSide()) {
if (isCorrectMachinePart(invItem)) {
- boolean didElectricDamage = false;
+ boolean didElectricDamage = true;
if (EU.isElectricItem(invItem)) {
- if (EU.hasCharge(invItem)) {
- long tVoltage = getMaxInputVoltage();
- byte tTier = (byte) Math.max(1, GT_Utility.getTier(tVoltage));
- if (EU.getCharge(invItem) >= tVoltage) {
- if (EU.discharge(invItem, (int) tVoltage, -1)) {
- didElectricDamage = true;
- }
- else {
- this.getBaseMetaTileEntity().disableWorking();
- }
- }
+ if (!GT_ModHandler.damageOrDechargeItem(invItem, 2, 0, null)) {
+ didElectricDamage = false;
+ addOutput(invItem);
+ this.mInventory[1] = null;
+ if(!replaceTool())
+ this.getBaseMetaTileEntity().disableWorking();
}
}
@@ -328,6 +337,7 @@ if (executor == null || mTreeData == null) {
}
else if (aDmg >= aDmgMax) {
this.mInventory[1] = null;
+ replaceTool();
}
}
}