aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Java/gtPlusPlus/api/objects/minecraft/BTF_Inventory.java45
-rw-r--r--src/Java/gtPlusPlus/core/item/ModItems.java4
-rw-r--r--src/Java/gtPlusPlus/core/item/chemistry/CoalTar.java25
-rw-r--r--src/Java/gtPlusPlus/core/item/chemistry/GenericChem.java106
-rw-r--r--src/Java/gtPlusPlus/core/item/chemistry/OilChem.java9
-rw-r--r--src/Java/gtPlusPlus/core/tileentities/base/TileEntityBase.java21
-rw-r--r--src/Java/gtPlusPlus/core/tileentities/machines/TileEntityBaseFluidCollector.java8
-rw-r--r--src/resources/assets/miscutils/lang/en_US.lang33
8 files changed, 216 insertions, 35 deletions
diff --git a/src/Java/gtPlusPlus/api/objects/minecraft/BTF_Inventory.java b/src/Java/gtPlusPlus/api/objects/minecraft/BTF_Inventory.java
index 43a325f190..04ce0dff19 100644
--- a/src/Java/gtPlusPlus/api/objects/minecraft/BTF_Inventory.java
+++ b/src/Java/gtPlusPlus/api/objects/minecraft/BTF_Inventory.java
@@ -3,8 +3,8 @@ package gtPlusPlus.api.objects.minecraft;
import java.util.ArrayList;
import gregtech.api.util.GT_Utility;
-import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.tileentities.base.TileEntityBase;
+import gtPlusPlus.core.util.data.ArrayUtils;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.ISidedInventory;
import net.minecraft.item.ItemStack;
@@ -20,6 +20,7 @@ public class BTF_Inventory implements ISidedInventory{
}
public ItemStack[] getRealInventory() {
+ purgeNulls();
return this.mInventory;
}
@@ -140,6 +141,7 @@ public class BTF_Inventory implements ISidedInventory{
public void markDirty() {
if (mTile != null) {
+ purgeNulls();
mTile.markDirty();
}
}
@@ -184,24 +186,43 @@ public class BTF_Inventory implements ISidedInventory{
return true;
}
- public boolean addItemStack(ItemStack aInput) {
- if (isEmpty() || !isFull()) {
+ public boolean addItemStack(ItemStack aInput) {
+ if (aInput != null & (isEmpty() || !isFull())) {
for (int s = 0; s < this.getSizeInventory(); s++) {
- ItemStack slot = mInventory[s];
- if (slot == null
- || (GT_Utility.areStacksEqual(aInput, slot) && slot.stackSize != slot.getMaxStackSize())) {
- if (slot == null) {
- slot = aInput.copy();
- } else {
- slot.stackSize++;
+ if (mInventory != null && mInventory[s] != null) {
+ ItemStack slot = mInventory[s];
+ if (slot == null || (slot != null && GT_Utility.areStacksEqual(aInput, slot) && slot.stackSize != slot.getItem().getItemStackLimit(slot))) {
+ if (slot == null) {
+ slot = aInput.copy();
+ } else {
+ slot.stackSize++;
+ }
+ this.setInventorySlotContents(s, slot);
+ return true;
}
- this.setInventorySlotContents(s, slot);
- return true;
}
}
}
return false;
}
+
+ public final void purgeNulls() {
+ ItemStack[] aTemp = ArrayUtils.removeNulls(this.mInventory);
+ for (int g=0;g<this.getSizeInventory();g++) {
+ if (aTemp.length < this.getSizeInventory()) {
+ if (g <= aTemp.length-1) {
+ this.mInventory[g] = aTemp[g];
+ }
+ else {
+ this.mInventory[g] = null;
+ }
+ }
+ else {
+ this.mInventory[g] = aTemp[g];
+ }
+ }
+
+ }
}
diff --git a/src/Java/gtPlusPlus/core/item/ModItems.java b/src/Java/gtPlusPlus/core/item/ModItems.java
index bb2ab8ae47..e8f0e31458 100644
--- a/src/Java/gtPlusPlus/core/item/ModItems.java
+++ b/src/Java/gtPlusPlus/core/item/ModItems.java
@@ -34,6 +34,7 @@ import gtPlusPlus.core.item.bauble.HealthBoostBauble;
import gtPlusPlus.core.item.bauble.ModularBauble;
import gtPlusPlus.core.item.chemistry.AgriculturalChem;
import gtPlusPlus.core.item.chemistry.CoalTar;
+import gtPlusPlus.core.item.chemistry.GenericChem;
import gtPlusPlus.core.item.chemistry.IonParticles;
import gtPlusPlus.core.item.chemistry.NuclearChem;
import gtPlusPlus.core.item.chemistry.RocketFuels;
@@ -895,6 +896,9 @@ public final class ModItems {
//Farm Animal Fun
new AgriculturalChem();
+ //General Chemistry
+ new GenericChem();
+
//Bombs
itemBombCasing = new CoreItem("itemBombCasing", "Bomb Casing", tabMisc);
diff --git a/src/Java/gtPlusPlus/core/item/chemistry/CoalTar.java b/src/Java/gtPlusPlus/core/item/chemistry/CoalTar.java
index 1f10261b36..e060723afd 100644
--- a/src/Java/gtPlusPlus/core/item/chemistry/CoalTar.java
+++ b/src/Java/gtPlusPlus/core/item/chemistry/CoalTar.java
@@ -119,6 +119,15 @@ public class CoalTar extends ItemPackage {
public static void recipeCoalToCoalTar(){
+ //Charcoal
+ AddGregtechRecipe.addCokeAndPyrolyseRecipes(
+ GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Charcoal, 32L),
+ 8,
+ GT_Values.NF,
+ ItemUtils.getItemStackOfAmountFromOreDict("dustSmallDirt", 2),
+ FluidUtils.getFluidStack("fluid.coaltar", 800),
+ 15,
+ 120);
//Lignite
AddGregtechRecipe.addCokeAndPyrolyseRecipes(
GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Lignite, 16L),
@@ -126,7 +135,7 @@ public class CoalTar extends ItemPackage {
GT_Values.NF,
ItemUtils.getItemStackOfAmountFromOreDict("dustSmallDarkAsh", 2),
FluidUtils.getFluidStack("fluid.coaltar", 800),
- 90,
+ 45,
60);
//Coal
@@ -136,7 +145,7 @@ public class CoalTar extends ItemPackage {
GT_Values.NF,
ItemUtils.getItemStackOfAmountFromOreDict("dustSmallDarkAsh", 2),
FluidUtils.getFluidStack("fluid.coaltar", 2200),
- 60,
+ 30,
120);
//Coke
@@ -146,7 +155,7 @@ public class CoalTar extends ItemPackage {
GT_Values.NF,
ItemUtils.getItemStackOfAmountFromOreDict("dustSmallAsh", 3),
FluidUtils.getFluidStack("fluid.coaltar", 3400),
- 30,
+ 15,
240);
}
@@ -189,8 +198,8 @@ public class CoalTar extends ItemPackage {
);
GT_Values.RA.addDistilleryRecipe(
CI.getNumberedCircuit(5), //Circuit
- FluidUtils.getFluidStack("fluid.coaltar", 1430), //aInput
- FluidUtils.getFluidStack("fluid.kerosene", 360), //aOutput
+ FluidUtils.getFluidStack("fluid.coaltar", 1500), //aInput
+ FluidUtils.getFluidStack("fluid.kerosene", 400), //aOutput
300, //aDuration
64,//aEUt
false //Hidden?
@@ -358,9 +367,9 @@ public class CoalTar extends ItemPackage {
//Burn the coal gas!
GT_Values.RA.addFuel(ItemUtils.getItemStackOfAmountFromOreDict("cellCoalGas", 1), null, 96, 1);
- CORE.RA.addSemifluidFuel(ItemUtils.getItemStackOfAmountFromOreDict("cellSulfuricCoalTarOil", 1), 32);
- CORE.RA.addSemifluidFuel(ItemUtils.getItemStackOfAmountFromOreDict("cellCoalTarOil", 1), 64);
- CORE.RA.addSemifluidFuel(ItemUtils.getItemStackOfAmountFromOreDict("cellCoalTar", 1), 128);
+ CORE.RA.addSemifluidFuel(ItemUtils.getItemStackOfAmountFromOreDict("cellSulfuricCoalTarOil", 1), 64);
+ CORE.RA.addSemifluidFuel(ItemUtils.getItemStackOfAmountFromOreDict("cellCoalTarOil", 1), 32);
+ CORE.RA.addSemifluidFuel(ItemUtils.getItemStackOfAmountFromOreDict("cellCoalTar", 1), 16);
return true;
}
diff --git a/src/Java/gtPlusPlus/core/item/chemistry/GenericChem.java b/src/Java/gtPlusPlus/core/item/chemistry/GenericChem.java
new file mode 100644
index 0000000000..1c66b5cac2
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/item/chemistry/GenericChem.java
@@ -0,0 +1,106 @@
+package gtPlusPlus.core.item.chemistry;
+
+import gregtech.api.enums.TextureSet;
+import gtPlusPlus.api.objects.minecraft.ItemPackage;
+import gtPlusPlus.core.material.Material;
+import gtPlusPlus.core.material.MaterialGenerator;
+import gtPlusPlus.core.material.state.MaterialState;
+import gtPlusPlus.core.util.Utils;
+import gtPlusPlus.core.util.minecraft.FluidUtils;
+import gtPlusPlus.core.util.minecraft.ItemUtils;
+import net.minecraft.item.Item;
+import net.minecraftforge.fluids.Fluid;
+import net.minecraftforge.fluids.FluidRegistry;
+
+public class GenericChem extends ItemPackage {
+
+ /**
+ * Materials
+ */
+
+ public static final Material BAKELITE = new Material("Bakelite", MaterialState.SOLID, TextureSet.SET_DULL, new short[]{90, 140, 140}, 120, 240, 23, 24, true, "", 0);//Not a GT Inherited Material
+ public static final Material NYLON = new Material("Nylon", MaterialState.SOLID, TextureSet.SET_SHINY, new short[]{45, 45, 45}, 300, 600, 44, 48, true, "", 0);//Not a GT Inherited Material
+
+ //public static final Material HYPOGEN = new Material("Hypogen", MaterialState.SOLID, TextureSets.NUCLEAR.get(), new short[]{220, 120, 75}, 12255, 19377, 240, 251, true, "Hy⚶", 0);//Not a GT Inherited Material
+ //public static final Material HYPOGEN = new Material("Hypogen", MaterialState.SOLID, TextureSets.NUCLEAR.get(), new short[]{220, 120, 75}, 12255, 19377, 240, 251, true, "Hy⚶", 0);//Not a GT Inherited Material
+ //public static final Material Nylon = new Material();
+
+ /**
+ * Fluids
+ */
+
+ public Fluid Benzene;
+ public Fluid NitroBenzene;
+ public Fluid Aniline;
+ public Fluid Polyurethane;
+ public Fluid Phenol; //https://en.wikipedia.org/wiki/Phenol#Uses
+ public Fluid Cyclohexane; //https://en.wikipedia.org/wiki/Cyclohexane
+ public Fluid Cyclohexanone; //https://en.wikipedia.org/wiki/Cyclohexanone
+
+ public Fluid Cadaverine; //https://en.wikipedia.org/wiki/Cadaverine
+ public Fluid Putrescine; //https://en.wikipedia.org/wiki/Putrescine
+
+
+ /**
+ * Items
+ */
+
+ // Phenol Byproducts
+ public Item PhenolicResins; //https://en.wikipedia.org/wiki/Phenol_formaldehyde_resin
+
+
+
+ @Override
+ public void items() {
+ PhenolicResins = ItemUtils.generateSpecialUseDusts("phenolicresins", "Phenolic Resin", "HOC6H4CH2OH", Utils.rgbtoHexValue(80, 40, 40))[0];
+ MaterialGenerator.generate(BAKELITE, false);
+ MaterialGenerator.generate(NYLON, false);
+ }
+
+ @Override
+ public void blocks() {}
+
+ @Override
+ public void fluids() {
+
+ if (!FluidRegistry.isFluidRegistered("benzene")) {
+ Benzene = FluidUtils.generateFluidNoPrefix("benzene", "Benzene", 278, new short[] { 100, 70, 30, 100 }, true);
+ }
+ else {
+ Benzene = FluidRegistry.getFluid("benzene");
+ }
+
+ NitroBenzene = FluidUtils.generateFluidNoPrefix("nitrobenzene", "NitroBenzene", 278, new short[] { 70, 50, 40, 100 }, true);
+
+ Aniline = FluidUtils.generateFluidNoPrefix("aniline", "Aniline", 266, new short[] { 100, 100, 30, 100 }, true);
+
+ Polyurethane = FluidUtils.generateFluidNoPrefix("polyurethane", "Polyurethane", 350, new short[] { 100, 70, 100, 100 }, true);
+
+ if (!FluidRegistry.isFluidRegistered("phenol")) {
+ Phenol = FluidUtils.generateFluidNoPrefix("phenol", "Phenol", 313, new short[] { 100, 70, 30, 100 }, true);
+ }
+ else {
+ Phenol = FluidRegistry.getFluid("phenol");
+ }
+
+ Cyclohexane = FluidUtils.generateFluidNoPrefix("cyclohexane", "Cyclohexane", 32 + 175, new short[] { 100, 70, 30, 100 }, true);
+ Cyclohexanone = FluidUtils.generateFluidNoPrefix("cyclohexanone", "Cyclohexanone", 32 + 175, new short[] { 100, 70, 30, 100 }, true);
+
+ Cadaverine = FluidUtils.generateFluidNoPrefix("cadaverine", "Cadaverine", 32 + 175, new short[] { 100, 70, 30, 100 }, true);
+ Putrescine = FluidUtils.generateFluidNoPrefix("putrescine", "Putrescine", 32 + 175, new short[] { 100, 70, 30, 100 }, true);
+
+ }
+
+ @Override
+ public String errorMessage() {
+ // TODO Auto-generated method stub
+ return "Failed to generate recipes for AgroChem.";
+ }
+
+ @Override
+ public boolean generateRecipes() {
+
+
+ return true;
+ }
+}
diff --git a/src/Java/gtPlusPlus/core/item/chemistry/OilChem.java b/src/Java/gtPlusPlus/core/item/chemistry/OilChem.java
index fd168f24f2..cb7e32eaf0 100644
--- a/src/Java/gtPlusPlus/core/item/chemistry/OilChem.java
+++ b/src/Java/gtPlusPlus/core/item/chemistry/OilChem.java
@@ -2,23 +2,14 @@ package gtPlusPlus.core.item.chemistry;
import java.util.ArrayList;
-import forestry.plugins.PluginCore;
-import gregtech.api.enums.GT_Values;
-import gregtech.api.enums.Materials;
-import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.api.objects.data.AutoMap;
import gtPlusPlus.api.objects.minecraft.ItemPackage;
-import gtPlusPlus.core.lib.CORE;
-import gtPlusPlus.core.lib.LoadedMods;
-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.minecraft.init.Blocks;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.Fluid;
-import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.oredict.OreDictionary;
public class OilChem extends ItemPackage {
diff --git a/src/Java/gtPlusPlus/core/tileentities/base/TileEntityBase.java b/src/Java/gtPlusPlus/core/tileentities/base/TileEntityBase.java
index 0a1c53d79d..4f9a8d3748 100644
--- a/src/Java/gtPlusPlus/core/tileentities/base/TileEntityBase.java
+++ b/src/Java/gtPlusPlus/core/tileentities/base/TileEntityBase.java
@@ -28,6 +28,7 @@ import net.minecraftforge.fluids.IFluidHandler;
import gtPlusPlus.api.interfaces.ILazyCoverable;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.api.objects.minecraft.BTF_Inventory;
+import gtPlusPlus.core.util.data.ArrayUtils;
import gtPlusPlus.core.util.minecraft.gregtech.PollutionUtils;
import ic2.api.Direction;
@@ -81,6 +82,9 @@ public class TileEntityBase extends TileEntity implements ILazyCoverable, IGregT
public void updateEntity() {
long aTick = System.currentTimeMillis();
this.isDead = false;
+ if (!firstTicked) {
+ onFirstTick();
+ }
try{
if (this.isServerSide()){
onPreTick(aTick);
@@ -1297,7 +1301,22 @@ public class TileEntityBase extends TileEntity implements ILazyCoverable, IGregT
public boolean energyStateReady() {
return false;
}
-
+
+
+ private boolean firstTicked = false;
+
+ public boolean onFirstTick() {
+ if (!firstTicked) {
+ firstTicked = true;
+ if (this.mInventory != null) {
+ this.mInventory.purgeNulls();
+ return true;
+ }
+ }
+ return false;
+ }
+
+
diff --git a/src/Java/gtPlusPlus/core/tileentities/machines/TileEntityBaseFluidCollector.java b/src/Java/gtPlusPlus/core/tileentities/machines/TileEntityBaseFluidCollector.java
index 7afb4727b4..78b8f74799 100644
--- a/src/Java/gtPlusPlus/core/tileentities/machines/TileEntityBaseFluidCollector.java
+++ b/src/Java/gtPlusPlus/core/tileentities/machines/TileEntityBaseFluidCollector.java
@@ -98,11 +98,10 @@ public abstract class TileEntityBaseFluidCollector extends TileEntityBase implem
}
@Override
- public final void updateEntity() {
-
+ public final void updateEntity() {
+ super.updateEntity();
onPreLogicTick();
- logicTick();
-
+ logicTick();
if (needsUpdate) {
if (updateTimer == 0) {
updateTimer = 10; // every 10 ticks it will send an update
@@ -210,6 +209,7 @@ public abstract class TileEntityBaseFluidCollector extends TileEntityBase implem
}
else {
ItemStack aDirtStack = ItemUtils.getSimpleStack(itemToSpawnInWorldIfTankIsFull());
+ if (aDirtStack != null)
if (!this.mInventory.addItemStack(aDirtStack)) {
EntityItem entity = new EntityItem(worldObj, xCoord, yCoord+1.5, zCoord, aDirtStack);
worldObj.spawnEntityInWorld(entity);
diff --git a/src/resources/assets/miscutils/lang/en_US.lang b/src/resources/assets/miscutils/lang/en_US.lang
index acc772031e..e1079c90de 100644
--- a/src/resources/assets/miscutils/lang/en_US.lang
+++ b/src/resources/assets/miscutils/lang/en_US.lang
@@ -2729,5 +2729,36 @@ tile.Block of Lithium 7.name=Block of Lithium 7
//Added 14/3/19
item.blood.name=Cell of Blood
+item.aniline.name=Aniline Cell
+item.cadaverine.name=Cadaverine Cell
+item.polyurethane.name=Polyurethane Cell
+item.putrescine.name=Putrescine Cell
+item.cyclohexane.name=Cyclohexane Cell
+item.cyclohexanone.name=Cyclohexanone Cell
+item.nitrobenzene.name=Nitrobenzene Cell
+item.ender.name=Cell of Liquid Ender
+item.xpjuice.name=Cell of Liquid Xp
+item.itemBombUnf.name=Throwable Bomb (unf)
+item.itemBombCasing.name=Bomb Casing
+item.gtpp.throwable.bomb.name=Throwable Bomb
+item.itemDetCable.name=Bomb Fuse
tile.blockPooCollector.0.name=Agricultural Sewer
-tile.blockPooCollector.8.name=Biocomposite Collector \ No newline at end of file
+tile.blockPooCollector.8.name=Biocomposite Collector
+item.itemIngotBakelite.name=Bakelite Ingot
+item.itemDustBakelite.name=Bakelite Dust
+item.itemDustTinyBakelite.name=Tiny Pile of Bakelite Dust
+item.itemDustSmallBakelite.name=Small Pile of Bakelite Dust
+item.itemNuggetBakelite.name=Bakelite Nugget
+item.itemPlateBakelite.name=Bakelite Plate
+item.itemPlateDoubleBakelite.name=Double Bakelite Plate
+item.itemCellBakelite.name=Bakelite Cell
+tile.Block of Bakelite.name=Block of Bakelite
+item.itemIngotNylon.name=Nylon Ingot
+item.itemDustNylon.name=Nylon Dust
+item.itemDustTinyNylon.name=Tiny Pile of Nylon Dust
+item.itemDustSmallNylon.name=Small Pile of Nylon Dust
+item.itemNuggetNylon.name=Nylon Nugget
+item.itemPlateNylon.name=Nylon Plate
+item.itemPlateDoubleNylon.name=Double Nylon Plate
+item.itemCellNylon.name=Nylon Cell
+tile.Block of Nylon.name=Block of Nylon \ No newline at end of file