aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gtPlusPlus/xmod/gregtech/common/tileentities')
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntityTreeFarm.java495
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_IndustrialFishingPond.java3
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/bedrock/GregtechMetaTileEntity_BedrockMiningPlatform1.java4
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/bedrock/GregtechMetaTileEntity_BedrockMiningPlatform2.java2
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/bedrock/GregtechMetaTileEntity_BedrockMiningPlatformBase.java333
5 files changed, 252 insertions, 585 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 9081e6bc64..fc4611686f 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
@@ -1,48 +1,103 @@
package gtPlusPlus.xmod.gregtech.common.tileentities.machines.multi.production;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
+
import gregtech.api.GregTech_API;
-import gregtech.api.enums.GT_Values;
import gregtech.api.enums.TAE;
+import gregtech.api.enums.Textures;
+import gregtech.api.interfaces.IIconContainer;
import gregtech.api.interfaces.ITexture;
+import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-import gregtech.api.metatileentity.MetaTileEntity;
-import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy;
-import gregtech.api.objects.GT_ItemStack;
import gregtech.api.objects.GT_RenderedTexture;
import gregtech.api.util.GT_Recipe;
+import gregtech.api.util.GT_Utility;
import gtPlusPlus.api.objects.Logger;
-import gtPlusPlus.api.objects.minecraft.BlockPos;
+import gtPlusPlus.api.objects.data.AutoMap;
+import gtPlusPlus.api.objects.minecraft.ThreadFakeWorldGenerator;
import gtPlusPlus.core.block.ModBlocks;
-import gtPlusPlus.core.slots.SlotBuzzSaw.SAWTOOL;
-import gtPlusPlus.xmod.gregtech.api.gui.CONTAINER_TreeFarmer;
-import gtPlusPlus.xmod.gregtech.api.gui.GUI_TreeFarmer;
+import gtPlusPlus.core.util.math.MathUtils;
+import gtPlusPlus.core.util.minecraft.FluidUtils;
+import gtPlusPlus.core.util.minecraft.ItemUtils;
import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase;
import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock;
import gtPlusPlus.xmod.gregtech.common.helpers.TreeFarmHelper;
+import gtPlusPlus.xmod.gregtech.common.helpers.treefarm.TreeGenerator;
import net.minecraft.block.Block;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.entity.player.InventoryPlayer;
+import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
-import net.minecraft.nbt.NBTTagCompound;
+import net.minecraftforge.common.util.ForgeDirection;
+import net.minecraftforge.fluids.FluidStack;
public class GregtechMetaTileEntityTreeFarm extends GregtechMeta_MultiBlockBase {
- public final static int TEX_INDEX = 31;
- protected boolean mIsCurrentlyWorking = false;
-
-
-
+ public static int CASING_TEXTURE_ID;
+ public static String mCryoFuelName = "Gelid Cryotheum";
+ public static String mCasingName = "Advanced Cryogenic Casing";
+ public static String mHatchName = "Cryotheum Hatch";
+ public static FluidStack mFuelStack;
+ public static TreeGenerator mTreeData;
public GregtechMetaTileEntityTreeFarm(final int aID, final String aName, final String aNameRegional) {
super(aID, aName, aNameRegional);
+ mFuelStack = FluidUtils.getFluidStack("cryotheum", 1);
+ CASING_TEXTURE_ID = TAE.getIndexFromPage(1, 15);
+ mCryoFuelName = mFuelStack.getLocalizedName();
+ mCasingName = ItemUtils.getLocalizedNameOfBlock(ModBlocks.blockCasings2Misc, 15);
+ mHatchName = ItemUtils.getLocalizedNameOfBlock(GregTech_API.sBlockMachines, 967);
}
+
+
+ /*
+ * Static thread for Fake World Handling
+ */
+
+
+ private static ScheduledExecutorService executor;
+ private static ThreadFakeWorldGenerator aThread;
+
public GregtechMetaTileEntityTreeFarm(final String aName) {
super(aName);
+ mFuelStack = FluidUtils.getFluidStack("cryotheum", 1);
+ CASING_TEXTURE_ID = TAE.getIndexFromPage(1, 15);
+ mCryoFuelName = mFuelStack.getLocalizedName();
+ mCasingName = ItemUtils.getLocalizedNameOfBlock(ModBlocks.blockCasings2Misc, 15);
+ mHatchName = ItemUtils.getLocalizedNameOfBlock(GregTech_API.sBlockMachines, 967);
+
+ /*if (executor == null || mTreeData == null) {
+ if (executor == null) {
+ executor = Executors.newScheduledThreadPool(10);
+ }
+ if (executor != null) {
+ if (aThread == null) {
+ aThread = new ThreadFakeWorldGenerator();
+ executor.scheduleAtFixedRate(aThread, 0, 1, TimeUnit.SECONDS);
+ while (aThread.mGenerator == null) {
+ if (aThread.mGenerator != null) {
+ break;
+ }
+ }
+ if (aThread.mGenerator != null) {
+ mTreeData = aThread.mGenerator;
+ }
+ }
+ }
+ }*/
+
+ if (mTreeData == null) {
+ mTreeData = new TreeGenerator();
+ }
+
+
+
+
}
- public boolean isCurrentlyWorking() {
- return this.mIsCurrentlyWorking;
+ public IMetaTileEntity newMetaEntity(final IGregTechTileEntity aTileEntity) {
+ return (IMetaTileEntity) new GregtechMetaTileEntityTreeFarm(this.mName);
}
@Override
@@ -50,206 +105,136 @@ public class GregtechMetaTileEntityTreeFarm extends GregtechMeta_MultiBlockBase
return "Tree Farm";
}
- @Override
public String[] getTooltip() {
- return new String[]{
- "THIS MULTIBLOCK IS DISABLED - DO NOT BUILD",
- };
- }
- @Override
- public long maxEUStore() {
- return 3244800; //13*13*150*128
- }
-
- @Override
- public boolean drainEnergyInput(final long aEU) {
- if (aEU <= 0L) {
- return true;
+ if (mCasingName.toLowerCase().contains(".name")) {
+ mCasingName = ItemUtils.getLocalizedNameOfBlock(ModBlocks.blockCasings2Misc, 15);
}
-
- //Special Override, so that this function uses internally stored power first.
- if (this.getEUVar() >= aEU) {
- this.setEUVar(this.getEUVar()-aEU);
- return true;
+ if (mCryoFuelName.toLowerCase().contains(".")) {
+ mCryoFuelName = FluidUtils.getFluidStack("cryotheum", 1).getLocalizedName();
}
-
- for (final GT_MetaTileEntity_Hatch_Energy tHatch : this.mEnergyHatches) {
- if (isValidMetaTileEntity((MetaTileEntity) tHatch)
- && tHatch.getBaseMetaTileEntity().decreaseStoredEnergyUnits(aEU, false)) {
- return true;
- }
+ if (mHatchName.toLowerCase().contains(".name")) {
+ mHatchName = ItemUtils.getLocalizedNameOfBlock(GregTech_API.sBlockMachines, 967);
}
- return false;
+
+ return new String[]{
+ "Factory Grade Tree Growth Simulator",
+ "Speed: Very Fast | Eu Usage: 100% | Parallel: 1",
+ //"Consumes 1L of "+mCryoFuelName+"/t during operation",
+ "Constructed exactly the same as a normal Vacuum Freezer",
+ "Use "+mCasingName+"s (10 at least!)",
+ "1x " + mHatchName + " (Required)",
+ "TAG_HIDE_HATCHES"
+ };
}
- @Override
- public ITexture[] getTexture(final IGregTechTileEntity aBaseMetaTileEntity, final byte aSide, final byte aFacing, final byte aColorIndex, final boolean aActive, final boolean aRedstone) {
- if (aSide == 0) {
- return new ITexture[]{new GT_RenderedTexture(TexturesGtBlock.Casing_Machine_Acacia_Log)};
+ public ITexture[] getTexture(final IGregTechTileEntity aBaseMetaTileEntity, final byte aSide, final byte aFacing,
+ final byte aColorIndex, final boolean aActive, final boolean aRedstone) {
+ if (aSide == aFacing) {
+ return new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[CASING_TEXTURE_ID],
+ new GT_RenderedTexture((IIconContainer) (aActive ? TexturesGtBlock.Overlay_Machine_Controller_Advanced_Active : TexturesGtBlock.Overlay_Machine_Controller_Advanced))};
}
- if (aSide == 1) {
- return new ITexture[]{new GT_RenderedTexture(TexturesGtBlock.Casing_Machine_Acacia_Log), new GT_RenderedTexture(isCurrentlyWorking() ? TexturesGtBlock.Overlay_Machine_Vent_Fast : TexturesGtBlock.Overlay_Machine_Vent)};
- }
- return new ITexture[]{new GT_RenderedTexture(TexturesGtBlock.Casing_Machine_Farm_Manager)};
- }
-
- @Override
- public GT_Recipe.GT_Recipe_Map getRecipeMap() {
- return null;
+ return new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[CASING_TEXTURE_ID]};
}
-
- @Override
- public void loadNBTData(NBTTagCompound arg0) {
- super.loadNBTData(arg0);
- }
-
-
@Override
- public void saveNBTData(NBTTagCompound arg0) {
- super.saveNBTData(arg0);
- }
-
- @Override
- public boolean isAccessAllowed(final EntityPlayer aPlayer) {
+ public boolean hasSlotInGUI() {
return true;
}
-
- @Override
- public boolean allowCoverOnSide(final byte aSide, final GT_ItemStack aCoverID) {
- return (GregTech_API.getCoverBehavior(aCoverID.toStack()).isSimpleCover()) && (super.allowCoverOnSide(aSide, aCoverID));
- }
-
- @Override
- public MetaTileEntity newMetaEntity(final IGregTechTileEntity aTileEntity) {
- return new GregtechMetaTileEntityTreeFarm(this.mName);
- }
-
+
@Override
- public boolean hasSlotInGUI() {
+ public boolean requiresVanillaGtGUI() {
return true;
}
@Override
public String getCustomGUIResourceName() {
- return "TreeFarmer";
- }
-
- @Override
- public Object getClientGUI(final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) {
- return new GUI_TreeFarmer(aPlayerInventory, aBaseMetaTileEntity, this.getLocalName(), "TreeFarmer.png");
+ return "VacuumFreezer";
}
- @Override
- public Object getServerGUI(final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) {
- return new CONTAINER_TreeFarmer(aPlayerInventory, aBaseMetaTileEntity);
+ public GT_Recipe.GT_Recipe_Map getRecipeMap() {
+ return null;
}
- @Override
- public boolean onRightclick(final IGregTechTileEntity aBaseMetaTileEntity, final EntityPlayer aPlayer) {
- if (aBaseMetaTileEntity.isClientSide() || aBaseMetaTileEntity.getWorld().isRemote) {
- Logger.WARNING("Doing nothing Client Side.");
- return false;
- }
- aBaseMetaTileEntity.openGUI(aPlayer);
+ public boolean isCorrectMachinePart(final ItemStack aStack) {
+ //return TreeFarmHelper.isCorrectPart(aStack);
return true;
}
- public Block getCasingBlock() {
- return ModBlocks.blockCasings2Misc;
- }
-
-
- public byte getCasingMeta() {
- return 15;
- }
-
-
- public byte getCasingTextureIndex() {
- return (byte) TAE.GTPP_INDEX(31);
- }
-
- @Override
- public int getMaxEfficiency(ItemStack p0) {
- return 10000;
- }
-
- @Override
- public String[] getExtraInfoData() {
- String[] mSuper = new String[0];
- String[] mDesc = new String[mSuper.length+1];
- mDesc[0] = "Yggdrasil"; // Machine name
- for (int i=0;i<mSuper.length;i++) {
- mDesc[i+1] = mSuper[i];
- }
- return mDesc;
- }
-
- @Override
- public boolean explodesOnComponentBreak(ItemStack p0) {
- return false;
- }
- @Override
- public boolean onRunningTick(final ItemStack aStack) {
- //Logger.INFO("s");
-
- return super.onRunningTick(aStack);
- }
-
- @Override
- public void onPostTick(final IGregTechTileEntity aBaseMetaTileEntity, final long aTick) {
- //Do Main Multi Logic first
- super.onPostTick(aBaseMetaTileEntity, aTick);
-
- //Do Tree Farm logic next on server side, once per second
- if (aBaseMetaTileEntity.isServerSide() && (aTick % 20 == 0)) {
-
- //Simple Repairs for a simple machine
- if (isCurrentlyWorking()) {
- this.mSolderingTool = true;
+ public boolean isFacingValid(final byte aFacing) {
+ return aFacing > 1;
+ }
+
+ public boolean checkRecipe(final ItemStack aStack) {
+ //Logger.WARNING("Trying to process virtual tree farming");
+ if (mTreeData != null) {
+ //Logger.WARNING("Tree Data is valid");
+
+ long tVoltage = getMaxInputVoltage();
+ byte tTier = (byte) Math.max(1, GT_Utility.getTier(tVoltage));
+
+ this.mMaxProgresstime = 100;
+ this.mEUt = (int) tVoltage;
+
+ this.mEfficiency = (10000 - (getIdealStatus() - getRepairStatus()) * 1000);
+ this.mEfficiencyIncrease = 10000;
+
+ // Overclock
+ if (this.mEUt <= 16) {
+ this.mEUt = (this.mEUt * (1 << tTier - 1) * (1 << tTier - 1));
+ this.mMaxProgresstime = (this.mMaxProgresstime / (1 << tTier - 1));
+ } else {
+ while (this.mEUt <= gregtech.api.enums.GT_Values.V[(tTier - 1)]) {
+ this.mEUt *= 4;
+ this.mMaxProgresstime /= 2;
+ }
}
- if (this.getBaseMetaTileEntity().isServerSide()) {
- if (this.mEnergyHatches.size() > 0) {
- for (GT_MetaTileEntity_Hatch_Energy j : this.mEnergyHatches) {
- //Logger.INFO(""+j.getInputTier());
- if (this.getEUVar() <= (this.maxEUStore()-GT_Values.V[(int) j.getInputTier()])) {
- this.setEUVar(this.getEUVar()+GT_Values.V[(int) j.getInputTier()]);
- j.setEUVar(j.getEUVar()-GT_Values.V[(int) j.getInputTier()]);
- }
- else if (this.getEUVar() > (this.maxEUStore()-GT_Values.V[(int) j.getInputTier()])) {
- long diff = (this.maxEUStore()-this.getEUVar());
- this.setEUVar(this.getEUVar()+diff);
- j.setEUVar(j.getEUVar()-diff);
+ if (this.mEUt > 0) {
+ this.mEUt = (-this.mEUt);
+ }
+
+
+
+ int aChance = MathUtils.randInt(0, 10);
+ AutoMap<ItemStack> aOutputs = new AutoMap<ItemStack>();
+
+ try {
+ //Logger.WARNING("Output Chance - "+aChance+" | Valid number? "+(aChance < 1000));
+ if (aChance < 8) {
+ //1% Chance per Tick
+ for (int u=0; u<(Math.max(20, (MathUtils.randInt((3*tTier), 100)*tTier*tTier)/8));u++) {
+ aOutputs = mTreeData.generateOutput(0);
+ if (aOutputs.size() > 0) {
+ Logger.WARNING("Generated some Loot, adding it to the output busses");
+
+ ItemStack aLeaves = ItemUtils.getSimpleStack(Blocks.leaves);
+
+ for (ItemStack aOutputItemStack : aOutputs) {
+ if (!GT_Utility.areStacksEqual(aLeaves, aOutputItemStack)) {
+ this.addOutput(aOutputItemStack);
+ }
}
- }
- }
+ Logger.WARNING("Updating Slots");
+ this.updateSlots();
+ }
+ }
+
+ }
}
-
-
- //Try Work
- if (this.drainEnergyInput(32)) {
- BlockPos t;
- if ((t = TreeFarmHelper.checkForLogsInGrowArea(this.getBaseMetaTileEntity())) != null) {
- //Logger.INFO("Lets try find new logs/branches.");
- TreeFarmHelper.findTreeFromBase(this.getBaseMetaTileEntity().getWorld(), t);
- }
+ catch (Throwable t) {
+ t.printStackTrace();
}
-
-
+
+ //Logger.WARNING("Valid Recipe");
+ return true;
}
+ else {
+ //Logger.WARNING("Invalid Recipe");
+ return false;
+ }
+ //return this.checkRecipeGeneric(4, 100, 100);
}
-
-
- @Override
- public boolean checkRecipe(ItemStack p0) {
- mIsCurrentlyWorking = (isCorrectMachinePart(p0) && this.getEUVar() > 0);
- if (isCurrentlyWorking()) {
- return true;
- }
- return false;
- }
@Override
public int getMaxParallelRecipes() {
@@ -261,121 +246,65 @@ public class GregtechMetaTileEntityTreeFarm extends GregtechMeta_MultiBlockBase
return 0;
}
-
- @Override
- public boolean isCorrectMachinePart(final ItemStack aStack) {
- boolean isValid = false;
- final SAWTOOL currentInputItem = TreeFarmHelper.isCorrectMachinePart(aStack);
- if (currentInputItem != SAWTOOL.NONE){
- isValid = true;
- }
- return isValid;
- }
-
- @Override
public boolean checkMultiblock(final IGregTechTileEntity aBaseMetaTileEntity, final ItemStack aStack) {
- Logger.WARNING("Step 1");
- final int xDir = net.minecraftforge.common.util.ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetX * 7;
- final int zDir = net.minecraftforge.common.util.ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetZ * 7;
-
- for (int i = -7; i <= 7; i++) {
- Logger.WARNING("Step 2");
- for (int j = -7; j <= 7; j++) {
- Logger.WARNING("Step 3");
- for (int h = 0; h <= 1; h++) {
- Logger.WARNING("Step 4");
- final IGregTechTileEntity tTileEntity = aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, h, zDir + j);
- //Farm Floor inner 14x14
- if (((i != -7) && (i != 7)) && ((j != -7) && (j != 7))) {
- Logger.WARNING("Step 5 - H:"+h);
- // Farm Dirt Floor and Inner Air/Log space.
- if (h == 0) {
- //Dirt Floor
- if (!TreeFarmHelper.isDirtBlock(aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j))) {
- Logger.MACHINE_INFO("Dirt like block missing from inner 14x14.");
- Logger.MACHINE_INFO("Instead, found "+aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j).getLocalizedName());
- return false;
- }
- }
- }
- //Dealt with inner 5x5, now deal with the exterior.
- else {
- Logger.WARNING("Step 6 - H:"+h);
- //Deal with all 4 sides (Fenced area)
- if (h == 1) {
- if (!TreeFarmHelper.isFenceBlock(aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j))) {
- Logger.MACHINE_INFO("Fence/Gate missing from outside the second layer.");
- Logger.MACHINE_INFO("Instead, found "+aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j).getLocalizedName());
+ int xDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetX;
+ int zDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetZ;
+ int tAmount = 0;
+ if (!aBaseMetaTileEntity.getAirOffset(xDir, 0, zDir)) {
+ return false;
+ } else {
+ for (int i = -1; i < 2; ++i) {
+ for (int j = -1; j < 2; ++j) {
+ for (int h = -1; h < 2; ++h) {
+ if (h != 0 || (xDir + i != 0 || zDir + j != 0) && (i != 0 || j != 0)) {
+ IGregTechTileEntity tTileEntity = aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i,
+ h, zDir + j);
+ Block aBlock = aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j);
+ int aMeta = aBaseMetaTileEntity.getMetaIDOffset(xDir + i, h, zDir + j);
+
+ if (!isValidBlockForStructure(tTileEntity, CASING_TEXTURE_ID, true, aBlock, aMeta,
+ ModBlocks.blockCasings2Misc, 15)) {
+ Logger.WARNING("Bad centrifuge casing");
return false;
}
- }
- //Deal with Bottom edges (Add Hatches/Busses first, othercheck make sure it's dirt) //TODO change the casings to not dirt~?
- else if (h == 0) {
- if (tTileEntity != null)
- if ((!this.addMaintenanceToMachineList(tTileEntity, TAE.GTPP_INDEX(TEX_INDEX))) && (!this.addInputToMachineList(tTileEntity, TAE.GTPP_INDEX(TEX_INDEX))) && (!this.addOutputToMachineList(tTileEntity, TAE.GTPP_INDEX(TEX_INDEX))) && (!this.addEnergyInputToMachineList(tTileEntity, TAE.GTPP_INDEX(TEX_INDEX)))) {
- if (((xDir + i) != 0) || ((zDir + j) != 0)) {//no controller
+ ++tAmount;
- if (tTileEntity.getMetaTileID() != 752) {
- Logger.MACHINE_INFO("Farm Keeper Casings Missing from one of the edges on the bottom edge. x:"+(xDir+i)+" y:"+h+" z:"+(zDir+j)+" | "+aBaseMetaTileEntity.getClass());
- Logger.MACHINE_INFO("Instead, found "+aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j).getLocalizedName()+" "+tTileEntity.getMetaTileID());
- return false;
- }
- Logger.WARNING("Found a farm keeper.");
- }
- }
}
}
}
}
+ return tAmount >= 10;
}
+ }
- //Must have at least one energy hatch.
- if (this.mEnergyHatches != null) {
- for (int i = 0; i < this.mEnergyHatches.size(); i++) {
- if (this.mEnergyHatches.get(i).mTier < 1){
- Logger.MACHINE_INFO("You require at LEAST MV tier Energy Hatches.");
- Logger.MACHINE_INFO(this.mOutputHatches.get(i).getBaseMetaTileEntity().getXCoord()+","+this.mOutputHatches.get(i).getBaseMetaTileEntity().getYCoord()+","+this.mOutputHatches.get(i).getBaseMetaTileEntity().getZCoord());
- return false;
- }
- }
- }
- //Must have at least one output hatch.
- if (this.mOutputHatches != null) {
- for (int i = 0; i < this.mOutputHatches.size(); i++) {
-
- if (this.mOutputHatches.get(i).mTier < 1){
- Logger.MACHINE_INFO("You require at LEAST MV tier Output Hatches.");
- Logger.MACHINE_INFO(this.mOutputHatches.get(i).getBaseMetaTileEntity().getXCoord()+","+this.mOutputHatches.get(i).getBaseMetaTileEntity().getYCoord()+","+this.mOutputHatches.get(i).getBaseMetaTileEntity().getZCoord());
- Logger.MACHINE_INFO(this.mOutputHatches.get(i).getBaseMetaTileEntity().getInventoryName());
- return false;
- }
- }
- }
- //Must have at least one input hatch.
- if (this.mInputHatches != null) {
- for (int i = 0; i < this.mInputHatches.size(); i++) {
- if (this.mInputHatches.get(i).mTier < 1){
- Logger.MACHINE_INFO("You require at LEAST MV tier Input Hatches.");
- Logger.MACHINE_INFO(this.mOutputHatches.get(i).getBaseMetaTileEntity().getXCoord()+","+this.mOutputHatches.get(i).getBaseMetaTileEntity().getYCoord()+","+this.mOutputHatches.get(i).getBaseMetaTileEntity().getZCoord());
- Logger.MACHINE_INFO(this.mOutputHatches.get(i).getBaseMetaTileEntity().getInventoryName());
- return false;
- }
- }
- }
- Logger.MACHINE_INFO("Multiblock Formed.");
- return true;
+ public int getMaxEfficiency(final ItemStack aStack) {
+ return 10000;
}
+ public int getPollutionPerTick(final ItemStack aStack) {
+ return 25;
+ }
- @Override
- public int getPollutionPerTick(ItemStack arg0) {
+ public int getDamageToComponent(final ItemStack aStack) {
return 0;
}
+ public boolean explodesOnComponentBreak(final ItemStack aStack) {
+ return false;
+ }
@Override
- public void onServerStart() {
- super.onServerStart();
+ public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {
+ if (mTreeData != null) {
+ //this.getBaseMetaTileEntity().enableWorking();
+ }
+
+
+ /*if (this.getBaseMetaTileEntity().isActive()) {
+ if (!this.depleteInput(mFuelStack.copy())) {
+ this.getBaseMetaTileEntity().setActive(false);
+ }
+ } */
+ super.onPostTick(aBaseMetaTileEntity, aTick);
}
-
} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_IndustrialFishingPond.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_IndustrialFishingPond.java
index fc0cb85bac..031bf16b17 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_IndustrialFishingPond.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_IndustrialFishingPond.java
@@ -6,7 +6,6 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
-import cofh.asmhooks.block.BlockWater;
import gregtech.api.enums.TAE;
import gregtech.api.enums.Textures;
import gregtech.api.interfaces.ITexture;
@@ -18,7 +17,6 @@ import gregtech.api.util.FishPondFakeRecipe;
import gregtech.api.util.GT_Recipe;
import gregtech.api.util.GT_Utility;
import gregtech.api.util.Recipe_GT;
-import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.api.objects.data.AutoMap;
import gtPlusPlus.core.block.ModBlocks;
import gtPlusPlus.core.lib.CORE;
@@ -31,7 +29,6 @@ import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.Gregtech
import ic2.core.init.BlocksItems;
import ic2.core.init.InternalName;
import net.minecraft.block.Block;
-import net.minecraft.block.BlockAir;
import net.minecraft.init.Blocks;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/bedrock/GregtechMetaTileEntity_BedrockMiningPlatform1.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/bedrock/GregtechMetaTileEntity_BedrockMiningPlatform1.java
index 7c1cc343ed..a3e288c33c 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/bedrock/GregtechMetaTileEntity_BedrockMiningPlatform1.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/bedrock/GregtechMetaTileEntity_BedrockMiningPlatform1.java
@@ -3,10 +3,8 @@ package gtPlusPlus.xmod.gregtech.common.tileentities.machines.multi.production.b
import gregtech.api.enums.TAE;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-
import gtPlusPlus.core.material.ALLOY;
import gtPlusPlus.core.material.Material;
-import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList;
public class GregtechMetaTileEntity_BedrockMiningPlatform1 extends GregtechMetaTileEntity_BedrockMiningPlatformBase {
public GregtechMetaTileEntity_BedrockMiningPlatform1(final int aID, final String aName, final String aNameRegional) {
@@ -17,7 +15,7 @@ public class GregtechMetaTileEntity_BedrockMiningPlatform1 extends GregtechMetaT
super(aName);
}
- public String[] getDescription() {
+ public String[] getTooltip() {
return this.getDescriptionInternal("I");
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/bedrock/GregtechMetaTileEntity_BedrockMiningPlatform2.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/bedrock/GregtechMetaTileEntity_BedrockMiningPlatform2.java
index 0ea38f685f..6910f4e97c 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/bedrock/GregtechMetaTileEntity_BedrockMiningPlatform2.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/bedrock/GregtechMetaTileEntity_BedrockMiningPlatform2.java
@@ -15,7 +15,7 @@ public class GregtechMetaTileEntity_BedrockMiningPlatform2 extends GregtechMetaT
super(aName);
}
- public String[] getDescription() {
+ public String[] getTooltip() {
return this.getDescriptionInternal("II");
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/bedrock/GregtechMetaTileEntity_BedrockMiningPlatformBase.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/bedrock/GregtechMetaTileEntity_BedrockMiningPlatformBase.java
index fb4884e278..d264a759ec 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/bedrock/GregtechMetaTileEntity_BedrockMiningPlatformBase.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/bedrock/GregtechMetaTileEntity_BedrockMiningPlatformBase.java
@@ -1,8 +1,5 @@
package gtPlusPlus.xmod.gregtech.common.tileentities.machines.multi.production.bedrock;
-import java.util.ArrayList;
-import java.util.HashMap;
-
import gregtech.api.GregTech_API;
import gregtech.api.enums.GT_Values;
import gregtech.api.enums.Textures;
@@ -11,7 +8,6 @@ import gregtech.api.interfaces.IIconContainer;
import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy;
-import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase;
import gregtech.api.objects.GT_RenderedTexture;
import gregtech.api.util.GT_ModHandler;
import gregtech.api.util.GT_Utility;
@@ -19,8 +15,6 @@ import gregtech.common.GT_Worldgen_GT_Ore_Layer;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.api.objects.data.AutoMap;
import gtPlusPlus.api.objects.data.Pair;
-import gtPlusPlus.api.objects.minecraft.BlockPos;
-import gtPlusPlus.core.block.ModBlocks;
import gtPlusPlus.core.lib.LoadedMods;
import gtPlusPlus.core.material.ELEMENT;
import gtPlusPlus.core.material.Material;
@@ -30,24 +24,22 @@ import gtPlusPlus.core.util.minecraft.FluidUtils;
import gtPlusPlus.core.util.minecraft.ItemUtils;
import gtPlusPlus.core.util.minecraft.MiningUtils;
import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList;
+import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase;
import net.minecraft.block.Block;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
-import net.minecraft.world.ChunkPosition;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.oredict.OreDictionary;
-public abstract class GregtechMetaTileEntity_BedrockMiningPlatformBase extends GT_MetaTileEntity_MultiBlockBase {
-
- private static final ItemStack miningPipe;
- private static final ItemStack miningPipeTip;
- private static final Block miningPipeBlock;
- private static final Block miningPipeTipBlock;
+public abstract class GregtechMetaTileEntity_BedrockMiningPlatformBase extends GregtechMeta_MultiBlockBase {
- private final ArrayList<ChunkPosition> oreBlockPositions;
protected double mProductionModifier = 0;
+
+ private static final ItemStack miningPipe;
+ private static final ItemStack miningPipeTip;
+
private Block casingBlock;
private int casingMeta;
// private int frameMeta;
@@ -61,36 +53,22 @@ public abstract class GregtechMetaTileEntity_BedrockMiningPlatformBase extends G
private int[] xCenter = new int[5];
private int[] zCenter = new int[5];
- private int[] yHead = new int[5];
- private boolean[] isPickingPipes = new boolean[5];
public GregtechMetaTileEntity_BedrockMiningPlatformBase(final int aID, final String aName,
final String aNameRegional) {
super(aID, aName, aNameRegional);
- this.oreBlockPositions = new ArrayList<ChunkPosition>();
this.initFields();
}
public GregtechMetaTileEntity_BedrockMiningPlatformBase(final String aName) {
super(aName);
- this.oreBlockPositions = new ArrayList<ChunkPosition>();
this.initFields();
}
private void initFields() {
this.casingBlock = this.getCasingBlockItem().getBlock();
this.casingMeta = this.getCasingBlockItem().get(0L, new Object[0]).getItemDamage();
- /*
- * final int frameId = 4096 + this.getFrameMaterial().mMetaItemSubID;
- * this.frameMeta = ((GregTech_API.METATILEENTITIES[frameId] != null) ?
- * GregTech_API.METATILEENTITIES[frameId].getTileEntityBaseType() :
- * 32767);
- */
this.casingTextureIndex = this.getCasingTextureIndex();
-
- for (int g = 0; g < 5; g++) {
- this.isPickingPipes[g] = false;
- }
}
public ITexture[] getTexture(final IGregTechTileEntity aBaseMetaTileEntity, final byte aSide, final byte aFacing,
@@ -168,7 +146,7 @@ public abstract class GregtechMetaTileEntity_BedrockMiningPlatformBase extends G
}
}
- this.mEUt = 8000;
+ this.mEUt = -8000;
this.mMaxProgresstime = 1;
this.mEfficiencyIncrease = 10000;
@@ -186,30 +164,6 @@ public abstract class GregtechMetaTileEntity_BedrockMiningPlatformBase extends G
return false;
}
- private boolean tryPickPipe(int pipe) {
- if (this.yHead[pipe] == this.yDrill) {
- return false;
- }
- boolean didWork[] = new boolean[3];
- didWork[0] = this.checkBlockAndMeta(this.xCenter[pipe], this.yHead[pipe] + 1, this.zCenter[pipe],
- GregtechMetaTileEntity_BedrockMiningPlatformBase.miningPipeBlock, 32767);
- if (didWork[0]) {
- didWork[1] = this.getBaseMetaTileEntity().getWorld().setBlock(this.xCenter[pipe], this.yHead[pipe] + 1,
- this.zCenter[pipe], GregtechMetaTileEntity_BedrockMiningPlatformBase.miningPipeTipBlock);
- }
- if (didWork[1]) {
- mMiningHeads.put(pipe, new BlockPos(this.xCenter[pipe], this.yHead[pipe] + 1, this.zCenter[pipe],
- this.getBaseMetaTileEntity().getWorld()));
- didWork[2] = this.getBaseMetaTileEntity().getWorld().setBlockToAir(this.xCenter[pipe], this.yHead[pipe],
- this.zCenter[pipe]);
- }
-
- if (didWork[0] && didWork[1] && didWork[2]) {
- return true;
- }
- return false;
- }
-
private void setElectricityStats() {
//this.mEfficiency = this.getCurrentEfficiency((ItemStack) null);
this.mEfficiencyIncrease = 10000;
@@ -218,52 +172,12 @@ public abstract class GregtechMetaTileEntity_BedrockMiningPlatformBase extends G
Logger.INFO("Trying to set EU to "+(12 * overclock * overclock));
int mCombinedAvgTime = 0;
for (int g = 0; g < 5; g++) {
- mCombinedAvgTime += (this.isPickingPipes[g] ? 80 : this.getBaseProgressTime()) / overclock;
+ mCombinedAvgTime += this.getBaseProgressTime() / overclock;
}
Logger.INFO("Trying to set Max Time to "+(mCombinedAvgTime));
//this.mMaxProgresstime = (mCombinedAvgTime / 5);
}
- /*
- * private ItemStack[] getOutputByDrops(final ArrayList<ItemStack>
- * oreBlockDrops) { final long voltage = this.getMaxInputVoltage(); final
- * ArrayList<ItemStack> outputItems = new ArrayList<ItemStack>(); while
- * (!oreBlockDrops.isEmpty()) { final ItemStack currentItem =
- * oreBlockDrops.remove(0).copy(); if
- * (!this.doUseMaceratorRecipe(currentItem)) {
- * this.multiplyStackSize(currentItem); outputItems.add(currentItem); } else
- * { final GT_Recipe tRecipe =
- * GT_Recipe.GT_Recipe_Map.sMaceratorRecipes.findRecipe(
- * (IHasWorldObjectAndCoords) this.getBaseMetaTileEntity(), false, voltage,
- * (FluidStack[]) null, new ItemStack[]{currentItem}); if (tRecipe == null)
- * { outputItems.add(currentItem); } else { for (int i = 0; i <
- * tRecipe.mOutputs.length; ++i) { final ItemStack recipeOutput =
- * tRecipe.mOutputs[i].copy(); if
- * (this.getBaseMetaTileEntity().getRandomNumber(10000) <
- * tRecipe.getOutputChance(i)) { this.multiplyStackSize(recipeOutput); }
- * outputItems.add(recipeOutput); } } } } return outputItems.toArray(new
- * ItemStack[0]); }
- */
-
- /*
- * private boolean doUseMaceratorRecipe(final ItemStack currentItem) { final
- * ItemData itemData = GT_OreDictUnificator.getItemData(currentItem); return
- * itemData == null || (itemData.mPrefix != OrePrefixes.crushed &&
- * itemData.mPrefix != OrePrefixes.dustImpure && itemData.mPrefix !=
- * OrePrefixes.dust && itemData.mMaterial.mMaterial != Materials.Oilsands);
- * } private void multiplyStackSize(final ItemStack itemStack) {
- * itemStack.stackSize *= this.getBaseMetaTileEntity().getRandomNumber(4) +
- * 1; } private ArrayList<ItemStack> getBlockDrops(final Block oreBlock,
- * final int posX, final int posY, final int posZ) { final int blockMeta =
- * this.getBaseMetaTileEntity().getMetaID(posX, posY, posZ); if
- * (oreBlock.canSilkHarvest(this.getBaseMetaTileEntity().getWorld(),
- * (EntityPlayer) null, posX, posY, posZ, blockMeta)) { return new
- * ArrayList<ItemStack>() { { this.add(new ItemStack(oreBlock, 1,
- * blockMeta)); } }; } return (ArrayList<ItemStack>)
- * oreBlock.getDrops(this.getBaseMetaTileEntity().getWorld(), posX, posY,
- * posZ, blockMeta, 1); }
- */
-
private boolean tryConsumeDrillingFluid() {
boolean consumed = false;
boolean g = (this.getBaseMetaTileEntity().getWorld().getTotalWorldTime() % 2 == 0);
@@ -285,30 +199,8 @@ public abstract cla