aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/core
diff options
context:
space:
mode:
authorAlkalus <3060479+draknyte1@users.noreply.github.com>2018-09-15 00:47:45 +1000
committerAlkalus <3060479+draknyte1@users.noreply.github.com>2018-09-15 00:47:45 +1000
commit26f4a010b9caa2d892f7b7f42bd4eafb313082aa (patch)
tree420e9669981c5f4efa74484d5cac3f9b9de32478 /src/Java/gtPlusPlus/core
parent678a32be304bcffe457cf869ba6c5d57bdc1b2e1 (diff)
downloadGT5-Unofficial-26f4a010b9caa2d892f7b7f42bd4eafb313082aa.tar.gz
GT5-Unofficial-26f4a010b9caa2d892f7b7f42bd4eafb313082aa.tar.bz2
GT5-Unofficial-26f4a010b9caa2d892f7b7f42bd4eafb313082aa.zip
+ Added custom doors.
+ Added new Rocket Fuels and various chemical compounds to produce them. + Added an ASM fix that removes Diesel and EIO/GC Rocket Fuel from GC and allows use of all 4 GT++ fuels instead. % Reworked Rocket Engine generators, to now use new fuels and produce heavy pollution. $ Fixed bug that could corrupt the Fluid Registry.
Diffstat (limited to 'src/Java/gtPlusPlus/core')
-rw-r--r--src/Java/gtPlusPlus/core/block/ModBlocks.java12
-rw-r--r--src/Java/gtPlusPlus/core/block/general/PlayerDoors.java116
-rw-r--r--src/Java/gtPlusPlus/core/item/ModItems.java4
-rw-r--r--src/Java/gtPlusPlus/core/item/base/ingots/BaseItemIngotHot.java3
-rw-r--r--src/Java/gtPlusPlus/core/item/chemistry/RocketFuels.java477
-rw-r--r--src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java2
-rw-r--r--src/Java/gtPlusPlus/core/tileentities/general/TileEntityPlayerDoorBase.java87
-rw-r--r--src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java46
8 files changed, 719 insertions, 28 deletions
diff --git a/src/Java/gtPlusPlus/core/block/ModBlocks.java b/src/Java/gtPlusPlus/core/block/ModBlocks.java
index f958dc27d7..35dd65a8f1 100644
--- a/src/Java/gtPlusPlus/core/block/ModBlocks.java
+++ b/src/Java/gtPlusPlus/core/block/ModBlocks.java
@@ -64,6 +64,12 @@ public final class ModBlocks {
public static Block blockXpConverter;
public static Block blockCompressedObsidian;
public static Block blockNet;
+
+ public static Block blockPlayerDoorWooden;
+ public static Block blockPlayerDoorIron;
+ public static Block blockPlayerDoorCustom_Glass;
+ public static Block blockPlayerDoorCustom_Ice;
+ public static Block blockPlayerDoorCustom_Cactus;
public static Block blockCustomMobSpawner;
@@ -102,6 +108,12 @@ public final class ModBlocks {
blockFakeMiningPipe = new Mining_Pipe_Fake();
blockFakeMiningHead = new Mining_Head_Fake();
+
+ blockPlayerDoorWooden = new PlayerDoors(Material.wood, "door_wood", true);
+ blockPlayerDoorIron = new PlayerDoors(Material.iron, "door_iron", true);
+ blockPlayerDoorCustom_Glass = new PlayerDoors(Material.glass, "door_glass", false);
+ blockPlayerDoorCustom_Ice = new PlayerDoors(Material.ice, "door_ice", false);
+ blockPlayerDoorCustom_Cactus = new PlayerDoors(Material.cactus, "door_cactus", false);
}
diff --git a/src/Java/gtPlusPlus/core/block/general/PlayerDoors.java b/src/Java/gtPlusPlus/core/block/general/PlayerDoors.java
new file mode 100644
index 0000000000..ce28520862
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/block/general/PlayerDoors.java
@@ -0,0 +1,116 @@
+package gtPlusPlus.core.block.general;
+
+import java.util.ArrayList;
+import java.util.Random;
+
+import cpw.mods.fml.common.registry.GameRegistry;
+import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.core.tileentities.general.TileEntityPlayerDoorBase;
+import gtPlusPlus.core.util.Utils;
+import net.minecraft.block.Block;
+import net.minecraft.block.BlockDoor;
+import net.minecraft.block.material.Material;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.world.World;
+
+public class PlayerDoors extends BlockDoor {
+
+ private boolean mHasDrops = true;
+
+ public PlayerDoors(Material aMaterial, String aTextureName, boolean vanillaType) {
+ this (aMaterial, aTextureName, vanillaType, 0f, null, null);
+ }
+
+ public PlayerDoors(Material aMaterial, String aTextureName, boolean vanillaType, float aHardness, SoundType aStepSound, String aBlockExtensionName) {
+ super(aMaterial);
+ this.disableStats();
+ this.setBlockName("playerDoor_"+aTextureName);
+ if (aMaterial == Material.wood) {
+ setHardness(3.0F);
+ setStepSound(soundTypeWood);
+ setBlockName("playerDoor"+"Wood");
+ this.setHarvestLevel("axe", 1);
+ }
+ else if (aMaterial == Material.iron) {
+ setHardness(5.0F);
+ setStepSound(Block.soundTypeMetal);
+ setBlockName("playerDoor"+"Iron");
+ this.setHarvestLevel("pickaxe", 1);
+
+ }
+ else if (aMaterial == Material.glass) {
+ setHardness(0.1F);
+ setStepSound(Block.soundTypeGlass);
+ setBlockName("playerDoor"+"Glass");
+ this.setHarvestLevel("pickaxe", 1);
+ mHasDrops = false;
+
+ }
+ else if (aMaterial == Material.ice) {
+ setHardness(0.5F);
+ setStepSound(Block.soundTypeSnow);
+ setBlockName("playerDoor"+"Ice");
+ this.setHarvestLevel("pickaxe", 1);
+ mHasDrops = false;
+
+ }
+ else {
+ setHardness(aHardness);
+ setStepSound(aStepSound);
+ setBlockName("playerDoor"+aBlockExtensionName);
+ this.setHarvestLevel("axe", 1);
+
+ }
+ this.setBlockTextureName(vanillaType ? aTextureName : CORE.MODID+":"+aTextureName);
+ GameRegistry.registerBlock(this, Utils.sanitizeString(this.getUnlocalizedName()));
+ }
+
+ @Override
+ public TileEntity createTileEntity(World world, int metadata) {
+ return new TileEntityPlayerDoorBase(this, metadata);
+ }
+
+ @Override
+ public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) {
+ // TODO Auto-generated method stub
+ return super.getItemDropped(p_149650_1_, p_149650_2_, p_149650_3_);
+ }
+
+ @Override
+ public Item getItem(World p_149694_1_, int p_149694_2_, int p_149694_3_, int p_149694_4_) {
+ // TODO Auto-generated method stub
+ return super.getItem(p_149694_1_, p_149694_2_, p_149694_3_, p_149694_4_);
+ }
+
+ @Override
+ public void onBlockHarvested(World p_149681_1_, int p_149681_2_, int p_149681_3_, int p_149681_4_, int p_149681_5_,
+ EntityPlayer p_149681_6_) {
+ // TODO Auto-generated method stub
+ super.onBlockHarvested(p_149681_1_, p_149681_2_, p_149681_3_, p_149681_4_, p_149681_5_, p_149681_6_);
+ }
+
+ @Override
+ public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_,
+ int p_149749_6_) {
+ // TODO Auto-generated method stub
+ super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_);
+ }
+
+ @Override
+ protected void dropBlockAsItem(World p_149642_1_, int p_149642_2_, int p_149642_3_, int p_149642_4_,
+ ItemStack p_149642_5_) {
+ // TODO Auto-generated method stub
+ super.dropBlockAsItem(p_149642_1_, p_149642_2_, p_149642_3_, p_149642_4_, p_149642_5_);
+ }
+
+ @Override
+ public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int metadata, int fortune) {
+ return mHasDrops ? super.getDrops(world, x, y, z, metadata, fortune) : new ArrayList<ItemStack>();
+ }
+
+
+
+}
diff --git a/src/Java/gtPlusPlus/core/item/ModItems.java b/src/Java/gtPlusPlus/core/item/ModItems.java
index 78cea37735..02ddf9280b 100644
--- a/src/Java/gtPlusPlus/core/item/ModItems.java
+++ b/src/Java/gtPlusPlus/core/item/ModItems.java
@@ -33,6 +33,7 @@ import gtPlusPlus.core.item.bauble.HealthBoostBauble;
import gtPlusPlus.core.item.bauble.ModularBauble;
import gtPlusPlus.core.item.chemistry.CoalTar;
import gtPlusPlus.core.item.chemistry.NuclearChem;
+import gtPlusPlus.core.item.chemistry.RocketFuels;
import gtPlusPlus.core.item.effects.RarityUncommon;
import gtPlusPlus.core.item.general.*;
import gtPlusPlus.core.item.general.books.ItemBaseBook;
@@ -603,7 +604,7 @@ public final class ModItems {
//Zirconium Tetrafluoride
GT_OreDictUnificator.registerOre("cellZrF4", ItemUtils.getItemStackOfAmountFromOreDict("cellZirconiumTetrafluoride", 1));
GT_OreDictUnificator.registerOre("dustZrF4", ItemUtils.getItemStackOfAmountFromOreDict("dustZirconiumTetrafluoride", 1));
- FluidUtils.generateFluid("ZirconiumTetrafluoride", "Zirconium Tetrafluoride [ZrF4]", 500, new short[]{170, 170, 140, 100}); //https://en.wikipedia.org/wiki/Zirconium_tetrafluoride
+ FluidUtils.generateFluidNoPrefix("ZirconiumTetrafluoride", "Zirconium Tetrafluoride", 500, new short[]{170, 170, 140, 100}); //https://en.wikipedia.org/wiki/Zirconium_tetrafluoride
//Coolant Salt
//NaBF4 - NaF - 621C
@@ -749,6 +750,7 @@ public final class ModItems {
//Chemistry
CoalTar.run();
+ RocketFuels.run();
//Nuclear Processing
NuclearChem.run();
diff --git a/src/Java/gtPlusPlus/core/item/base/ingots/BaseItemIngotHot.java b/src/Java/gtPlusPlus/core/item/base/ingots/BaseItemIngotHot.java
index a6206e7e08..555164229b 100644
--- a/src/Java/gtPlusPlus/core/item/base/ingots/BaseItemIngotHot.java
+++ b/src/Java/gtPlusPlus/core/item/base/ingots/BaseItemIngotHot.java
@@ -39,7 +39,8 @@ public class BaseItemIngotHot extends BaseItemIngot{
@Override
public String getItemStackDisplayName(final ItemStack p_77653_1_) {
- return ("Hot "+this.materialName+ " Ingot");
+ return super.getItemStackDisplayName(p_77653_1_);
+ //return ("Hot "+this.materialName+ " Ingot");
}
@Override
diff --git a/src/Java/gtPlusPlus/core/item/chemistry/RocketFuels.java b/src/Java/gtPlusPlus/core/item/chemistry/RocketFuels.java
new file mode 100644
index 0000000000..82c546d699
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/item/chemistry/RocketFuels.java
@@ -0,0 +1,477 @@
+package gtPlusPlus.core.item.chemistry;
+
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+
+import java.util.HashMap;
+import java.util.HashSet;
+
+import gregtech.api.enums.GT_Values;
+import gregtech.api.util.Recipe_GT;
+import gtPlusPlus.api.objects.data.AutoMap;
+import gtPlusPlus.core.item.ModItems;
+import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.core.recipe.common.CI;
+import gtPlusPlus.core.util.Utils;
+import gtPlusPlus.core.util.minecraft.FluidUtils;
+import gtPlusPlus.core.util.minecraft.ItemUtils;
+import net.minecraftforge.fluids.Fluid;
+import net.minecraftforge.fluids.FluidStack;
+
+public class RocketFuels {
+
+ public static HashSet<String> mValidRocketFuelNames = new HashSet<String>();
+ public static HashMap<Integer, Fluid> mValidRocketFuels = new HashMap<Integer, Fluid>();
+
+ public static Fluid Kerosene;
+ public static Fluid RP1;
+ public static Fluid Nitrogen_Tetroxide;
+ public static Fluid Hydrazine;
+ public static Fluid Monomethylhydrazine;
+ public static Fluid Unsymmetrical_Dimethylhydrazine;
+ public static Fluid Nitrous_Oxide;
+ public static Fluid Hydrated_Ammonium_Nitrate_Slurry;
+ public static Fluid Liquid_Oxygen;
+ public static Fluid Formaldehyde;
+
+
+ //Rocket Fuel Mixs
+ public static Fluid Unsymmetrical_Dimethylhydrazine_Plus_Nitrogen_Tetroxide;
+ public static Fluid RP1_Plus_Liquid_Oxygen;
+ public static Fluid Dense_Hydrazine_Mix;
+ public static Fluid Monomethylhydrazine_Plus_Nitric_Acid;
+
+ public static Item Ammonium_Nitrate_Dust;
+ public static Item Formaldehyde_Catalyst;
+
+ public static void run(){
+
+ //Create Kerosene
+ Kerosene = FluidUtils.generateFluidNonMolten("Kerosene", "Kerosene", 500, new short[]{150, 40, 150, 100}, null, null);
+
+ //RP! Focket Fuel
+ RP1 = FluidUtils.generateFluidNonMolten("RP1Fuel", "RP-1 Rocket Fuel", 500, new short[]{210, 50, 50, 100}, null, null);
+
+ //Create Nitrogen Tetroxide
+ Nitrogen_Tetroxide = FluidUtils.generateFluidNonMolten("NitrogenTetroxide", "Nitrogen Tetroxide", -11, new short[]{170, 170, 0, 100}, null, null);
+
+ //Create Hydrazine
+ Hydrazine = FluidUtils.generateFluidNonMolten("Hydrazine", "Hydrazine", 2, new short[]{250, 250, 250, 100}, null, null);
+
+ //Create Monomethylhydrazine
+ Monomethylhydrazine = FluidUtils.generateFluidNonMolten("Monomethylhydrazine", "Monomethylhydrazine", -52, new short[]{125, 125, 125, 100}, null, null);
+
+ //Create Anthracene
+ Nitrous_Oxide = FluidUtils.generateFluidNonMolten("NitrousOxide", "Nitrous Oxide", -91, new short[]{255, 255, 255, 100}, null, null);
+
+ //Unsymmetrical_Dimethylhydrazine
+ if (FluidUtils.getFluidStack("1,1dimethylhydrazine", 1) == null){
+ Unsymmetrical_Dimethylhydrazine = FluidUtils.generateFluidNonMolten("UnsymmetricalDimethylhydrazine", "Unsymmetrical Dimethylhydrazine", -57, new short[]{70, 210, 20, 100}, null, null);
+ }
+ else {
+ Unsymmetrical_Dimethylhydrazine = FluidUtils.getFluidStack("1,1dimethylhydrazine", 1000).getFluid();
+ }
+
+ //Create Hydrated_Ammonium_Nitrate_Slurry
+ Hydrated_Ammonium_Nitrate_Slurry = FluidUtils.generateFluidNonMolten("AmmoniumNitrateSlurry", "Hydrated Ammonium Nitrate Slurry", 450, new short[]{150, 75, 150, 100}, null, null);
+
+ //Lithium Hydroperoxide - LiOH + H2O2 → LiOOH + 2 H2O
+ Ammonium_Nitrate_Dust = ItemUtils.generateSpecialUseDusts("AmmoniumNitrate", "Ammonium Nitrate", "N2H4O3", Utils.rgbtoHexValue(150, 75, 150))[0];
+
+ //Create Liquid_Oxygen
+ if (FluidUtils.getFluidStack("LiquidOxygen", 1) == null){
+ Liquid_Oxygen = FluidUtils.generateFluidNonMolten("LiquidOxygen", "Liquid Oxygen", -240, new short[]{75, 75, 220, 100}, null, null);
+ }
+ else {
+ Liquid_Oxygen = FluidUtils.getFluidStack("LiquidOxygen", 1000).getFluid();
+ }
+
+ Formaldehyde = FluidUtils.generateFluidNonMolten("Formaldehyde", "Formaldehyde", -92, new short[]{150, 75, 150, 100}, null, null);
+
+ Formaldehyde_Catalyst = ItemUtils.generateSpecialUseDusts("FormaldehydeCatalyst", "Formaldehyde Catalyst", "Fe16V1", Utils.rgbtoHexValue(25, 5, 25))[0];
+
+
+ Unsymmetrical_Dimethylhydrazine_Plus_Nitrogen_Tetroxide = FluidUtils.generateFluidNonMolten("RocketFuelMixA", "H2NN(CH3)2N2O4 Rocket Fuel", -185, new short[]{50, 220, 50, 100}, null, null);
+ RP1_Plus_Liquid_Oxygen = FluidUtils.generateFluidNonMolten("RocketFuelMixB", "Rp-1 Fuel Mixture", -250, new short[]{250, 50, 50, 100}, null, null);
+ Monomethylhydrazine_Plus_Nitric_Acid = FluidUtils.generateFluidNonMolten("RocketFuelMixC", "CN3H7O3 Rocket Fuel", -300, new short[]{125, 75, 180, 100}, null, null);
+ Dense_Hydrazine_Mix = FluidUtils.generateFluidNonMolten("RocketFuelMixD", "Dense Hydrazine Fuel Mixture", -250, new short[]{175, 80, 120, 100}, null, null);
+
+
+
+ createRecipes();
+
+
+ }
+
+ private static void createRecipes() {
+ createKorosene();
+ createRP1();
+ createNitrogenTetroxide();
+ createHydrazine();
+ createMonomethylhydrazine();
+
+ if (!CORE.GTNH) {
+ createLOX();
+ }
+
+
+ createHydratedAmmoniumNitrateSlurry();
+ createAmmoniumNitrateDust();
+ createFormaldehyde();
+ createFormaldehydeCatalyst();
+ createUnsymmetricalDimethylhydrazine();
+
+ createRocketFuels();
+ addRocketFuelsToMap();
+
+ }
+
+ public static void createKorosene(){
+ FluidStack fuelA = FluidUtils.getFluidStack("diesel", 400);
+ FluidStack fuelB = FluidUtils.getFluidStack("fuel", 400);
+ if (fuelA != null){
+ GT_Values.RA.addDistilleryRecipe(23, fuelA, FluidUtils.getFluidStack(Kerosene, 50), 200, 64, false);
+ }
+ if (fuelA == null && fuelB != null){
+ GT_Values.RA.addDistilleryRecipe(23, fuelB, FluidUtils.getFluidStack(Kerosene, 50), 200, 64, false);
+ }
+ }
+
+ public static void createRP1(){
+ FluidStack fuelA = FluidUtils.getFluidStack(Kerosene, 100);
+ if (fuelA != null){
+ GT_Values.RA.addDistilleryRecipe(23, fuelA, FluidUtils.getFluidStack(RP1, 25), 400, 120, false);
+ }
+ }
+
+ public static void createNitrogenTetroxide(){
+ CORE.RA.addDehydratorRecipe(
+ new ItemStack[]{
+ ItemUtils.getItemStackOfAmountFromOreDict("dustCopper", 4)
+ },
+ FluidUtils.getFluidStack("nitricacid", 2000),
+ FluidUtils.getFluidStack(Nitrogen_Tetroxide, 450),
+ new ItemStack[]{
+ ItemUtils.getItemStackOfAmountFromOreDict("dustTinyAsh", 1),
+ ItemUtils.getItemStackOfAmountFromOreDict("dustTinyDarkAsh", 1)
+ },
+ new int[]{100, 50},
+ 20*16,
+ 500);
+ }
+
+ public static void createHydrazine(){
+ GT_Values.RA.addChemicalRecipe(
+ ItemUtils.getItemStackOfAmountFromOreDict("cellAmmonia", 2),
+ CI.getNumberedCircuit(23),
+ FluidUtils.getFluidStack("fluid.hydrogenperoxide", 2000),
+ FluidUtils.getFluidStack(Hydrazine, 2000),
+ ItemUtils.getItemStackOfAmountFromOreDict("cellWater", 2),
+ 20*32);
+
+ GT_Values.RA.addChemicalRecipe(
+ ItemUtils.getItemStackOfAmountFromOreDict("cellHydrogenPeroxide", 2),
+ CI.getNumberedCircuit(23),
+ FluidUtils.getFluidStack("ammonia", 2000),
+ FluidUtils.getFluidStack(Hydrazine, 2000),
+ ItemUtils.getItemStackOfAmountFromOreDict("cellWater", 2),
+ 20*32);
+ }
+
+
+ public static void createMonomethylhydrazine(){
+ CORE.RA.addDehydratorRecipe(
+ new ItemStack[] {
+ ItemUtils.getItemStackOfAmountFromOreDict("cellHydrazine", 2),
+ ItemUtils.getItemStackOfAmountFromOreDict("dustCarbon", 2)
+ },
+ FluidUtils.getFluidStack("hydrogen", 2000),
+ FluidUtils.getFluidStack(Monomethylhydrazine, 3000),
+ new ItemStack[] {
+ CI.emptyCells(4)
+ },
+ new int[] {10000},
+ 20*48,
+ 240);
+
+ }
+
+ private static void createLOX() {
+ GT_Values.RA.addVacuumFreezerRecipe(ItemUtils.getItemStackOfAmountFromOreDict("cellOxygen", 1), ItemUtils.getItemStackOfAmountFromOreDict("cellLiquidOxygen", 1), 20*16);
+ CORE.RA.addAdvancedFreezerRecipe(new ItemStack[] {}, new FluidStack[] {FluidUtils.getFluidStack("oxygen", 3000)}, new FluidStack[] {FluidUtils.getFluidStack(Liquid_Oxygen, 3000)}, new ItemStack[] {}, new int[] {}, 20*16, 240, 0);
+
+ }
+
+ private static void createHydratedAmmoniumNitrateSlurry() {
+ GT_Values.RA.addChemicalRecipe(
+ ItemUtils.getItemStackOfAmountFromOreDict("cellAmmonia", 8),
+ ItemUtils.getItemStackOfAmountFromOreDict("cellNitricAcid", 8),
+ null,
+ FluidUtils.getFluidStack(Hydrated_Ammonium_Nitrate_Slurry, 22*144),
+ null,
+ 48*16);
+
+ }
+
+ private static void createAmmoniumNitrateDust() {
+ CORE.RA.addDehydratorRecipe(
+ new ItemStack[] {CI.getNumberedCircuit(8)},
+ FluidUtils.getFluidStack(Hydrated_Ammonium_Nitrate_Slurry, 8*144),
+ FluidUtils.getWater(2000),
+ new ItemStack[] {ItemUtils.getSimpleStack(Ammonium_Nitrate_Dust, 8)},
+ new int[] {10000},
+ 90*20,
+ 500);
+
+ }
+
+ private static void createFormaldehyde() {
+ CORE.RA.addDehydratorRecipe(
+ new ItemStack[] {
+ ItemUtils.getSimpleStack(Formaldehyde_Catalyst, 1),
+ ItemUtils.getItemStackOfAmountFromOreDict("cellOxygen", 16)
+ },
+ FluidUtils.getFluidStack("methanol", 32000),
+ FluidUtils.getFluidStack(Formaldehyde, 8000),
+ new ItemStack[] {ItemUtils.getItemStackOfAmountFromOreDict("cellWater", 16)},
+ new int[] {10000},
+ 90*20,
+ 120);
+ }
+
+ private static void createFormaldehydeCatalyst() {
+ GT_Values.RA.addMixerRecipe(
+ ItemUtils.getItemStackOfAmountFromOreDict("dustIron", 16),
+ ItemUtils.getItemStackOfAmountFromOreDict("dustVanadium", 1),
+ CI.getNumberedCircuit(18),
+ null,
+ null,
+ null,
+ ItemUtils.getSimpleStack(Formaldehyde_Catalyst, 4),
+ 160,
+ 30);
+
+ }
+
+ private static void createUnsymmetricalDimethylhydrazine() {
+ GT_Values.RA.addChemicalRecipe(
+ ItemUtils.getItemStackOfAmountFromOreDict("cellHydrazine", 2),
+ ItemUtils.getItemStackOfAmountFromOreDict("cellFormaldehyde", 2),
+ FluidUtils.getFluidStack("hydrogen", 4000),
+ FluidUtils.getFluidStack(Unsymmetrical_Dimethylhydrazine, 1000),
+ ItemUtils.getItemStackOfAmountFromOreDict("cellEmpty", 2),
+ ItemUtils.getItemStackOfAmountFromOreDict("cellWater", 2),
+ 20*60);
+
+ }
+
+ private static void addRocketFuelsToMap() {
+ AutoMap<Recipe_GT> mRocketFuels = new AutoMap<Recipe_GT>();
+ mRocketFuels.put(new Recipe_GT(
+ true,
+ new ItemStack[] {},
+ new ItemStack[] {},
+ null,
+ new int[] {},
+ new FluidStack[] {FluidUtils.getFluidStack(RP1_Plus_Liquid_Oxygen, 1000)},
+ new FluidStack[] {},
+ 0,
+ 0,
+ 256)); //Fuel Value
+
+ mRocketFuels.put(new Recipe_GT(
+ true,
+ new ItemStack[] {},
+ new ItemStack[] {},
+ null,
+ new int[] {},
+ new FluidStack[] {FluidUtils.getFluidStack(Unsymmetrical_Dimethylhydrazine_Plus_Nitrogen_Tetroxide, 1000)},
+ new FluidStack[] {},
+ 0,
+ 0,
+ 1024)); //Fuel Value
+
+ mRocketFuels.put(new Recipe_GT(
+ true,
+ new ItemStack[] {},
+ new ItemStack[] {},
+ null,
+ new int[] {},
+ new FluidStack[] {FluidUtils.getFluidStack(Dense_Hydrazine_Mix, 1000)},
+ new FluidStack[] {},
+ 0,
+ 0,
+ 512)); //Fuel Value
+
+ mRocketFuels.put(new Recipe_GT(
+ true,
+ new ItemStack[] {},
+ new ItemStack[] {},
+ null,
+ new int[] {},
+ new FluidStack[] {FluidUtils.getFluidStack(Monomethylhydrazine_Plus_Nitric_Acid, 1000)},
+ new FluidStack[] {},
+ 0,
+ 0,
+ 768)); //Fuel Value
+
+ int mID = 0;
+ for (Recipe_GT r : mRocketFuels) {
+ if (r != null) {
+ mValidRocketFuelNames.add(r.mFluidInputs[0].getFluid().getName());
+ mValidRocketFuels.put(mID++, r.mFluidInputs[0].getFluid());
+ Recipe_GT.Gregtech_Recipe_Map.sRocketFuels.add(r);
+ }
+ }
+
+ }
+
+
+ private static void createRocketFuels() {
+
+ //Done
+ GT_Values.RA.addCentrifugeRecipe(
+ CI.getNumberedCircuit(23),
+ ItemUtils.getItemStackOfAmountFromOreDict("cellLiquidOxygen", 2),
+ FluidUtils.getFluidStack(RP1, 500),
+ FluidUtils.getFluidStack(RP1_Plus_Liquid_Oxygen, 100),
+ CI.emptyCells(2),
+ null,
+ null,
+ null,
+ null,
+ null,
+ new int[] {10000},
+ 20*32,
+ 480);
+
+ GT_Values.RA.addCentrifugeRecipe(
+ CI.getNumberedCircuit(23),
+ ItemUtils.getItemStackOfAmountFromOreDict("cellRP1Fuel", 1),
+ FluidUtils.getFluidStack(Liquid_Oxygen, 4000),
+ FluidUtils.getFluidStack(RP1_Plus_Liquid_Oxygen, 200),
+ CI.emptyCells(1),
+ null,
+ null,
+ null,
+ null,
+ null,
+ new int[] {10000},
+ 20*64,
+ 480);
+
+ GT_Values.RA.addCentrifugeRecipe(
+ CI.getNumberedCircuit(23),
+ ItemUtils.getItemStackOfAmountFromOreDict("cellNitrogenTetroxide", 2),
+ FluidUtils.getFluidStack(Unsymmetrical_Dimethylhydrazine, 2000),
+ FluidUtils.getFluidStack(Unsymmetrical_Dimethylhydrazine_Plus_Nitrogen_Tetroxide, 1750),
+ CI.emptyCells(2),
+ null,
+ null,
+ null,
+ null,
+ null,
+ new int[] {10000},
+ 20*48,
+ 480);
+
+ ItemStack aCell11dimethylhydrazine = ItemUtils.getItemStackOfAmountFromOreDict("cell1,1Dimethylhydrazine", 2);
+ if (aCell11dimethylhydrazine != null && aCell11dimethylhydrazine.getItem() != ModItems.AAA_Broken) {
+ GT_Values.RA.addCentrifugeRecipe(
+ CI.getNumberedCircuit(23),
+ aCell11dimethylhydrazine,
+ FluidUtils.getFluidStack(Nitrogen_Tetroxide, 2000),
+ FluidUtils.getFluidStack(Unsymmetrical_Dimethylhydrazine_Plus_Nitrogen_Tetroxide, 1750),
+ CI.emptyCells(2),
+ null,
+ null,
+ null,
+ null,
+ null,
+ new int[] {10000},
+ 20*48,
+ 480);
+ }
+ else {
+ GT_Values.RA.addCentrifugeRecipe(
+ CI.getNumberedCircuit(23),
+ ItemUtils.getItemStackOfAmountFromOreDict("cellUnsymmetricalDimethylhydrazine", 2),
+ FluidUtils.getFluidStack(Nitrogen_Tetroxide, 2000),
+ FluidUtils.getFluidStack(Unsymmetrical_Dimethylhydrazine_Plus_Nitrogen_Tetroxide, 1750),
+ CI.emptyCells(2),
+ null,
+ null,
+ null,
+ null,
+ null,
+ new int[] {10000},
+ 20*48,
+ 480);
+ }
+
+
+ GT_Values.RA.addCentrifugeRecipe(
+ CI.getNumberedCircuit(23),
+ ItemUtils.getItemStackOfAmountFromOreDict("cellHydrazine", 4),
+ FluidUtils.getFluidStack("methanol", 6000),
+ FluidUtils.getFluidStack(Dense_Hydrazine_Mix, 10000),
+ CI.emptyCells(4),
+ null,
+ null,
+ null,
+ null,
+ null,
+ new int[] {10000},
+ 20*100,
+ 240);
+
+ GT_Values.RA.addCentrifugeRecipe(
+ CI.getNumberedCircuit(23),
+ ItemUtils.getItemStackOfAmountFromOreDict("cellMethanol", 6),
+ FluidUtils.getFluidStack(Hydrazine, 4000),
+ FluidUtils.getFluidStack(Dense_Hydrazine_Mix, 10000),
+ CI.emptyCells(6),
+ null,
+ null,
+ null,
+ null,
+ null,
+ new int[] {10000},
+ 20*100,
+ 240);
+
+ GT_Values.RA.addCentrifugeRecipe(
+ CI.getNumberedCircuit(23),
+ ItemUtils.getItemStackOfAmountFromOreDict("cellNitricAcid", 1),
+ FluidUtils.getFluidStack(Monomethylhydrazine, 1000),
+ FluidUtils.getFluidStack(Monomethylhydrazine_Plus_Nitric_Acid, 2000),
+ CI.emptyCells(1),
+ null,
+ null,
+ null,
+ null,
+ null,
+ new int[] {10000},
+ 20*32,
+ 240);
+
+ GT_Values.RA.addCentrifugeRecipe(
+ CI.getNumberedCircuit(23),
+ ItemUtils.getItemStackOfAmountFromOreDict("cellMonomethylhydrazine", 1),
+ FluidUtils.getFluidStack("nitricacid", 1000),
+ FluidUtils.getFluidStack(Monomethylhydrazine_Plus_Nitric_Acid, 2000),
+ CI.emptyCells(1),
+ null,
+ null,
+ null,
+ null,
+ null,
+ new int[] {10000},
+ 20*32,
+ 240);
+
+ }
+
+
+
+}
diff --git a/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java b/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java
index 05c7e662e5..68fb856417 100644
--- a/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java
+++ b/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java
@@ -542,7 +542,7 @@ public class RECIPES_GREGTECH {
// FluidStacks
final FluidStack ThoriumFluoride = FluidUtils.getFluidStack("molten.thoriumtetrafluoride", 100); // Re-usable
// FluidStacks
- final FluidStack ZirconiumFluoride = FluidUtils.getFluidStack("molten.zirconiumtetrafluoride", 100); // Re-usable
+ final FluidStack ZirconiumFluoride = FluidUtils.getFluidStack("zirconiumtetrafluoride", 100); // Re-usable
// FluidStacks
final FluidStack UraniumTetraFluoride = FluidUtils.getFluidStack("molten.uraniumtetrafluoride", 100); // Re-usable
// FluidStacks
diff --git a/src/Java/gtPlusPlus/core/tileentities/general/TileEntityPlayerDoorBase.java b/src/Java/gtPlusPlus/core/tileentities/general/TileEntityPlayerDoorBase.java
new file mode 100644
index 0000000000..513435212d
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/tileentities/general/TileEntityPlayerDoorBase.java
@@ -0,0 +1,87 @@
+package gtPlusPlus.core.tileentities.general;
+
+import gtPlusPlus.core.block.ModBlocks;
+import net.minecraft.block.Block;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.world.World;
+
+public class TileEntityPlayerDoorBase extends TileEntity {
+
+ private boolean mIsOpen = false;
+ private short mMeta = 0;
+ private long mTickCounter = 0;
+ private final Block mBlockType;
+
+ public TileEntityPlayerDoorBase(Block aBlock, int meta){
+ mMeta = (short) meta;
+ mBlockType = aBlock;
+ }
+
+ @Override
+ public void readFromNBT(NBTTagCompound aNBT) {
+ super.readFromNBT(aNBT);
+ this.mIsOpen = aNBT.getBoolean("mIsOpen");
+ }
+
+ @Override
+ public void writeToNBT(NBTTagCompound aNBT) {
+ super.writeToNBT(aNBT);
+ aNBT.setBoolean("mIsOpen", mIsOpen);
+ }
+
+ @Override
+ public void updateEntity() {
+ super.updateEntity();
+ mTickCounter++;
+ if (mTickCounter % 10 == 0) {
+ if (checkForPlayers(this.getWorldObj())) {
+ if (this.mIsOpen) {
+ this.getWorldObj().setBlock(this.xCoord, this.yCoord, this.zCoord, this.getBlockType(), this.getClosedMeta(), 3);
+ this.mIsOpen = false;
+ }
+ else {
+ this.getWorldObj().setBlock(this.xCoord, this.yCoord, this.zCoord, this.getBlockType(), this.getOpenMeta(), 3);
+ this.mIsOpen = true;
+ }
+ }
+ }
+ }
+
+ @Override
+ public int getBlockMetadata() {
+ return this.mMeta;
+ }
+
+ @Override
+ public Block getBlockType() {
+ return mBlockType;
+ }
+
+ @Override
+ public boolean canUpdate() {
+ return true;
+ }
+
+ private boolean checkForPlayers(World aWorld) {
+ int x = 0, y = 0, z = 0;
+ x = this.xCoord;
+ y = this.yCoord;
+ z = this.zCoord;
+ EntityPlayer aPlayer = aWorld.getClosestPlayer(x, y, z, 8D);
+ if (aPlayer != null) {
+ return true;
+ }
+ return false;
+ }
+
+ private short getClosedMeta() {
+ return 0;
+ }
+
+ private short getOpenMeta() {
+ return 1;
+ }
+
+}
diff --git a/src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java
index 08b37645eb..225d453694 100644
--- a/src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java
+++ b/src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java
@@ -420,43 +420,36 @@ public class FluidUtils {
}
public final static Fluid generateFluid(final String unlocalizedName, final String localizedName, final int MeltingPoint, final short[] RGBA){
- if ((FluidUtils.getFluidStack("molten"+"."+unlocalizedName.toLowerCase(), 1) == null) && (ItemUtils.getItemStackOfAmountFromOreDictNoBroken("dust"+Utils.sanitizeString(localizedName), 1) != null)){
+ FluidStack aFStack = (FluidUtils.getFluidStack("molten"+"."+unlocalizedName.toLowerCase(), 1));
+ if (aFStack == null){
Logger.WARNING("Generating our own fluid.");
-
- //Generate a Cell if we need to
- if (ItemUtils.getItemStackOfAmountFromOreDictNoBroken("cell"+unlocalizedName, 1) == null){
- @SuppressWarnings("unused")
- final
- Item temp = new BaseItemComponent(unlocalizedName, localizedName, RGBA);
+ ItemStack cell = ItemUtils.getItemStackOfAmountFromOreDictNoBroken("cell"+unlocalizedName, 1);
+ if (cell == null){
+ final Item temp = new BaseItemComponent(unlocalizedName, localizedName, RGBA);
+ cell = ItemUtils.getSimpleStack(temp);
}
-
final Fluid gtFluid = FluidUtils.addGTFluid(
unlocalizedName,
"Molten "+localizedName,
RGBA,
4,
MeltingPoint,
- ItemUtils.getItemStackOfAmountFromOreDictNoBroken("cell"+unlocalizedName, 1),
+ cell,
ItemUtils.getEmptyCell(),
1000);
-
- //Disable this, not sure why it exists //TODO
- /*MaterialGenerator.addFluidExtractionRecipe(
- ItemUtils.getItemStackOfAmountFromOreDictNoBroken("dust"+Utils.sanitizeString(localizedName), 1), //Input
- null, //Input 2
- FluidUtils.getFluidStack(gtFluid, 144), //Fluid Output
- 0, //Chance
- 1*20, //Duration
- 16 //Eu Tick
- );*/
-
return gtFluid;
}
- Logger.INFO("FLUID GENERATION FAILED FOR "+localizedName);
- return null;
+ else {
+ Logger.INFO("FLUID GENERATION FAILED FOR "+localizedName+", ALREADY EXISTS");
+ return aFStack.getFluid();
+ }
}
+ public final static Fluid generateFluidNonMolten(final String unlocalizedName, final String localizedName, final int MeltingPoint, final short[] RGBA){
+ return generateFluidNonMolten(unlocalizedName, localizedName, MeltingPoint, RGBA, null, null, 0);
+ }
+
public final static Fluid generateFluidNonMolten(final String unlocalizedName, final String localizedName, final int MeltingPoint, final short[] RGBA, final ItemStack dustStack, final ItemStack dustStack2){
return generateFluidNonMolten(unlocalizedName, localizedName, MeltingPoint, RGBA, dustStack, dustStack2, 144);
}
@@ -465,7 +458,8 @@ public class FluidUtils {
if (dustStack == null){
dustStack = ItemUtils.getItemStackOfAmountFromOreDictNoBroken("dust"+Utils.sanitizeString(localizedName), 1);
}
- if ((FluidUtils.getFluidStack(unlocalizedName.toLowerCase(), 1) == null)/* && ((dustStack != null) || (dustStack2 != null))*/){
+ FluidStack aFStack = (FluidUtils.getFluidStack(unlocalizedName.toLowerCase(), 1));
+ if (aFStack == null){
Logger.WARNING("Generating our own fluid.");
//Generate a Cell if we need to
@@ -508,8 +502,10 @@ public class FluidUtils {
return gtFluid;
}
- Logger.INFO("FLUID GENERATION FAILED FOR "+localizedName);
- return null;
+ else {
+ Logger.INFO("FLUID GENERATION FAILED FOR "+localizedName+", ALREADY EXISTS");
+ return aFStack.getFluid();
+ }
}
public final static Fluid generateFluidNoPrefix(final String unlocalizedName, final String localizedName, final int MeltingPoint, final short[] RGBA){