diff options
Diffstat (limited to 'src')
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 |