diff options
Diffstat (limited to 'src/Java/gtPlusPlus/xmod/gregtech')
9 files changed, 147 insertions, 37 deletions
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java b/src/Java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java index 2b9860ef1c..e951735f5e 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java @@ -311,7 +311,9 @@ public enum GregtechItemList implements GregtechItemContainer { //Buffer Dynamos Hatch_Buffer_Dynamo_ULV, Hatch_Buffer_Dynamo_LV, Hatch_Buffer_Dynamo_MV, Hatch_Buffer_Dynamo_HV, Hatch_Buffer_Dynamo_EV, - Hatch_Buffer_Dynamo_IV, Hatch_Buffer_Dynamo_LuV, Hatch_Buffer_Dynamo_ZPM, Hatch_Buffer_Dynamo_UV, Hatch_Buffer_Dynamo_MAX, + Hatch_Buffer_Dynamo_IV, Hatch_Buffer_Dynamo_LuV, Hatch_Buffer_Dynamo_ZPM, Hatch_Buffer_Dynamo_UV, Hatch_Buffer_Dynamo_MAX, + + Amazon_Warehouse_Controller, Casing_AmazonWarehouse, diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java index c2d3331128..ea73a836b4 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java @@ -244,12 +244,14 @@ GT_MetaTileEntity_MultiBlockBase { long tVoltage = getMaxInputVoltage(); byte tTier = (byte) Math.max(1, GT_Utility.getTier(tVoltage)); + Logger.WARNING("Running checkRecipeGeneric(0)"); GT_Recipe tRecipe = this.getRecipeMap().findRecipe( getBaseMetaTileEntity(), mLastRecipe, false, gregtech.api.enums.GT_Values.V[tTier], aFluidInputs, aItemInputs); + Logger.WARNING("Running checkRecipeGeneric(1)"); // Remember last recipe - an optimization for findRecipe() this.mLastRecipe = tRecipe; diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/GregtechMetaCasingBlocks3.java b/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/GregtechMetaCasingBlocks3.java index 7baa8ec36a..0ea26debe4 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/GregtechMetaCasingBlocks3.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/GregtechMetaCasingBlocks3.java @@ -54,7 +54,7 @@ extends GregtechMetaCasingBlocksAbstract { GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".6.name", "Vanadium Redox Power Cell (ZPM)"); GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".7.name", "Vanadium Redox Power Cell (UV)");; GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".8.name", "Vanadium Redox Power Cell (MAX)"); - GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".9.name", "Placeholder"); + GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".9.name", "Supply Depot Casing"); GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".10.name", "Placeholder"); GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".11.name", "Placeholder"); GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".12.name", "Placeholder"); @@ -70,12 +70,7 @@ extends GregtechMetaCasingBlocksAbstract { GregtechItemList.Casing_Vanadium_Redox_ZPM.set(new ItemStack(this, 1, 6)); GregtechItemList.Casing_Vanadium_Redox_UV.set(new ItemStack(this, 1, 7)); GregtechItemList.Casing_Vanadium_Redox_MAX.set(new ItemStack(this, 1, 8)); - //GregtechItemList.Casing_WashPlant.set(new ItemStack(this, 1, 4)); - //GregtechItemList.Casing_Sifter.set(new ItemStack(this, 1, 5)); - //GregtechItemList.Casing_SifterGrate.set(new ItemStack(this, 1, 6)); - //GregtechItemList.Casing_Vanadium_Redox.set(new ItemStack(this, 1, 7)); - //GregtechItemList.Casing_Power_SubStation.set(new ItemStack(this, 1, 8)); - //GregtechItemList.Casing_Cyclotron_Coil.set(new ItemStack(this, 1, 9)); + GregtechItemList.Casing_AmazonWarehouse.set(new ItemStack(this, 1, 9)); //GregtechItemList.Casing_Cyclotron_External.set(new ItemStack(this, 1, 10)); //GregtechItemList.Casing_ThermalContainment.set(new ItemStack(this, 1, 11)); //GregtechItemList.Casing_Autocrafter.set(new ItemStack(this, 1, 12)); diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/textures/CasingTextureHandler3.java b/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/textures/CasingTextureHandler3.java index e83ce098c8..45ca6c56dc 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/textures/CasingTextureHandler3.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/textures/CasingTextureHandler3.java @@ -35,7 +35,8 @@ public class CasingTextureHandler3 { //Vanadium Redox MAX return TexturesGtBlock.Casing_Redox_6.getIcon(); case 9: - return TexturesGtBlock._PlaceHolder.getIcon(); + //Amazon Warehouse Casing + return TexturesGtBlock.TEXTURE_CASING_AMAZON.getIcon(); case 10: return TexturesGtBlock._PlaceHolder.getIcon(); case 11: diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/textures/TexturesGtBlock.java b/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/textures/TexturesGtBlock.java index 0c187480bb..b3d751a58f 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/textures/TexturesGtBlock.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/textures/TexturesGtBlock.java @@ -205,6 +205,9 @@ public class TexturesGtBlock { public static final CustomIcon Overlay_Machine_Cyber_A = Internal_Overlay_Machine_Cyber_A; private static final CustomIcon Internal_Overlay_Machine_Cyber_B = new CustomIcon("chrono/CyberPanel2"); public static final CustomIcon Overlay_Machine_Cyber_B = Internal_Overlay_Machine_Cyber_B; + + + public static final CustomIcon TEXTURE_CASING_AMAZON = new CustomIcon("TileEntities/CASING_AMAZON"); //Overlays //Fan Textures diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/misc/GMTE_AmazonPackager.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/misc/GMTE_AmazonPackager.java index a85c4f95f3..146d1b9fcc 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/misc/GMTE_AmazonPackager.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/misc/GMTE_AmazonPackager.java @@ -2,6 +2,7 @@ package gtPlusPlus.xmod.gregtech.common.tileentities.machines.multi.misc; import java.util.ArrayList; +import net.minecraft.block.Block; import net.minecraft.item.ItemStack; import gregtech.api.enums.*; @@ -9,14 +10,20 @@ import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.interfaces.tileentity.IHasWorldObjectAndCoords; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_InputBus; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; +import gtPlusPlus.api.objects.Logger; import gtPlusPlus.api.objects.data.AutoMap; import gtPlusPlus.api.objects.minecraft.ItemStackData; +import gtPlusPlus.core.block.ModBlocks; +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.util.minecraft.ItemUtils; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase; +import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; public class GMTE_AmazonPackager extends GregtechMeta_MultiBlockBase { @@ -41,7 +48,7 @@ public class GMTE_AmazonPackager extends GregtechMeta_MultiBlockBase { @Override public boolean hasSlotInGUI() { - return false; + return true; } @Override @@ -49,7 +56,21 @@ public class GMTE_AmazonPackager extends GregtechMeta_MultiBlockBase { return new String[]{ "Controller Block for the Amazon Warehouse", "This Multiblock is used for EXTREME packaging requirements", - "" + "Dust Schematics are inserted into the input busses", + "If inserted into the controller, it is shared across all busses", + "1x, 2x, 3x & Other Schematics are to be placed into the controller GUI slot", + "Uncomparably fast compared to a single packager of the same tier", + "Only uses 75% of the eu/t normally required", + "Processes five items per voltage tier", + "Size: 3x3x3 (Hollow)", + "Controller (front centered)", + "1x Input Bus (anywhere)", + "1x Output Bus (anywhere)", + "1x Energy Hatch (anywhere)", + "1x Maintenance Hatch (anywhere)", + "1x Muffler (anywhere)", + "Supply Depot. Casings for the rest (10 at least!)", + CORE.GT_Tooltip }; } @@ -61,32 +82,65 @@ public class GMTE_AmazonPackager extends GregtechMeta_MultiBlockBase { @Override 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[TAE.GTPP_INDEX(7)], new GT_RenderedTexture(aActive ? Textures.BlockIcons.OVERLAY_FRONT_VACUUM_FREEZER_ACTIVE : Textures.BlockIcons.OVERLAY_FRONT_VACUUM_FREEZER)}; + return new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[TAE.getIndexFromPage(2, 1)], new GT_RenderedTexture(aActive ? Textures.BlockIcons.OVERLAY_FRONT_VACUUM_FREEZER_ACTIVE : Textures.BlockIcons.OVERLAY_FRONT_VACUUM_FREEZER)}; } - return new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[TAE.GTPP_INDEX(7)]}; + return new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[TAE.getIndexFromPage(2, 1)]}; } - - public GT_Recipe.GT_Recipe_Map getRecipeList() { + @Override + public GT_Recipe.GT_Recipe_Map getRecipeMap() { return GT_Recipe.GT_Recipe_Map.sBoxinatorRecipes; } + public void sortInputBusses() { + for (GT_MetaTileEntity_Hatch_InputBus h : this.mInputBusses) { + h.updateSlots(); + } + } + @Override public boolean checkRecipe(ItemStack aStack) { ArrayList<ItemStack> tItems = getStoredInputs(); - AutoMap<ItemStackData> mCompleted = new AutoMap<ItemStackData>(); + if (this.getGUIItemStack() != null) { + tItems.add(this.getGUIItemStack()); - for (ItemStack tInputItem : tItems) { - if (tInputItem != null) { - mCompleted.put(new ItemStackData(tInputItem)); - checkRecipe(tInputItem, getGUIItemStack()); - } } - - return mCompleted != null && mCompleted.size() > 0; + ArrayList<FluidStack> tFluids = getStoredFluids(); + ItemStack[] tItemInputs = tItems.toArray(new ItemStack[tItems.size()]); + FluidStack[] tFluidInputs = tFluids.toArray(new FluidStack[tFluids.size()]); + boolean state = checkRecipeGeneric(tItemInputs, tFluidInputs, 5 * GT_Utility.getTier(this.getMaxInputVoltage()), 75, 500, 10000); + + + if (state) { + return true; + } + else { + tItems = getStoredInputs(); + AutoMap<ItemStackData> mCompleted = new AutoMap<ItemStackData>(); + AutoMap<ItemStackData> mSchematics = new AutoMap<ItemStackData>(); + for (ItemStack tInputItem : tItems) { + if (tInputItem != null) { + if (ItemList.Schematic_1by1.isStackEqual((Object) tInputItem) || ItemList.Schematic_2by2.isStackEqual((Object) tInputItem) || ItemList.Schematic_3by3.isStackEqual((Object) tInputItem)) { + mSchematics.put(new ItemStackData(tInputItem)); + } + } + } + if (mSchematics.size() > 0) { + for (ItemStackData g : mSchematics) { + for (ItemStack tInputItem : tItems) { + if (tInputItem != null) { + mCompleted.put(new ItemStackData(tInputItem)); + checkRecipe(tInputItem, g.getStack()); + } + } + } + } + + return mCompleted != null && mCompleted.size() > 0; + } } public boolean checkRecipe(ItemStack inputStack, ItemStack schematicStack) { @@ -95,24 +149,29 @@ public class GMTE_AmazonPackager extends GregtechMeta_MultiBlockBase { ItemStack tOutputStack; if (ItemList.Schematic_1by1.isStackEqual((Object) schematicStack)&& inputStack.stackSize >= 1) { tOutputStack = GT_ModHandler.getRecipeOutput(new ItemStack[]{inputStack}); - if (tOutputStack != null && this.addOutput(tOutputStack)) { + if (tOutputStack != null && this.allowPutStack(tOutputStack, schematicStack)) { final ItemStack input = inputStack; --input.stackSize; this.mEUt = 32 * (1 << this.mTier - 1) * (1 << this.mTier - 1); - this.mMaxProgresstime = 16 / (1 << this.mTier - 1); + //this.mMaxProgresstime = 16 / (1 << this.mTier - 1); + this.mMaxProgresstime = 2; + this.addOutput(tOutputStack); + updateSlots(); return true; } return false; - } else if (ItemList.Schematic_2by2.isStackEqual((Object) schematicStack) && inputStack.stackSize >= 4) { tOutputStack = GT_ModHandler.getRecipeOutput(new ItemStack[]{inputStack, inputStack, null, inputStack, inputStack}); - if (tOutputStack != null && this.addOutput(tOutputStack)) { + if (tOutputStack != null && this.allowPutStack(tOutputStack, schematicStack)) { final ItemStack input2 = inputStack; input2.stackSize -= 4; this.mEUt = 32 * (1 << this.mTier - 1) * (1 << this.mTier - 1); - this.mMaxProgresstime = 32 / (1 << this.mTier - 1); + //this.mMaxProgresstime = 32 / (1 << this.mTier - 1); + this.mMaxProgresstime = 4; + this.addOutput(tOutputStack); + updateSlots(); return true; } return false; @@ -121,11 +180,14 @@ public class GMTE_AmazonPackager extends GregtechMeta_MultiBlockBase { tOutputStack = GT_ModHandler.getRecipeOutput(new ItemStack[]{inputStack, inputStack, inputStack, inputStack, inputStack, inputStack, inputStack, inputStack, inputStack}); - if (tOutputStack != null && this.addOutput(tOutputStack)) { + if (tOutputStack != null && this.allowPutStack(tOutputStack, schematicStack)) { final ItemStack input3 = inputStack; input3.stackSize -= 9; this.mEUt = 32 * (1 << this.mTier - 1) * (1 << this.mTier - 1); - this.mMaxProgresstime = 64 / (1 << this.mTier - 1); + //this.mMaxProgresstime = 64 / (1 << this.mTier - 1); + this.mMaxProgresstime = 6; + this.addOutput(tOutputStack); + updateSlots(); return true; } return false; @@ -134,7 +196,7 @@ public class GMTE_AmazonPackager extends GregtechMeta_MultiBlockBase { return false; } - public boolean allowPutStack(final IGregTechTileEntity aBaseMetaTileEntity, final int aIndex, final byte aSide, final ItemStack aStack, ItemStack schematicStack) { + public boolean allowPutStack(final ItemStack aStack, ItemStack schematicStack) { //If Schematic Static is not 1x1, 2x2, 3x3 if (!ItemList.Schematic_1by1.isStackEqual((Object) schematicStack) && !ItemList.Schematic_2by2.isStackEqual((Object) schematicStack) && !ItemList.Schematic_3by3.isStackEqual((Object) schematicStack)) { return GT_Recipe.GT_Recipe_Map.sBoxinatorRecipes.containsInput(aStack); @@ -163,8 +225,32 @@ public class GMTE_AmazonPackager extends GregtechMeta_MultiBlockBase { } @Override - public boolean checkMachine(IGregTechTileEntity p0, ItemStack p1) { - return false; + public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack p1) { + final int xDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetX; + final int zDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetZ; + if (!aBaseMetaTileEntity.getAirOffset(xDir, 0, zDir)) { + return false; + } + int tAmount = 0; + 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)))) { + final IGregTechTileEntity tTileEntity = aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, h, zDir + j); + if (!this.addToMachineList(tTileEntity, TAE.getIndexFromPage(2, 9))) { + final Block tBlock = aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j); + final byte tMeta = aBaseMetaTileEntity.getMetaIDOffset(xDir + i, h, zDir + j); + + if (((tBlock != ModBlocks.blockCasings3Misc) || (tMeta != 9))) { + return false; + } + tAmount++; + } + } + } + } + } + return tAmount >= 10; } @Override diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_AlloySmelter.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_AlloySmelter.java index e3dc240995..f405c8b5c6 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_AlloySmelter.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_AlloySmelter.java @@ -24,7 +24,7 @@ public class RecipeGen_AlloySmelter implements Runnable{ //Nuggets GT_Values.RA.addAlloySmelterRecipe( material.getIngot(1), - ItemList.Shape_Mold_Nugget.get(1), + ItemList.Shape_Mold_Nugget.get(0), material.getNugget(9), (int) Math.max(material.getMass() * 2L, 1L), 2 * tVoltageMultiplier); @@ -32,7 +32,7 @@ public class RecipeGen_AlloySmelter implements Runnable{ //Gears GT_Values.RA.addAlloySmelterRecipe( material.getIngot(8), - ItemList.Shape_Mold_Gear.get(1), + ItemList.Shape_Mold_Gear.get(0), material.getGear(1), (int) Math.max(material.getMass() * 2L, 1L), 2 * tVoltageMultiplier); @@ -40,7 +40,7 @@ public class RecipeGen_AlloySmelter implements Runnable{ //Ingot GT_Values.RA.addAlloySmelterRecipe( material.getNugget(9), - ItemList.Shape_Mold_Ingot.get(1), + ItemList.Shape_Mold_Ingot.get(0), material.getIngot(1), (int) Math.max(material.getMass() * 2L, 1L), 2 * tVoltageMultiplier); diff --git a/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechAdvancedMixer.java b/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechAdvancedMixer.java index 3a3ed1450e..dc79b3953b 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechAdvancedMixer.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechAdvancedMixer.java @@ -26,7 +26,7 @@ public class GregtechAdvancedMixer { GT_Recipe_Map oldMap = GT_Recipe.GT_Recipe_Map.sMixerRecipes; GT_Recipe_Map map = Recipe_GT.Gregtech_Recipe_Map.sAdvancedMixerRecipes; final Collection<GT_Recipe> x = oldMap.mRecipeList; - Logger.INFO("Generating " + map.mUnlocalizedName + " Recipes."); + //Logger.INFO("Generating " + map.mUnlocalizedName + " Recipes."); for (final GT_Recipe g : x) { Recipe_GT.Gregtech_Recipe_Map.sAdvancedMixerRecipes.add(g); } diff --git a/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechAmazonWarehouse.java b/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechAmazonWarehouse.java new file mode 100644 index 0000000000..8adf580011 --- /dev/null +++ b/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechAmazonWarehouse.java @@ -0,0 +1,21 @@ +package gtPlusPlus.xmod.gregtech.registration.gregtech; + +import gtPlusPlus.api.objects.Logger; +import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; +import gtPlusPlus.xmod.gregtech.common.tileentities.machines.multi.misc.GMTE_AmazonPackager; + +public class GregtechAmazonWarehouse { + + public static void run() { + if (gtPlusPlus.core.lib.LoadedMods.Gregtech) { + Logger.INFO("Gregtech5u Content | Registering Amazon Warehouse Multiblock."); + run1(); + } + } + + private static void run1() { + // Amazon packager multiblock + GregtechItemList.Amazon_Warehouse_Controller.set(new GMTE_AmazonPackager(942, "amazonprime.controller.tier.single", "Amazon Warehousing Depot.").getStackForm(1L)); + + } +}
\ No newline at end of file |