diff options
author | Draknyte1 <Draknyte1@hotmail.com> | 2017-05-07 14:26:09 +1000 |
---|---|---|
committer | Draknyte1 <Draknyte1@hotmail.com> | 2017-05-07 14:26:09 +1000 |
commit | 0c3d983f6bfa7ada1c85a6176f599a3ea4bb8d2a (patch) | |
tree | 6a929349dd18bbf56e1e46d33aa7c93daa81d6de /src | |
parent | 0ce12b7874ff31d6fabc6c6f7402e00f7b0f34c1 (diff) | |
download | GT5-Unofficial-0c3d983f6bfa7ada1c85a6176f599a3ea4bb8d2a.tar.gz GT5-Unofficial-0c3d983f6bfa7ada1c85a6176f599a3ea4bb8d2a.tar.bz2 GT5-Unofficial-0c3d983f6bfa7ada1c85a6176f599a3ea4bb8d2a.zip |
% Tweaked Tree Farmer.
+ Added better support for detecting valid tools.
- Removed old Dev/Debug stuff.
Diffstat (limited to 'src')
5 files changed, 78 insertions, 48 deletions
diff --git a/src/Java/gtPlusPlus/core/slots/SlotBuzzSaw.java b/src/Java/gtPlusPlus/core/slots/SlotBuzzSaw.java index 2434344184..f55a759b8f 100644 --- a/src/Java/gtPlusPlus/core/slots/SlotBuzzSaw.java +++ b/src/Java/gtPlusPlus/core/slots/SlotBuzzSaw.java @@ -27,7 +27,7 @@ public class SlotBuzzSaw extends Slot{ isValid = false; }*/ if (OrePrefixes.craftingTool.contains(itemstack)){ - if (itemstack.getDisplayName().toLowerCase().contains("saw")){ + if (itemstack.getDisplayName().toLowerCase().contains("saw") || itemstack.getDisplayName().toLowerCase().contains("gt.metatool.01.10") || itemstack.getDisplayName().toLowerCase().contains("gt.metatool.01.140")){ if (itemstack.getItemDamage() == 10){ isValid = true; this.currentTool = SAWTOOL.SAW; diff --git a/src/Java/gtPlusPlus/core/util/debug/DEBUG_INIT.java b/src/Java/gtPlusPlus/core/util/debug/DEBUG_INIT.java index 8ac31a038f..b1cd1697f5 100644 --- a/src/Java/gtPlusPlus/core/util/debug/DEBUG_INIT.java +++ b/src/Java/gtPlusPlus/core/util/debug/DEBUG_INIT.java @@ -1,12 +1,6 @@ package gtPlusPlus.core.util.debug; -import cpw.mods.fml.common.registry.GameRegistry; -import gtPlusPlus.core.creative.AddToCreativeTab; -import gtPlusPlus.core.item.ModItems; -import gtPlusPlus.core.item.base.BaseItemWithCharge; -import gtPlusPlus.core.item.general.BedLocator_Base; import gtPlusPlus.core.lib.CORE; -import net.minecraftforge.common.MinecraftForge; public class DEBUG_INIT { @@ -18,12 +12,12 @@ public class DEBUG_INIT { } public static void registerItems(){ - ModItems.itemDebugShapeSpawner = new DEBUG_ITEM_ShapeSpawner("itemDebugShapeSpawner", AddToCreativeTab.tabMisc, 1, 500); + /*ModItems.itemDebugShapeSpawner = new DEBUG_ITEM_ShapeSpawner("itemDebugShapeSpawner", AddToCreativeTab.tabMisc, 1, 500); GameRegistry.registerItem(ModItems.itemDebugShapeSpawner, "itemDebugShapeSpawner"); ModItems.itemBedLocator_Base = new BedLocator_Base("itemBedLocator_Base"); GameRegistry.registerItem(ModItems.itemBedLocator_Base, "itemBedLocator_Base"); ModItems.itemBaseItemWithCharge = new BaseItemWithCharge("itemBaseItemWithCharge", 0, 1000); - GameRegistry.registerItem(ModItems.itemBaseItemWithCharge, "itemBaseItemWithCharge"); + GameRegistry.registerItem(ModItems.itemBaseItemWithCharge, "itemBaseItemWithCharge");*/ } public static void registerTEs(){ @@ -37,7 +31,7 @@ public class DEBUG_INIT { } public static void registerHandlers(){ - MinecraftForge.EVENT_BUS.register(new DEBUG_ScreenOverlay()); + //MinecraftForge.EVENT_BUS.register(new DEBUG_ScreenOverlay()); } } diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/gui/CONTAINER_TreeFarmer.java b/src/Java/gtPlusPlus/xmod/gregtech/api/gui/CONTAINER_TreeFarmer.java index 3c6b0ac2d7..82bc38aa9a 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/api/gui/CONTAINER_TreeFarmer.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/api/gui/CONTAINER_TreeFarmer.java @@ -34,7 +34,7 @@ public class CONTAINER_TreeFarmer extends GT_ContainerMetaTile_Machine { @Override public int getShiftClickSlotCount() { - return 0; + return 1; } @Override @@ -59,6 +59,9 @@ public class CONTAINER_TreeFarmer extends GT_ContainerMetaTile_Machine { for(final ICrafting crafting : (List<ICrafting>)this.crafters) { crafting.sendProgressBarUpdate(this, 100, (int) ((GregtechMetaTileEntityTreeFarm) this.mTileEntity.getMetaTileEntity()).maxEUStore()); crafting.sendProgressBarUpdate(this, 101, (int) ((GregtechMetaTileEntityTreeFarm) this.mTileEntity.getMetaTileEntity()).getStoredInternalPower()); + if (((GregtechMetaTileEntityTreeFarm) this.mTileEntity.getMetaTileEntity()).isCorrectMachinePart(this.mTileEntity.getStackInSlot(1))){ + this.mTileEntity.markDirty(); + } } } diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/TreeFarmHelper.java b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/TreeFarmHelper.java index fcde96042c..9e1cd007c9 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/TreeFarmHelper.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/TreeFarmHelper.java @@ -229,13 +229,14 @@ public class TreeFarmHelper { public static SAWTOOL isCorrectMachinePart(final ItemStack aStack) { if (aStack != null){ + //Utils.LOG_INFO("Found "+aStack.getDisplayName()+" in the GUI slot."); if ((aStack.getItem() instanceof GT_MetaGenerated_Item_02) || (aStack.getItem() instanceof GT_MetaGenerated_Tool)){ if (OrePrefixes.craftingTool.contains(aStack)){ - if (aStack.getDisplayName().toLowerCase().contains("saw")){ + if (aStack.getDisplayName().toLowerCase().contains("saw") || aStack.getDisplayName().toLowerCase().contains("gt.metatool.01.10")){ if (aStack.getItemDamage() == 10){ return SAWTOOL.SAW; } - else if (aStack.getItemDamage() == 140){ + else if (aStack.getItemDamage() == 140 || aStack.getDisplayName().toLowerCase().contains("gt.metatool.01.140")){ return SAWTOOL.BUZZSAW; } else { diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntityTreeFarm.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntityTreeFarm.java index cb91eda3b6..6624c483c3 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntityTreeFarm.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntityTreeFarm.java @@ -36,6 +36,7 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.*; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; import net.minecraft.server.MinecraftServer; import net.minecraft.world.World; import net.minecraftforge.fluids.FluidStack; @@ -92,13 +93,42 @@ public class GregtechMetaTileEntityTreeFarm extends GT_MetaTileEntity_MultiBlock @Override public void saveNBTData(final NBTTagCompound aNBT) { + + Utils.LOG_INFO("Called NBT data save"); aNBT.setLong("mInternalPower", this.mInternalPower); + + //Save [Buzz]Saw + final NBTTagList list = new NBTTagList(); + for(int i = 0;i<2;i++){ + final ItemStack stack = this.mInventory[i]; + if(stack != null){ + final NBTTagCompound data = new NBTTagCompound(); + stack.writeToNBT(data); + data.setInteger("Slot", i); + Utils.LOG_INFO("Saving "+stack.getDisplayName()+" in slot "+i); + list.appendTag(data); + } + } + aNBT.setTag("Items", list); + super.saveNBTData(aNBT); } @Override public void loadNBTData(final NBTTagCompound aNBT) { this.mInternalPower = aNBT.getLong("mInternalPower"); + + //Load [Buzz]Saw + final NBTTagList list = aNBT.getTagList("Items", 10); + for(int i = 0;i<list.tagCount();i++){ + final NBTTagCompound data = list.getCompoundTagAt(i); + final int slot = data.getInteger("Slot"); + if((slot >= 0) && (slot < 2)){ + this.mInventory[slot] = ItemStack.loadItemStackFromNBT(data); + Utils.LOG_INFO("Loading "+this.mInventory[slot].getDisplayName()+" in slot "+i); + } + } + super.loadNBTData(aNBT); } @@ -133,10 +163,10 @@ public class GregtechMetaTileEntityTreeFarm extends GT_MetaTileEntity_MultiBlock else { if (this.energyHatchRetryCount <= 10){ this.energyHatchRetryCount++; - Utils.LOG_MACHINE_INFO("No energy hatches found."); + //Utils.LOG_MACHINE_INFO("No energy hatches found."); } else { - Utils.LOG_MACHINE_INFO("Rechecking for Energy hatches."); + //Utils.LOG_MACHINE_INFO("Rechecking for Energy hatches."); this.energyHatchRetryCount = 0; this.mEnergyHatches = new ArrayList<>(); this.checkMachine(aBaseMetaTileEntity, this.mInventory[1]); @@ -190,18 +220,19 @@ public class GregtechMetaTileEntityTreeFarm extends GT_MetaTileEntity_MultiBlock @Override public Object getClientGUI(final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) { - return new GUI_TreeFarmer(aPlayerInventory, aBaseMetaTileEntity, this.getLocalName(), "TreeFarmer.png"); + return new GUI_TreeFarmer(aPlayerInventory, aBaseMetaTileEntity, this.getLocalName(), "TreeFarmer.png"); } @Override public Object getServerGUI(final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) { - return new CONTAINER_TreeFarmer(aPlayerInventory, aBaseMetaTileEntity); + return new CONTAINER_TreeFarmer(aPlayerInventory, aBaseMetaTileEntity); } @Override public boolean onRightclick(final IGregTechTileEntity aBaseMetaTileEntity, final EntityPlayer aPlayer) { - if (aBaseMetaTileEntity.isClientSide()) { - return true; + if (aBaseMetaTileEntity.isClientSide() || aBaseMetaTileEntity.getWorld().isRemote) { + Utils.LOG_INFO("Doing nothing Client Side."); + return false; } aBaseMetaTileEntity.openGUI(aPlayer); return true; @@ -360,7 +391,7 @@ public class GregtechMetaTileEntityTreeFarm extends GT_MetaTileEntity_MultiBlock GT_MetaTileEntity_Hatch_Maintenance x = this.mMaintenanceHatches.get(0); //Utils.LOG_MACHINE_INFO("Checking status of maint. hatches."); if (x.mCrowbar && x.mHardHammer && x.mScrewdriver && x.mSoftHammer && x.mSolderingTool && x.mWrench){ - Utils.LOG_MACHINE_INFO("Maint. hatch 0 was okay."); + //Utils.LOG_MACHINE_INFO("Maint. hatch 0 was okay."); return true; } else { @@ -376,7 +407,7 @@ public class GregtechMetaTileEntityTreeFarm extends GT_MetaTileEntity_MultiBlock } } else { - Utils.LOG_MACHINE_INFO("Found no maint. hatches."); + //Utils.LOG_MACHINE_INFO("Found no maint. hatches."); } return false; } @@ -486,31 +517,31 @@ public class GregtechMetaTileEntityTreeFarm extends GT_MetaTileEntity_MultiBlock final int h = 1; //Utils.LOG_MACHINE_INFO("Looking for saplings."); if (this.mInternalPower >= 32) { - if (TreefarmManager.isSapling(aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j))){ - int posiX, posiY, posiZ; - posiX = aBaseMetaTileEntity.getXCoord()+xDir+i; - posiY = aBaseMetaTileEntity.getYCoord()+h; - posiZ = aBaseMetaTileEntity.getZCoord()+zDir+j; - //Utils.LOG_MACHINE_INFO("Found a sapling to grow."); - saplings++; - - if (this.depleteFertiliser()){ - if (this.drainEnergyInput(powerDrain)){ - final short fertTier = this.getFertiliserTier(this.getCurrentFertiliserStack()); - TreeFarmHelper.applyBonemeal(this.getFakePlayer(), aBaseMetaTileEntity.getWorld(), posiX, posiY, posiZ, fertTier); + if (TreefarmManager.isSapling(aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j))){ + int posiX, posiY, posiZ; + posiX = aBaseMetaTileEntity.getXCoord()+xDir+i; + posiY = aBaseMetaTileEntity.getYCoord()+h; + posiZ = aBaseMetaTileEntity.getZCoord()+zDir+j; + //Utils.LOG_MACHINE_INFO("Found a sapling to grow."); + saplings++; + + if (this.depleteFertiliser()){ + if (this.drainEnergyInput(powerDrain)){ + final short fertTier = this.getFertiliserTier(this.getCurrentFertiliserStack()); + TreeFarmHelper.applyBonemeal(this.getFakePlayer(), aBaseMetaTileEntity.getWorld(), posiX, posiY, posiZ, fertTier); + } + else { + Utils.LOG_MACHINE_INFO("x3"); + break; + } } else { - Utils.LOG_MACHINE_INFO("x3"); + Utils.LOG_MACHINE_INFO("x2"); break; } } - else { - Utils.LOG_MACHINE_INFO("x2"); - break; - } } } - } } Utils.LOG_MACHINE_INFO("Tried to grow saplings: | "+saplings ); return true; @@ -526,7 +557,7 @@ public class GregtechMetaTileEntityTreeFarm extends GT_MetaTileEntity_MultiBlock int counter = 0; if (r.size() > 0){ Utils.LOG_MACHINE_INFO("| r was not null. "+r.size()+" |"); - if (this.mInternalPower >= 32) { + if (this.getStoredInternalPower() >= 32) { OUTER : for (final ItemStack n : r){ Utils.LOG_MACHINE_INFO("found "+n.getDisplayName()); if (OrePrefixes.sapling.contains(n) || n.getDisplayName().toLowerCase().contains("sapling")){ @@ -636,10 +667,10 @@ public class GregtechMetaTileEntityTreeFarm extends GT_MetaTileEntity_MultiBlock final Block block = world.getBlock(x, y, z); int chanceForLeaves = 1000; //is it leaves or a log? if leaves, heavily reduce chance to obtain rubber/output - if (block.getUnlocalizedName().toLowerCase().contains("leaves")){ - chanceForLeaves = MathUtils.randInt(1, 1000); - if (chanceForLeaves > 990) { - Utils.LOG_MACHINE_INFO("Found some leaves that will drop, chance to drop item "+chanceForLeaves+", needed 990-1000."); + if (block.getUnlocalizedName().toLowerCase().contains("leaves") || block.getUnlocalizedName().toLowerCase().contains("leaf") || TreefarmManager.isLeaves(block)){ + chanceForLeaves = MathUtils.randInt(1, 10); + if (chanceForLeaves > 8) { + Utils.LOG_MACHINE_INFO("Found some leaves that will drop, chance to drop item "+chanceForLeaves+", needed 800-1000."); } } @@ -648,7 +679,7 @@ public class GregtechMetaTileEntityTreeFarm extends GT_MetaTileEntity_MultiBlock final ItemStack rubberResin = ItemUtils.getCorrectStacktype("IC2:itemHarz", 1); final int chanceForRubber = MathUtils.randInt(1, 10); final int multiplier = MathUtils.randInt(1, 3); - if ((chanceForRubber > 7) && (chanceForLeaves > 990)){ + if ((chanceForRubber > 7) && (chanceForLeaves > 8)){ rubberResin.stackSize = multiplier; Utils.LOG_MACHINE_INFO("Adding "+rubberResin.getDisplayName()+" x"+rubberResin.stackSize); this.addOutput(rubberResin); @@ -663,7 +694,7 @@ public class GregtechMetaTileEntityTreeFarm extends GT_MetaTileEntity_MultiBlock //Add Drops if (drops != null){ for (final ItemStack outputs : drops){ - if (chanceForLeaves > 990){ + if (chanceForLeaves > 8){ Utils.LOG_MACHINE_INFO("Adding 1x "+outputs.getDisplayName()); this.addOutput(outputs); //Update bus contents. @@ -951,13 +982,14 @@ public class GregtechMetaTileEntityTreeFarm extends GT_MetaTileEntity_MultiBlock } //Tick TE this.tickHandler(); + this.markDirty(); } //Client Side - do nothing } - - + + public static boolean damageOrDechargeItem(ItemStack aStack, int aDamage, int aDecharge, EntityLivingBase aPlayer) { if ((GT_Utility.isStackInvalid(aStack)) || ((aStack.getMaxStackSize() <= 1) && (aStack.stackSize > 1))) return false; |