aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/xmod
diff options
context:
space:
mode:
authorAlkalus <3060479+draknyte1@users.noreply.github.com>2018-10-22 13:23:21 +0100
committerAlkalus <3060479+draknyte1@users.noreply.github.com>2018-10-22 13:23:21 +0100
commit9dfe88fb1a39b03bcd418409692938cb4ff557f1 (patch)
tree36ba6668d9a92339bf83a0dccc6ec09a7ab75979 /src/Java/gtPlusPlus/xmod
parentf53caf47183769b5c39f65c3715715889db11718 (diff)
downloadGT5-Unofficial-9dfe88fb1a39b03bcd418409692938cb4ff557f1.tar.gz
GT5-Unofficial-9dfe88fb1a39b03bcd418409692938cb4ff557f1.tar.bz2
GT5-Unofficial-9dfe88fb1a39b03bcd418409692938cb4ff557f1.zip
+ Added tiered Control Cores for all Multiblocks, which are now required to run.
+ Added new Bus for Control Cores. $ Added packager recipes for all small/tiny dusts, Closes #395. $ Increased amount of Cryotheum gained from Fluid Extraction to be inline with Pyrotheum. Closes #390.
Diffstat (limited to 'src/Java/gtPlusPlus/xmod')
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java3
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java151
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/blocks/textures/TexturesGtBlock.java3
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_DustGeneration.java25
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechCustomHatches.java7
-rw-r--r--src/Java/gtPlusPlus/xmod/thermalfoundation/recipe/TF_Gregtech_Recipes.java2
6 files changed, 145 insertions, 46 deletions
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java b/src/Java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java
index baea21c3c3..fa4cb8a347 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java
@@ -303,6 +303,9 @@ public enum GregtechItemList implements GregtechItemContainer {
//XL Turbine Rotor Hatch
Hatch_Turbine_Rotor,
+
+ //Control Core
+ Hatch_Control_Core,
//Custom Fluid Hatches
Hatch_Input_Cryotheum,
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 5641ba0c3f..ba348f3aab 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
@@ -46,6 +46,7 @@ import gtPlusPlus.core.util.math.MathUtils;
import gtPlusPlus.xmod.gregtech.api.gui.CONTAINER_MultiMachine;
import gtPlusPlus.xmod.gregtech.api.gui.GUI_MultiMachine;
import gtPlusPlus.xmod.gregtech.api.gui.GUI_Multi_Basic_Slotted;
+import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_ControlCore;
import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_InputBattery;
import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_OutputBattery;
import net.minecraft.entity.player.EntityPlayer;
@@ -65,6 +66,8 @@ GT_MetaTileEntity_MultiBlockBase {
private boolean mInternalCircuit = false;
protected long mTotalRunTime = 0;
+ //Control Core Hatch
+ public ArrayList<GT_MetaTileEntity_Hatch_ControlCore> mControlCoreBus = new ArrayList<GT_MetaTileEntity_Hatch_ControlCore>();
public ArrayList<GT_MetaTileEntity_Hatch_InputBattery> mChargeHatches = new ArrayList<GT_MetaTileEntity_Hatch_InputBattery>();
public ArrayList<GT_MetaTileEntity_Hatch_OutputBattery> mDischargeHatches = new ArrayList<GT_MetaTileEntity_Hatch_OutputBattery>();
@@ -96,9 +99,9 @@ GT_MetaTileEntity_MultiBlockBase {
return new CONTAINER_MultiMachine(aPlayerInventory, aBaseMetaTileEntity);
}
}
-
+
public abstract String getCustomGUIResourceName();
-
+
public boolean requiresVanillaGtGUI() {
return false;
}
@@ -122,11 +125,11 @@ GT_MetaTileEntity_MultiBlockBase {
}
public abstract String getMachineType();
-
+
public String getMachineTooltip() {
return "Machine Type: " + EnumChatFormatting.YELLOW + getMachineType() + EnumChatFormatting.RESET;
}
-
+
public String[] getExtraInfoData() {
return new String[0];
};
@@ -324,6 +327,13 @@ GT_MetaTileEntity_MultiBlockBase {
// Based on the Processing Array. A bit overkill, but very flexible.
+ //Control Core to control the Multiblocks behaviour.
+ int aControlCoreTier = getControlCoreTier();
+
+ //If no core, return false;
+ if (aControlCoreTier == 0) {
+ return false;
+ }
// Reset outputs and progress stats
@@ -336,6 +346,11 @@ GT_MetaTileEntity_MultiBlockBase {
byte tTier = (byte) Math.max(1, GT_Utility.getTier(tVoltage));
log("Running checkRecipeGeneric(0)");
+ //Check to see if Voltage Tier > Control Core Tier
+ if (tTier > aControlCoreTier) {
+ return false;
+ }
+
GT_Recipe tRecipe = findRecipe(
getBaseMetaTileEntity(), mLastRecipe, false,
@@ -395,6 +410,11 @@ GT_MetaTileEntity_MultiBlockBase {
this.mEfficiency = (10000 - (getIdealStatus() - getRepairStatus()) * 1000);
this.mEfficiencyIncrease = 10000;
+
+ //Only Overclock as high as the control circuit.
+ byte tTierOld = tTier;
+ tTier = (byte) aControlCoreTier;
+
// Overclock
if (this.mEUt <= 16) {
this.mEUt = (this.mEUt * (1 << tTier - 1) * (1 << tTier - 1));
@@ -512,7 +532,7 @@ GT_MetaTileEntity_MultiBlockBase {
log("Error generating recipe, returning null.");
return null;
}
-
+
public boolean isMachineRunning() {
boolean aRunning = this.getBaseMetaTileEntity().isActive();
Logger.INFO("Queried Multiblock is currently running: "+aRunning);
@@ -532,6 +552,8 @@ GT_MetaTileEntity_MultiBlockBase {
if (mUpdate == 0 || this.mStartUpCheck == 0) {
this.mChargeHatches.clear();
this.mDischargeHatches.clear();
+ this.mControlCoreBus.clear();
+ this.mMultiDynamoHatches.clear();
}
}
@@ -554,6 +576,16 @@ GT_MetaTileEntity_MultiBlockBase {
.doExplosion(gregtech.api.enums.GT_Values.V[8])) {
tTileEntity = localIterator.next();
}
+ tTileEntity = null;
+ for (final Iterator<GT_MetaTileEntity_Hatch> localIterator = this.mMultiDynamoHatches
+ .iterator(); localIterator.hasNext(); tTileEntity
+ .getBaseMetaTileEntity()
+ .doExplosion(gregtech.api.enums.GT_Values.V[8])) {
+ tTileEntity = localIterator.next();
+ }
+
+
+
super.explodeMultiblock();
}
@@ -649,8 +681,8 @@ GT_MetaTileEntity_MultiBlockBase {
}
return b;
}
-
-
+
+
public <E> boolean addToMachineListInternal(ArrayList<E> aList, final IMetaTileEntity aTileEntity,
final int aBaseCasingIndex) {
if (aList.isEmpty()) {
@@ -681,6 +713,33 @@ GT_MetaTileEntity_MultiBlockBase {
}
return false;
}
+
+ public int getControlCoreTier() {
+ if (mControlCoreBus.size() == 0) {
+ return 0;
+ }
+ GT_MetaTileEntity_Hatch_ControlCore i = getControlCoreBus();
+ if (i != null) {
+ ItemStack x = i.mInventory[0];
+ if (x != null) {
+ return x.getItemDamage();
+ }
+ }
+ return 0;
+ }
+
+ public GT_MetaTileEntity_Hatch_ControlCore getControlCoreBus() {
+ GT_MetaTileEntity_Hatch_ControlCore x = this.mControlCoreBus.get(0);
+ if (x != null) {
+ return x;
+ }
+ return null;
+ }
+
+ //mControlCoreBus
+ public boolean addControlCoreToMachineList(final IGregTechTileEntity aTileEntity, final int aBaseCasingIndex) {
+ return addToMachineList(aTileEntity, aBaseCasingIndex);
+ }
@Override
public boolean addToMachineList(final IGregTechTileEntity aTileEntity, final int aBaseCasingIndex) {
@@ -691,12 +750,16 @@ GT_MetaTileEntity_MultiBlockBase {
if (aMetaTileEntity == null) {
return false;
}
-
+
//Use this to determine the correct value, then update the hatch texture after.
- boolean aDidAdd = false;
-
- //Handle Custom Hustoms
- if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_InputBattery) {
+ boolean aDidAdd = false;
+
+ //Handle Custom Hustoms
+ if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_ControlCore) {
+ log("Found GT_MetaTileEntity_Hatch_ControlCore");
+ aDidAdd = addToMachineListInternal(mControlCoreBus, aMetaTileEntity, aBaseCasingIndex);
+ }
+ else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_InputBattery) {
log("Found GT_MetaTileEntity_Hatch_InputBattery");
aDidAdd = addToMachineListInternal(mChargeHatches, aMetaTileEntity, aBaseCasingIndex);
}
@@ -704,38 +767,38 @@ GT_MetaTileEntity_MultiBlockBase {
log("Found GT_MetaTileEntity_Hatch_OutputBattery");
aDidAdd = addToMachineListInternal(mDischargeHatches, aMetaTileEntity, aBaseCasingIndex);
}
-
+
//Handle TT Multi-A Dynamos
else if (LoadedMods.TecTech && isThisHatchMultiDynamo(aMetaTileEntity)) {
log("Found isThisHatchMultiDynamo");
aDidAdd = addToMachineListInternal(mMultiDynamoHatches, aMetaTileEntity, aBaseCasingIndex);
}
-
+
//Handle Fluid Hatches using seperate logic
else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Input)
- aDidAdd = addFluidInputToMachineList(aMetaTileEntity, aBaseCasingIndex);
+ aDidAdd = addFluidInputToMachineList(aMetaTileEntity, aBaseCasingIndex);
else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Output)
aDidAdd = addToMachineListInternal(mOutputHatches, aMetaTileEntity, aBaseCasingIndex);
-
- //Process Remaining hatches using Vanilla GT Logic
+
+ //Process Remaining hatches using Vanilla GT Logic
else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_InputBus)
- aDidAdd = addToMachineListInternal(mInputBusses, aMetaTileEntity, aBaseCasingIndex);
+ aDidAdd = addToMachineListInternal(mInputBusses, aMetaTileEntity, aBaseCasingIndex);
else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_OutputBus)
- aDidAdd = addToMachineListInternal(mOutputBusses, aMetaTileEntity, aBaseCasingIndex);
+ aDidAdd = addToMachineListInternal(mOutputBusses, aMetaTileEntity, aBaseCasingIndex);
else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Energy)
- aDidAdd = addToMachineListInternal(mEnergyHatches, aMetaTileEntity, aBaseCasingIndex);
+ aDidAdd = addToMachineListInternal(mEnergyHatches, aMetaTileEntity, aBaseCasingIndex);
else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Dynamo)
- aDidAdd = addToMachineListInternal(mDynamoHatches, aMetaTileEntity, aBaseCasingIndex);
+ aDidAdd = addToMachineListInternal(mDynamoHatches, aMetaTileEntity, aBaseCasingIndex);
else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Maintenance)
- aDidAdd = addToMachineListInternal(mMaintenanceHatches, aMetaTileEntity, aBaseCasingIndex);
+ aDidAdd = addToMachineListInternal(mMaintenanceHatches, aMetaTileEntity, aBaseCasingIndex);
else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Muffler)
- aDidAdd = addToMachineListInternal(mMufflerHatches, aMetaTileEntity, aBaseCasingIndex);
-
+ aDidAdd = addToMachineListInternal(mMufflerHatches, aMetaTileEntity, aBaseCasingIndex);
+
//return super.addToMachineList(aTileEntity, aBaseCasingIndex);
- return aDidAdd;
+ return aDidAdd;
}
-
-
+
+
@Override
public boolean addMaintenanceToMachineList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) {
@@ -779,11 +842,11 @@ GT_MetaTileEntity_MultiBlockBase {
}
return false;
}
-
+
public boolean resetRecipeMapForAllInputHatches() {
return resetRecipeMapForAllInputHatches(this.getRecipeMap());
}
-
+
public boolean resetRecipeMapForAllInputHatches(GT_Recipe_Map aMap) {
int cleared = 0;
for (GT_MetaTileEntity_Hatch_Input g : this.mInputHatches) {
@@ -813,7 +876,7 @@ GT_MetaTileEntity_MultiBlockBase {
return false;
}
}
-
+
public boolean resetRecipeMapForHatch(GT_MetaTileEntity_Hatch aTileEntity, GT_Recipe_Map aMap) {
if (aTileEntity == null) {
return false;
@@ -834,13 +897,13 @@ GT_MetaTileEntity_MultiBlockBase {
return false;
}
}
-
+
@Override
public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) {
resetRecipeMapForAllInputHatches();
super.onScrewdriverRightClick(aSide, aPlayer, aX, aY, aZ);
}
-
+
/**
* Enable Texture Casing Support if found in GT 5.09
@@ -854,7 +917,7 @@ GT_MetaTileEntity_MultiBlockBase {
}
return updateTexture(aMetaTileEntity, aCasingID);
}
-
+
/**
* Enable Texture Casing Support if found in GT 5.09
*/
@@ -1173,16 +1236,16 @@ GT_MetaTileEntity_MultiBlockBase {
return mRecipeResult;
}
}
-
-
-
-
-
-
+
+
+
+
+
+
/**
* Custom Tool Handling
*/
-
+
@Override
public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer, byte aSide, float aX,
float aY, float aZ) {
@@ -1193,15 +1256,15 @@ GT_MetaTileEntity_MultiBlockBase {
ItemStack tCurrentItem = aPlayer.inventory.getCurrentItem();
if (tCurrentItem != null) {
if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sSoftHammerList)) {
-
+
}
}
}
return aSuper;
}
-
-
-
+
+
+
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 5f49528724..4e3a49bfba 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/textures/TexturesGtBlock.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/textures/TexturesGtBlock.java
@@ -359,6 +359,9 @@ public class TexturesGtBlock {
//Advanced Muffler
private static final CustomIcon Internal_Overlay_Hatch_Muffler_Adv = new CustomIcon("iconsets/OVERLAY_MUFFLER_ADV");
public static final CustomIcon Overlay_Hatch_Muffler_Adv = Internal_Overlay_Hatch_Muffler_Adv;
+ //Control Core Bus
+ private static final CustomIcon Internal_Overlay_Hatch_Control_Core = new CustomIcon("iconsets/OVERLAY_CONTROL_CORE_BUS");
+ public static final CustomIcon Overlay_Hatch_Control_Core = Internal_Overlay_Hatch_Control_Core;
//Dimensional
private static final CustomIcon Internal_Overlay_Machine_Dimensional_Blue = new CustomIcon("TileEntities/adv_machine_dimensional_cover_blue");
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_DustGeneration.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_DustGeneration.java
index 1875e874ea..49407f843c 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_DustGeneration.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_DustGeneration.java
@@ -6,10 +6,14 @@ import java.util.Set;
import net.minecraft.item.ItemStack;
import gregtech.api.enums.GT_Values;
+import gregtech.api.enums.ItemList;
+import gregtech.api.enums.OrePrefixes;
import gregtech.api.util.GT_ModHandler;
-
+import gregtech.api.util.GT_OreDictUnificator;
+import gregtech.api.util.GT_Utility;
import gtPlusPlus.api.interfaces.RunnableWithInfo;
import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.api.objects.data.AutoMap;
import gtPlusPlus.core.material.Material;
import gtPlusPlus.core.material.MaterialGenerator;
import gtPlusPlus.core.material.MaterialStack;
@@ -110,6 +114,10 @@ public class RecipeGen_DustGeneration extends RecipeGen_Base {
if (materialFrameBox != null) {
GT_ModHandler.addPulverisationRecipe(materialFrameBox, material.getDust(2));
}
+
+ if (smallDust != null && tinyDust != null) {
+ generatePackagerRecipes(material);
+ }
//Is this a composite?
if ((inputStacks != null) && !disableOptional){
@@ -308,5 +316,20 @@ public class RecipeGen_DustGeneration extends RecipeGen_Base {
return false;
}
+ public static boolean generatePackagerRecipes(Material aMatInfo) {
+ AutoMap<Boolean> aResults = new AutoMap<Boolean>();
+ //Small Dust
+ aResults.put(GT_Values.RA.addBoxingRecipe(GT_Utility.copyAmount(4L, new Object[]{aMatInfo.getSmallDust(4)}), ItemList.Schematic_Dust.get(0L, new Object[0]), aMatInfo.getDust(1), 100, 4));
+ //Tiny Dust
+ aResults.put(GT_Values.RA.addBoxingRecipe(GT_Utility.copyAmount(9L, new Object[]{aMatInfo.getTinyDust(9)}), ItemList.Schematic_Dust.get(0L, new Object[0]), aMatInfo.getDust(1), 100, 4));
+
+ for (boolean b : aResults) {
+ if (!b) {
+ return false;
+ }
+ }
+ return true;
+ }
+
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechCustomHatches.java b/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechCustomHatches.java
index fe18cb31d6..2fe4fc765f 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechCustomHatches.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechCustomHatches.java
@@ -10,6 +10,7 @@ import gtPlusPlus.core.recipe.common.CI;
import gtPlusPlus.core.util.minecraft.FluidUtils;
import gtPlusPlus.core.util.minecraft.RecipeUtils;
import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList;
+import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_ControlCore;
import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Muffler_Adv;
import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Naquadah;
import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GT_MetaTileEntity_Hatch_CustomFluidBase;
@@ -128,6 +129,12 @@ public class GregtechCustomHatches {
GT_ModHandler.addCraftingRecipe(GregtechItemList.Hatch_Muffler_Adv_MAX.get(1L, new Object[0]), bitsd,
new Object[] { "M", "P", Character.valueOf('M'), ItemList.Hatch_Muffler_MAX.get(1), Character.valueOf('P'),
GregtechItemList.Pollution_Cleaner_MAX.get(1) });
+
+
+ //GT++ multiblock Control Core Bus
+ GregtechItemList.Hatch_Control_Core
+ .set((new GT_MetaTileEntity_Hatch_ControlCore(30020, "hatch.control.adv", "Control Core Module", 1))
+ .getStackForm(1L));
}
}
diff --git a/src/Java/gtPlusPlus/xmod/thermalfoundation/recipe/TF_Gregtech_Recipes.java b/src/Java/gtPlusPlus/xmod/thermalfoundation/recipe/TF_Gregtech_Recipes.java
index 7e7047da69..e18e0e19f0 100644
--- a/src/Java/gtPlusPlus/xmod/thermalfoundation/recipe/TF_Gregtech_Recipes.java
+++ b/src/Java/gtPlusPlus/xmod/thermalfoundation/recipe/TF_Gregtech_Recipes.java
@@ -33,7 +33,7 @@ public class TF_Gregtech_Recipes {
//Gelid Cryotheum
Logger.INFO("Adding Recipes for Gelid Cryotheum");
- GT_Values.RA.addFluidExtractionRecipe(dust_Cryotheum, GT_Values.NI, getFluidStack("cryotheum", 144), 10000, 200, 240);
+ GT_Values.RA.addFluidExtractionRecipe(dust_Cryotheum, GT_Values.NI, getFluidStack("cryotheum", 250), 10000, 200, 240);
GT_Values.RA.addChemicalBathRecipe((GT_OreDictUnificator.get(OrePrefixes.ore, Materials.Cinnabar, 1L)), getFluidStack("cryotheum", 144), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cinnabar, 3L), GT_Values.NI, GT_Values.NI, null, 400, 30);
//Blizz Powder