aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorAlkalus <3060479+draknyte1@users.noreply.github.com>2022-01-05 17:56:23 +0000
committerAlkalus <3060479+draknyte1@users.noreply.github.com>2022-01-05 17:56:23 +0000
commit1ffbfdf48d9c23712932f6d25f1bc1529202412e (patch)
treec39cc1c9b5bed7c016c5831ecbc5e61209e315dc /src/main/java
parenta028cc1467cdeff4d7f47734fb8557fd5239abc7 (diff)
downloadGT5-Unofficial-1ffbfdf48d9c23712932f6d25f1bc1529202412e.tar.gz
GT5-Unofficial-1ffbfdf48d9c23712932f6d25f1bc1529202412e.tar.bz2
GT5-Unofficial-1ffbfdf48d9c23712932f6d25f1bc1529202412e.zip
Added Solar Tower & Solar Heater.
Added Potassium Nitrate. Added Sodium Nitrate. Added Hot/Cold Solar Salt. Added recipes for the above. Added Solar Salt processing to Thermal Boiler. Re-added Assembly Line MKII, Tesla Tower. (WIP)
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/gregtech/api/util/GTPP_Recipe.java16
-rw-r--r--src/main/java/gregtech/api/util/HotFuel.java16
-rw-r--r--src/main/java/gtPlusPlus/core/handler/COMPAT_HANDLER.java6
-rw-r--r--src/main/java/gtPlusPlus/core/item/general/ItemAreaClear.java13
-rw-r--r--src/main/java/gtPlusPlus/core/material/MISC_MATERIALS.java71
-rw-r--r--src/main/java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java59
-rw-r--r--src/main/java/gtPlusPlus/core/recipe/RECIPES_General.java21
-rw-r--r--src/main/java/gtPlusPlus/nei/GT_NEI_MultiSolarTower.java36
-rw-r--r--src/main/java/gtPlusPlus/nei/NEI_GT_Config.java6
-rw-r--r--src/main/java/gtPlusPlus/nei/NEI_IMC_Sender.java2
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java8
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/blocks/GregtechMetaCasingBlocks4.java4
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/misc/GregtechMTE_TeslaTower.java99
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_AssemblyLine.java579
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GT4Entity_ThermalBoiler.java94
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_SolarTower.java1045
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/misc/TileEntitySolarHeater.java92
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_BlastSmelterGT_Ex.java6
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechFactoryGradeReplacementMultis.java7
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechSolarTower.java21
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechTeslaTower.java2
21 files changed, 1264 insertions, 939 deletions
diff --git a/src/main/java/gregtech/api/util/GTPP_Recipe.java b/src/main/java/gregtech/api/util/GTPP_Recipe.java
index c22341856d..8fde47ad80 100644
--- a/src/main/java/gregtech/api/util/GTPP_Recipe.java
+++ b/src/main/java/gregtech/api/util/GTPP_Recipe.java
@@ -4,7 +4,11 @@ import static gregtech.api.enums.GT_Values.E;
import static gregtech.api.enums.GT_Values.RES_PATH_GUI;
import static gregtech.api.enums.GT_Values.W;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
import codechicken.nei.PositionedStack;
import gregtech.api.GregTech_API;
@@ -14,7 +18,6 @@ import gregtech.api.objects.GT_ItemStack;
import gtPlusPlus.api.interfaces.IComparableRecipe;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.api.objects.data.AutoMap;
-import gtPlusPlus.api.objects.minecraft.NoConflictGTRecipeMap;
import gtPlusPlus.core.lib.CORE;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.Fluid;
@@ -338,7 +341,7 @@ public class GTPP_Recipe extends GT_Recipe implements IComparableRecipe {
public static final GTPP_Recipe_Map_Internal sChemicalDehydratorRecipes = new GTPP_Recipe_Map_Internal(new HashSet<GT_Recipe>(200), "gtpp.recipe.chemicaldehydrator", "Dehydrator", null, RES_PATH_GUI + "basicmachines/Dehydrator", 2, 9, 0, 0, 1, E, 1, E, true, true);
public static final GTPP_Recipe_Map_Internal sVacuumFurnaceRecipes = new GTPP_Recipe_Map_Internal(new HashSet<GT_Recipe>(500), "gtpp.recipe.vacfurnace", "Vacuum Furnace", null, "gregtech:textures/gui/basicmachines/Default", 6, 6, 1, 0, 1, "Heat Capacity: ", 1, " K", false, true);
public static final GTPP_Recipe_Map_Internal sAlloyBlastSmelterRecipes = new GTPP_Recipe_Map_Internal(new HashSet<GT_Recipe>(200), "gtpp.recipe.alloyblastsmelter", "Alloy Blast Smelter", null, RES_PATH_GUI + "basicmachines/BlastSmelter", 9, 9, 1, 0, 1, E, 1, E, true, true);
- public static final GTPP_Recipe_Map_Internal sSteamTurbineFuels = new GTPP_Recipe_Map_Internal(new HashSet<GT_Recipe>(10), "gtpp.recipe.steamturbinefuel", "GeoThermal Fuel", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 0, 1, "Fuel Value: ", 1000, " EU", true, true);
+ public static final GTPP_Recipe_Map_Internal sSteamTurbineFuels = new GTPP_Recipe_Map_Internal(new HashSet<GT_Recipe>(10), "gtpp.recipe.steamturbinefuel", "GeoThermal Fuel", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 0, 1, "Fuel Value: ", 1000, " EU", true, false);
//LFTR recipes
public static final GTPP_Recipe_Map_Internal sLiquidFluorineThoriumReactorRecipes = new GTPP_Recipe_Map_Internal(new HashSet<GT_Recipe>(50), "gtpp.recipe.lftr", "Liquid Fluoride Thorium Reactor", null, RES_PATH_GUI + "basicmachines/FissionFuel", 0, 0, 0, 2, 0, "Power: ", 1, " EU/t per Dynamo", true, true);
@@ -390,8 +393,13 @@ public class GTPP_Recipe extends GT_Recipe implements IComparableRecipe {
//Thermal Boiler map
public static final GT_Recipe.GT_Recipe_Map_Fuel sThermalFuels = new GT_Recipe_Map_Fuel(new HashSet<GT_Recipe>(10), "gtpp.recipe.thermalgeneratorfuel",
"Thermal Generator Fuel", null, "gregtech:textures/gui/basicmachines/Default", 1, 1, 0, 0, 1,
- "Fuel Value: ", 1000, " EU", true, false);
+ null, 1000, null, true, false);
+ //Solar Tower map
+ public static final GT_Recipe.GT_Recipe_Map_Fuel sSolarTowerRecipes = new GT_Recipe_Map_Fuel(new HashSet<GT_Recipe>(10), "gtpp.recipe.solartower",
+ "Solar Tower", null, "gregtech:textures/gui/basicmachines/Default", 1, 1, 0, 0, 1,
+ null, 1000, null, true, false);
+
//Cyclotron recipe map
public static final GTPP_Recipe_Map_Internal sCyclotronRecipes = new GTPP_Recipe_Map_Internal(new HashSet<GT_Recipe>(200), "gtpp.recipe.cyclotron", "COMET - Compact Cyclotron", null, RES_PATH_GUI + "basicmachines/BlastSmelter", 2, 16, 0, 0, 1, E, 1, E, true, true);
diff --git a/src/main/java/gregtech/api/util/HotFuel.java b/src/main/java/gregtech/api/util/HotFuel.java
index c9a6dcf7c5..e709926f83 100644
--- a/src/main/java/gregtech/api/util/HotFuel.java
+++ b/src/main/java/gregtech/api/util/HotFuel.java
@@ -22,7 +22,21 @@ public class HotFuel {
GTPP_Recipe.GTPP_Recipe_Map.sThermalFuels.addRecipe(x);
}
-
+ public static void addNewHotFuel(FluidStack aInput1, FluidStack aOutput1, FluidStack aOutput2, int aSpecialValue) {
+ GTPP_Recipe x = new GTPP_Recipe(
+ false,
+ null,
+ null,
+ null,
+ null,
+ new FluidStack[]{aInput1},
+ new FluidStack[]{aOutput1, aOutput2},
+ 20, //1 Second
+ 0, //No Eu produced
+ aSpecialValue //Magic Number
+ );
+ GTPP_Recipe.GTPP_Recipe_Map.sThermalFuels.addRecipe(x);
+ }
}
diff --git a/src/main/java/gtPlusPlus/core/handler/COMPAT_HANDLER.java b/src/main/java/gtPlusPlus/core/handler/COMPAT_HANDLER.java
index 3460d207b4..b55001f1c2 100644
--- a/src/main/java/gtPlusPlus/core/handler/COMPAT_HANDLER.java
+++ b/src/main/java/gtPlusPlus/core/handler/COMPAT_HANDLER.java
@@ -135,7 +135,7 @@ public class COMPAT_HANDLER {
GregtechIndustrialCuttingFactory.run();
//GregtechMiniRaFusion.run();
GregtechComponentAssembler.run();
- //GregtechTeslaTower.run();
+ GregtechTeslaTower.run();
GregtechSuperChests.run();
GregtechIndustrialFishPond.run();
GregtechTieredChunkloaders.run();
@@ -151,7 +151,7 @@ public class COMPAT_HANDLER {
GregtechCustomHatches.run();
//GregtechNaqReactor.run();
GregtechIndustrialArcFurnace.run();
- //GregtechSolarTower.run();
+ GregtechSolarTower.run();
GregtechLargeTurbinesAndHeatExchanger.run();
GregtechPowerBreakers.run();
GregtechFluidReactor.run();
@@ -161,7 +161,7 @@ public class COMPAT_HANDLER {
GregtechSteamMultis.run();
GregtechIndustrialForgeHammer.run();
GregtechMolecularTransformer.run();
- //GregtechIndustrialElementDuplicator.run();
+ GregtechIndustrialElementDuplicator.run();
//New Horizons Content
NewHorizonsAccelerator.run();
diff --git a/src/main/java/gtPlusPlus/core/item/general/ItemAreaClear.java b/src/main/java/gtPlusPlus/core/item/general/ItemAreaClear.java
index 5be184b3db..16d0c0253b 100644
--- a/src/main/java/gtPlusPlus/core/item/general/ItemAreaClear.java
+++ b/src/main/java/gtPlusPlus/core/item/general/ItemAreaClear.java
@@ -30,7 +30,7 @@ public class ItemAreaClear extends CoreItem {
public IIcon[] mIcon = new IIcon[1];
public ItemAreaClear() {
- super("itemDebugClearing", AddToCreativeTab.tabMachines, 1, 100, new String[] {EnumChatFormatting.OBFUSCATED+"F A M C Y N A M E"}, EnumRarity.rare,
+ super("itemDebugClearing", AddToCreativeTab.tabMachines, 1, 100, new String[] {EnumChatFormatting.OBFUSCATED+"F A N C Y N A M E"}, EnumRarity.rare,
EnumChatFormatting.BOLD, false, null);
}
@@ -160,16 +160,16 @@ public class ItemAreaClear extends CoreItem {
int y1 = pos.yPos;
int z1 = pos.zPos;
- int x2 = (x1-10);
+ int x2 = (x1-15);
int y2 = (y1-1);
- int z2 = (z1-10);
+ int z2 = (z1-15);
fillBlockColumn(world, new BlockPos(x2, y2, z2, world));
return true;
}
public boolean fillBlockColumn(World world, BlockPos pos){
- for (int i=0; i<21; i++){
+ for (int i=0; i<30; i++){
fillBlockRow(world, new BlockPos(pos.xPos, pos.yPos, pos.zPos+i, world));
}
return true;
@@ -177,9 +177,10 @@ public class ItemAreaClear extends CoreItem {
public boolean fillBlockRow(World world, BlockPos pos){
for (int j=0; j<2; j++){
- for (int i=0; i<21; i++){
+ for (int i=0; i<30; i++){
if (world.getBlock(pos.xPos+i, pos.yPos+j, pos.zPos) != Blocks.bedrock){
- world.setBlock(pos.xPos+i, pos.yPos+j, pos.zPos, Blocks.grass);
+ world.setBlock(pos.xPos+i, pos.yPos+j, pos.zPos, Blocks.dirt);
+ world.setBlockMetadataWithNotify(pos.xPos+i, pos.yPos+j, pos.zPos, 2, 2);
}
}
}
diff --git a/src/main/java/gtPlusPlus/core/material/MISC_MATERIALS.java b/src/main/java/gtPlusPlus/core/material/MISC_MATERIALS.java
index 19e8499f02..47ac6b170e 100644
--- a/src/main/java/gtPlusPlus/core/material/MISC_MATERIALS.java
+++ b/src/main/java/gtPlusPlus/core/material/MISC_MATERIALS.java
@@ -15,11 +15,82 @@ public final class MISC_MATERIALS {
*/
public static void run() {
+ MaterialUtils.generateSpecialDustAndAssignToAMaterial(POTASSIUM_NITRATE, false);
+ MaterialUtils.generateSpecialDustAndAssignToAMaterial(SODIUM_NITRATE, false);
MaterialUtils.generateSpecialDustAndAssignToAMaterial(STRONTIUM_OXIDE, false);
MaterialUtils.generateSpecialDustAndAssignToAMaterial(STRONTIUM_HYDROXIDE, false);
WATER.registerComponentForMaterial(FluidUtils.getWater(1000));
}
+ public static final Material POTASSIUM_NITRATE = new Material(
+ "Potassium Nitrate",
+ MaterialState.SOLID, //State
+ null,
+ null,
+ -1,
+ -1,
+ -1,
+ -1,
+ false,
+ "KNO3",
+ 0,
+ false,
+ new MaterialStack[]{
+ new MaterialStack(ELEMENT.getInstance().POTASSIUM, 1),
+ new MaterialStack(ELEMENT.getInstance().NITROGEN, 1),
+ new MaterialStack(ELEMENT.getInstance().OXYGEN, 3)
+ });
+ public static final Material SODIUM_NITRATE = new Material(
+ "Sodium Nitrate",
+ MaterialState.SOLID, //State
+ null,
+ null,
+ -1,
+ -1,
+ -1,
+ -1,
+ false,
+ "NaNO3",
+ 0,
+ false,
+ new MaterialStack[]{
+ new MaterialStack(ELEMENT.getInstance().SODIUM, 1),
+ new MaterialStack(ELEMENT.getInstance().NITROGEN, 1),
+ new MaterialStack(ELEMENT.getInstance().OXYGEN, 3)
+ });
+
+ public static final Material SOLAR_SALT_COLD = new Material(
+ "Solar Salt (Cold)",
+ MaterialState.PURE_LIQUID, //State
+ null, //Material Colour
+ -1, //Melting Point in C
+ -1, //Boiling Point in C
+ -1, //Protons
+ -1,
+ false, //Uses Blast furnace?
+ //Material Stacks with Percentage of required elements.
+ new MaterialStack[]{
+ new MaterialStack(POTASSIUM_NITRATE, 4),
+ new MaterialStack(SODIUM_NITRATE, 6)
+ });
+
+ public static final Material SOLAR_SALT_HOT = new Material(
+ "Solar Salt (Hot)",
+ MaterialState.PURE_LIQUID, //State
+ new short[] {200, 25, 25}, //Material Colour
+ 1200, //Melting Point in C
+ 3300, //Boiling Point in C
+ -1, //Protons
+ -1,
+ false, //Uses Blast furnace?
+ //Material Stacks with Percentage of required elements.
+ new MaterialStack[]{
+ new MaterialStack(POTASSIUM_NITRATE, 4),
+ new MaterialStack(SODIUM_NITRATE, 6)
+ });
+
+
+
public static final Material STRONTIUM_OXIDE = new Material(
"Strontium Oxide",
MaterialState.SOLID,
diff --git a/src/main/java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java b/src/main/java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java
index 3d0e6aebfd..adf93c0f69 100644
--- a/src/main/java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java
+++ b/src/main/java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java
@@ -1700,7 +1700,7 @@ public class RECIPES_GREGTECH {
GT_Values.RA.addFuel(ItemUtils.simpleMetaStack("EnderIO:bucketHootch", 0, 1), null, 36, 0);
}
- HotFuel.addNewHotFuel(GT_ModHandler.getLava(83), GT_Values.NF,
+ HotFuel.addNewHotFuel(FluidUtils.getLava(83), FluidUtils.getPahoehoeLava(83),
new ItemStack[] { ItemUtils.getItemStackOfAmountFromOreDict("nuggetCopper", 1),
ItemUtils.getItemStackOfAmountFromOreDict("nuggetTin", 1),
ItemUtils.getItemStackOfAmountFromOreDict("nuggetGold", 1),
@@ -1710,7 +1710,7 @@ public class RECIPES_GREGTECH {
ItemUtils.getSimpleStack(Blocks.obsidian) },
new int[] { 2000, 1000, 250, 250, 250, 250, 500 }, 0);
- HotFuel.addNewHotFuel(FluidUtils.getFluidStack("ic2pahoehoelava", 83), GT_Values.NF,
+ HotFuel.addNewHotFuel(FluidUtils.getPahoehoeLava(83), GT_Values.NF,
new ItemStack[] {
ItemUtils.getItemStackOfAmountFromOreDict("nuggetBronze", 1),
ItemUtils.getItemStackOfAmountFromOreDict("nuggetElectrum", 1),
@@ -1718,6 +1718,12 @@ public class RECIPES_GREGTECH {
ItemUtils.getItemStackOfAmountFromOreDict("dustSmallTungstate", 1),
ItemUtils.getSimpleStack(Blocks.obsidian) },
new int[] { 750, 250, 250, 250, 1850 }, 0);
+
+ HotFuel.addNewHotFuel(
+ MISC_MATERIALS.SOLAR_SALT_HOT.getFluidStack(1000),
+ MISC_MATERIALS.SOLAR_SALT_COLD.getFluidStack(1000),
+ FluidUtils.getSuperHeatedSteam(10000),
+ 0);
/*
* HotFuel.addNewHotFuel( FluidUtils.getFluidStack("ic2hotcoolant",
@@ -1754,6 +1760,21 @@ public class RECIPES_GREGTECH {
private static void centrifugeRecipes() {
+ GT_Values.RA.addCentrifugeRecipe(
+ CI.getNumberedAdvancedCircuit(2),
+ MISC_MATERIALS.SOLAR_SALT_COLD.getCell(10),
+ null,
+ null,
+ MISC_MATERIALS.SODIUM_NITRATE.getDust(6),
+ MISC_MATERIALS.POTASSIUM_NITRATE.getDust(4),
+ CI.emptyCells(10),
+ null,
+ null,
+ null,
+ null,
+ 20 * 30,
+ 120);
+
}
private static void mixerRecipes() {
@@ -1769,6 +1790,19 @@ public class RECIPES_GREGTECH {
600,
60);
+ GT_Values.RA.addMixerRecipe(
+ CI.getNumberedAdvancedCircuit(2),
+ CI.emptyCells(10),
+ MISC_MATERIALS.SODIUM_NITRATE.getDust(6),
+ MISC_MATERIALS.POTASSIUM_NITRATE.getDust(4),
+ null,
+ null,
+ MISC_MATERIALS.SOLAR_SALT_COLD.getCell(10),
+ 20 * 10,
+ 120);
+
+
+
}
private static void chemicalReactorRecipes() {
@@ -1796,7 +1830,26 @@ public class RECIPES_GREGTECH {
FluidUtils.getFluidStack("sulfuricacid", 4000),
FluidUtils.getFluidStack("sulfuricapatite", 8000),
ItemUtils.getItemStackOfAmountFromOreDict("dustSmallSulfur", 8),
- 20 * 20);
+ 20 * 20);
+
+ GT_Values.RA.addChemicalRecipe(
+ Materials.Potassium.getDust(1),
+ CI.getNumberedAdvancedCircuit(1),
+ Materials.NitricAcid.getFluid(1000),
+ GT_Values.NF,
+ MISC_MATERIALS.POTASSIUM_NITRATE.getDust(1),
+ 100,
+ 30);
+
+ GT_Values.RA.addChemicalRecipe(
+ ItemUtils.getSimpleStack(AgriculturalChem.mSodiumCarbonate, 1),
+ CI.getNumberedAdvancedCircuit(1),
+ Materials.NitricAcid.getFluid(1000),
+ GT_Values.NF,
+ MISC_MATERIALS.SODIUM_NITRATE.getDust(1),
+ 100,
+ 30);
+
}
diff --git a/src/main/java/gtPlusPlus/core/recipe/RECIPES_General.java b/src/main/java/gtPlusPlus/core/recipe/RECIPES_General.java
index 1c95467770..caafbccf29 100644
--- a/src/main/java/gtPlusPlus/core/recipe/RECIPES_General.java
+++ b/src/main/java/gtPlusPlus/core/recipe/RECIPES_General.java
@@ -17,6 +17,7 @@ import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.lib.LoadedMods;
import gtPlusPlus.core.material.ALLOY;
import gtPlusPlus.core.material.ELEMENT;
+import gtPlusPlus.core.material.MISC_MATERIALS;
import gtPlusPlus.core.recipe.common.CI;
import gtPlusPlus.core.util.minecraft.*;
import gtPlusPlus.core.util.minecraft.gregtech.PollutionUtils;
@@ -28,6 +29,7 @@ import gtPlusPlus.xmod.gregtech.common.helpers.VolumetricFlaskHelper;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
+import net.minecraftforge.oredict.OreDictionary;
public class RECIPES_General {
@@ -110,6 +112,25 @@ public class RECIPES_General {
}
+ if (OreDictionary.doesOreNameExist("dustPotassiumNitrade")) {
+ ItemStack aDustKNO3 = ItemUtils.getItemStackOfAmountFromOreDict("dustPotassiumNitrade", 1);
+ ItemStack aDustGtppKNO3 = MISC_MATERIALS.POTASSIUM_NITRATE.getDust(1);
+ if (RecipeUtils.addShapedRecipe(
+ null, null, null,
+ null, "dustPotassiumNitrade", null,
+ null, null, null,
+ ItemUtils.getSimpleStack(aDustGtppKNO3, 1))) {
+ Logger.INFO("Add conversion recipe (GT Potassium Nitrade -> GT++ Potassium Nitrate)");
+ }
+ if (RecipeUtils.addShapedRecipe(
+ null, null, null,
+ null, "dustPotassiumNitrate", null,
+ null, null, null,
+ ItemUtils.getSimpleStack(aDustKNO3, 1))) {
+ Logger.INFO("Add conversion recipe (GT++ Potassium Nitrate -> GT Potassium Nitrade)");
+ }
+ }
+
//Rainforest oak Sapling
if (RecipeUtils.addShapedRecipe(
"stickWood", "stickWood", "stickWood",
diff --git a/src/main/java/gtPlusPlus/nei/GT_NEI_MultiSolarTower.java b/src/main/java/gtPlusPlus/nei/GT_NEI_MultiSolarTower.java
new file mode 100644
index 0000000000..e5666d84b4
--- /dev/null
+++ b/src/main/java/gtPlusPlus/nei/GT_NEI_MultiSolarTower.java
@@ -0,0 +1,36 @@
+package gtPlusPlus.nei;
+
+import static gregtech.api.enums.GT_Values.RES_PATH_GUI;
+
+import codechicken.nei.recipe.TemplateRecipeHandler;
+import gregtech.api.util.GT_Recipe.GT_Recipe_Map;
+import gtPlusPlus.core.util.math.MathUtils;
+
+public class GT_NEI_MultiSolarTower extends GT_NEI_MultiNoCell {
+
+ public GT_NEI_MultiSolarTower(GT_Recipe_Map aMap) {
+ super(aMap);
+ }
+
+ @Override
+ public TemplateRecipeHandler newInstance() {
+ return new GT_NEI_MultiSolarTower(mRecipeMap);
+ }
+
+ @Override
+ public String getGuiTexture() {
+ return RES_PATH_GUI + "basicmachines/FissionFuel.png";
+ }
+
+ @Override
+ public void drawExtras(final int aRecipeIndex) {
+ final int tDuration = ((CachedDefaultRecipe) this.arecipes.get(aRecipeIndex)).mRecipe.mDuration;
+ if (tDuration > 0) {
+ drawText(10, 90, "Time: " + (tDuration < 20 ? "< 1" : MathUtils.formatNumbers(Integer.valueOf(tDuration / 20))) + " secs", -16777216);
+ }
+ drawText(5, 100, "Solar Heater rings boost tier", -16777216);
+ drawText(5, 110, "R1:T1, R2:T2, R3:T4, R4:T8, R5:T16", -16777216);
+ drawText(5, 120, "Input Amount = 1000 x T", -16777216);
+ }
+
+}
diff --git a/src/main/java/gtPlusPlus/nei/NEI_GT_Config.java b/src/main/java/gtPlusPlus/nei/NEI_GT_Config.java
index c566301e4e..3686cd5dba 100644
--- a/src/main/java/gtPlusPlus/nei/NEI_GT_Config.java
+++ b/src/main/java/gtPlusPlus/nei/NEI_GT_Config.java
@@ -33,6 +33,8 @@ implements IConfigureNEI {
mUniqueRecipeMapHandling.add(GTPP_Recipe_Map.sMultiblockElectrolyzerRecipes_GT.mUnlocalizedName);
mUniqueRecipeMapHandling.add(GTPP_Recipe_Map.sMultiblockMixerRecipes_GT.mUnlocalizedName);
mUniqueRecipeMapHandling.add(GTPP_Recipe_Map.sAlloyBlastSmelterRecipes.mUnlocalizedName);
+ mUniqueRecipeMapHandling.add(GTPP_Recipe_Map.sThermalFuels.mUnlocalizedName);
+ mUniqueRecipeMapHandling.add(GTPP_Recipe_Map.sSolarTowerRecipes.mUnlocalizedName);
// Standard GT Recipe Maps
Logger.INFO("NEI Registration: "+GTPP_Recipe_Map_Internal.sMappingsEx.size()+" sMappingEx");
@@ -65,6 +67,10 @@ implements IConfigureNEI {
new GT_NEI_MultiNoCell(GTPP_Recipe_Map.sFissionFuelProcessing);
Logger.INFO("NEI Registration: Registering NEI handler for "+GTPP_Recipe_Map.sVacuumFurnaceRecipes.mNEIName);
new GT_NEI_MultiNoCell(GTPP_Recipe_Map.sVacuumFurnaceRecipes);
+ Logger.INFO("NEI Registration: Registering NEI handler for "+GTPP_Recipe_Map.sThermalFuels.mNEIName);
+ new GT_NEI_MultiNoCell(GTPP_Recipe_Map.sThermalFuels);
+ Logger.INFO("NEI Registration: Registering NEI handler for "+GTPP_Recipe_Map.sSolarTowerRecipes.mNEIName);
+ new GT_NEI_MultiSolarTower(GTPP_Recipe_Map.sSolarTowerRecipes);
Logger.INFO("NEI Registration: Registering NEI handler for "+GTPP_Recipe_Map.sAdvFreezerRecipes_GT.mNEIName);
new GT_NEI_MultiNoCell(GTPP_Recipe_Map.sAdvFreezerRecipes_GT);
Logger.INFO("NEI Registration: Registering NEI handler for "+GTPP_Recipe_Map.sMultiblockCentrifugeRecipes_GT.mNEIName);
diff --git a/src/main/java/gtPlusPlus/nei/NEI_IMC_Sender.java b/src/main/java/gtPlusPlus/nei/NEI_IMC_Sender.java
index 382d52cc9b..325345fc05 100644
--- a/src/main/java/gtPlusPlus/nei/NEI_IMC_Sender.java
+++ b/src/main/java/gtPlusPlus/nei/NEI_IMC_Sender.java
@@ -24,6 +24,8 @@ public class NEI_IMC_Sender {
setNBTInfoAndSendIt("gtpp.recipe.multielectro", "gregtech:gt.blockmachines:796", 1);
setNBTInfoAndSendIt("gtpp.recipe.simplewasher", "gregtech:gt.blockmachines:767");
setNBTInfoAndSendIt("gtpp.recipe.vacfurnace", "gregtech:gt.blockmachines:995", 1);
+ setNBTInfoAndSendIt("gtpp.recipe.thermalgeneratorfuel", "gregtech:gt.blockmachines:875", 1);
+ setNBTInfoAndSendIt("gtpp.recipe.solartower", "gregtech:gt.blockmachines:863", 1);
setNBTInfoAndSendIt("gtpp.recipe.fissionfuel", "gregtech:gt.blockmachines:835", 1);
setNBTInfoAndSendIt("gtpp.recipe.lftr", "gregtech:gt.blockmachines:751", 1);
setNBTInfoAndSendIt("gtpp.recipe.lftr.sparging", "gregtech:gt.blockmachines:31035", 1);
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java b/src/main/java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java
index cd8b5d3151..fd5d1fcff2 100644
--- a/src/main/java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java
+++ b/src/main/java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java
@@ -301,7 +301,7 @@ public enum GregtechItemList implements GregtechItemContainer {
//Tesla Tower
- /*TelsaTower,*/
+ TelsaTower,
Casing_TeslaTower,
@@ -334,7 +334,7 @@ public enum GregtechItemList implements GregtechItemContainer {
Machine_Adv_DistillationTower,
//Advanced Assembly Line
- /*Machine_Adv_AssemblyLine,*/
+ Machine_Adv_AssemblyLine,
//Advanced Vacuum Freezer
Industrial_Cryogenic_Freezer,
@@ -363,7 +363,7 @@ public enum GregtechItemList implements GregtechItemContainer {
Casing_Industrial_Arc_Furnace,
//Solar Tower
- /*Industrial_Solar_Tower,*/
+ Industrial_Solar_Tower,
Casing_SolarTower_Structural,
Casing_SolarTower_SaltContainment,
Casing_SolarTower_HeatContainment,
@@ -571,7 +571,7 @@ public enum GregtechItemList implements GregtechItemContainer {
SimpleDustWasher_UV,
//Solar Tower Reflector
- /*Solar_Tower_Reflector,*/
+ Solar_Tower_Reflector,
//Super Tier Chests
Super_Chest_LV, Super_Chest_MV, Super_Chest_HV, Super_Chest_EV, Super_Chest_IV,
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/blocks/GregtechMetaCasingBlocks4.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/blocks/GregtechMetaCasingBlocks4.java
index 419b5f3d30..13eb045748 100644
--- a/src/main/java/gtPlusPlus/xmod/gregtech/common/blocks/GregtechMetaCasingBlocks4.java
+++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/blocks/GregtechMetaCasingBlocks4.java
@@ -21,7 +21,7 @@ extends GregtechMetaCasingBlocksAbstract {
public GregtechMetaCasingBlocks4() {
super(GregtechMetaCasingItems.class, "gtplusplus.blockcasings.4", GT_Material_Casings.INSTANCE);
for (byte i = 0; i < 16; i = (byte) (i + 1)) {
- if (i == 2 || i == 4 || i == 5 || i == 6 || i == 7 || i == 8 || i == 9 || i == 12 || i == 13 || i == 14 || i == 15) {
+ if (i == 2 || i == 4 || i == 5 || i == 6 || i == 7 || i == 8 || i == 12 || i == 13 || i == 14 || i == 15) {
continue;
}
TAE.registerTexture(3, i, new GT_CopiedBlockTexture(this, 6, i));
@@ -87,7 +87,7 @@ extends GregtechMetaCasingBlocksAbstract {
case 8:
return Textures.BlockIcons.RENDERING_ERROR.getIcon();
case 9:
- return Textures.BlockIcons.RENDERING_ERROR.getIcon();
+ return TexturesGtBlock.Casing_Material_MaragingSteel.getIcon();
case 10:
if (aSide <2) {
return TexturesGtBlock.TEXTURE_STONE_RED_B.getIcon();
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/misc/GregtechMTE_TeslaTower.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/misc/GregtechMTE_TeslaTower.java
index 7ddf16b36f..b5c07ecd95 100644
--- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/misc/GregtechMTE_TeslaTower.java
+++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/misc/GregtechMTE_TeslaTower.java
@@ -1,18 +1,13 @@
-/*
package gtPlusPlus.xmod.gregtech.common.tileentities.machines.multi.misc;
-import static gregtech.api.enums.GT_Values.*;
+import static gregtech.api.enums.GT_Values.W;
-import java.util.*;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
-import net.minecraft.block.Block;
-import net.minecraft.entity.Entity;
-import net.minecraft.entity.EntityLiving;
-import net.minecraft.entity.item.EntityItem;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.item.ItemStack;
-import net.minecraft.nbt.NBTTagCompound;
-import net.minecraft.world.World;
+import com.gtnewhorizon.structurelib.structure.IStructureDefinition;
import gregtech.api.GregTech_API;
import gregtech.api.enums.Materials;
@@ -23,21 +18,28 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy;
import gregtech.api.objects.GT_RenderedTexture;
+import gregtech.api.util.GT_Multiblock_Tooltip_Builder;
import gregtech.api.util.GT_Utility;
-
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.api.objects.data.Pair;
import gtPlusPlus.core.block.ModBlocks;
import gtPlusPlus.core.entity.EntityTeslaTowerLightning;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.util.Utils;
-import gtPlusPlus.core.util.minecraft.MaterialUtils;
import gtPlusPlus.core.util.minecraft.PlayerUtils;
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.Entity;
+import net.minecraft.entity.EntityLiving;
+import net.minecraft.entity.item.EntityItem;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
-public class GregtechMTE_TeslaTower extends GregtechMeta_MultiBlockBase {
+public class GregtechMTE_TeslaTower extends GregtechMeta_MultiBlockBase<GregtechMTE_TeslaTower> {
private Block casingBlock;
private int casingMeta;
@@ -49,12 +51,12 @@ public class GregtechMTE_TeslaTower extends GregtechMeta_MultiBlockBase {
private int xLoc, yLoc, zLoc;
protected int mRange;
- */
-/**
+
+ /**
* Machine Mode,
* {@value false} Attacks all entities,
* {@value true} Only attacks players.
- *//*
+ */
protected volatile boolean mMode = false;
@@ -88,7 +90,7 @@ public class GregtechMTE_TeslaTower extends GregtechMeta_MultiBlockBase {
return null;
}
- @Override
+ /*@Override
public String[] getTooltip() {
String casings = getCasingBlockItem().get(0).getDisplayName();
return new String[]{
@@ -102,13 +104,33 @@ public class GregtechMTE_TeslaTower extends GregtechMeta_MultiBlockBase {
"1x3x1 " + MaterialUtils.getMaterialName(getFrameMaterial()) + " Frame Boxes (Each pillar side and on top)",
"1x Maintenance Hatch (One of base casings)",
"1x " + VN[getMinTier()] + "+ Energy Hatch (Any bottom layer casing)"};
+ }*/
+
+ @Override
+ protected final GT_Multiblock_Tooltip_Builder createTooltip() {
+ GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder();
+ tt.addMachineType(getMachineType())
+ .addInfo("Controller Block for the Tesla Defence Tower Mk3200")
+ .addInfo("Enemies within "+this.mRange+"m are blasted with a high energy plasma.")
+ .addInfo("This uses 5,000,000EU per blast.")
+ .addInfo("Can screwdriver to toggle mode between Players and all Entities.")
+ .addSeparator()
+ .beginStructureBlock(1, 7, 1, false)
+ .addController("Top Middle")
+ .addCasingInfo("Casing", 360)
+ .addOtherStructurePart("Rotor Assembly", "Any 1 dot hint", 1)
+ .addInputBus("Any 4 dot hint (min 1)", 4)
+ .addInputHatch("Any 4 dot hint(min 1)", 4)
+ .addOutputHatch("Any 4 dot hint(min 1)", 4)
+ .addEnergyHatch("Any 4 dot hint(min 1)", 4)
+ .addMaintenanceHatch("Any 4 dot hint(min 1)", 4)
+ .toolTipFinisher(CORE.GT_Tooltip_Builder);
+ return tt;
}
private final void initFields() {
casingBlock = ModBlocks.blockCasings2Misc;
casingMeta = getCasingBlockItem().get(0).getItemDamage();
- int frameId = 4096 + getFrameMaterial().mMetaItemSubID;
- frameMeta = GregTech_API.METATILEENTITIES[frameId] != null ? GregTech_API.METATILEENTITIES[frameId].getTileEntityBaseType() : W;
casingTextureIndex = getCasingTextureIndex();
mRange = 50;
}
@@ -144,26 +166,24 @@ public class GregtechMTE_TeslaTower extends GregtechMeta_MultiBlockBase {
@Override
public boolean checkRecipe(ItemStack aStack) {
- */
-/*if (!isEnergyEnough()) {
+
+ if (!isEnergyEnough()) {
this.mProgresstime = 0;
this.mMaxProgresstime = 20;
this.getBaseMetaTileEntity().setActive(false);
stopMachine();
}
- else {*//*
-*/
-/*
+ else {
this.mProgresstime = 1;
this.mMaxProgresstime = 100;
- this.getBaseMetaTileEntity().setActive(true);*//*
+ this.getBaseMetaTileEntity().setActive(true);
- //}
+ }
return false;
}
@Override
- public boolean checkMultiblock(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) {
+ public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) {
updateCoordinates();
//check base layer