aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gradle/wrapper/gradle-wrapper.properties5
-rw-r--r--src/main/java/GoodGenerator/Blocks/MyFluids/FluidsBuilder.java11
-rw-r--r--src/main/java/GoodGenerator/Blocks/TEs/UniversalChemicalFuelEngine.java119
-rw-r--r--src/main/resources/assets/goodgenerator/lang/en_US.lang2
-rw-r--r--src/main/resources/assets/goodgenerator/textures/blocks/fluids/combustionPromotor.flowing.pngbin0 -> 7200 bytes
-rw-r--r--src/main/resources/assets/goodgenerator/textures/blocks/fluids/combustionPromotor.flowing.png.mcmeta5
-rw-r--r--src/main/resources/assets/goodgenerator/textures/blocks/fluids/combustionPromotor.still.pngbin0 -> 7200 bytes
-rw-r--r--src/main/resources/assets/goodgenerator/textures/blocks/fluids/combustionPromotor.still.png.mcmeta5
8 files changed, 142 insertions, 5 deletions
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 2d80b69a76..a76db97411 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,6 @@
+#Mon Jul 12 17:07:40 CST 2021
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.8.1-all.zip
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.8.1-bin.zip
-zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
diff --git a/src/main/java/GoodGenerator/Blocks/MyFluids/FluidsBuilder.java b/src/main/java/GoodGenerator/Blocks/MyFluids/FluidsBuilder.java
index 73412c6a6e..ec456aaba2 100644
--- a/src/main/java/GoodGenerator/Blocks/MyFluids/FluidsBuilder.java
+++ b/src/main/java/GoodGenerator/Blocks/MyFluids/FluidsBuilder.java
@@ -18,6 +18,7 @@ public class FluidsBuilder {
crackedNaquadahAsphalt_Lightly();
crackedNaquadahAsphalt_Moderately();
crackedNaquadahAsphalt_Heavily();
+ combustionPromotor();
}
public static void crackedNaquadahGas_Lightly(){
@@ -145,4 +146,14 @@ public class FluidsBuilder {
tmp2.setBlockName("heavilyCrackedNaquadahAsphalt");
GameRegistry.registerBlock(tmp2,"heavilyCrackedNaquadahAsphalt");
}
+
+ public static void combustionPromotor(){
+ Fluid tmp = BaseFluid.BuildFluid("combustionPromotor");
+ tmp.setGaseous(false)
+ .setTemperature(300);
+ BaseFluid tmp2 = new BaseFluid(tmp, Material.water);
+ tmp2.SetTexture("combustionPromotor");
+ tmp2.setBlockName("combustionPromotor");
+ GameRegistry.registerBlock(tmp2,"combustionPromotor");
+ }
}
diff --git a/src/main/java/GoodGenerator/Blocks/TEs/UniversalChemicalFuelEngine.java b/src/main/java/GoodGenerator/Blocks/TEs/UniversalChemicalFuelEngine.java
index 405acd20f0..bf96b6f29f 100644
--- a/src/main/java/GoodGenerator/Blocks/TEs/UniversalChemicalFuelEngine.java
+++ b/src/main/java/GoodGenerator/Blocks/TEs/UniversalChemicalFuelEngine.java
@@ -9,17 +9,19 @@ import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_H
import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyTunnel;
import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM;
import gregtech.api.GregTech_API;
-import gregtech.api.enums.ItemList;
-import gregtech.api.enums.Textures;
import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.implementations.*;
-import gregtech.api.objects.GT_RenderedTexture;
import gregtech.api.render.TextureFactory;
+import gregtech.api.util.GT_Recipe;
+import gregtech.api.util.GT_Utility;
import net.minecraft.item.ItemStack;
+import net.minecraftforge.fluids.FluidRegistry;
+import net.minecraftforge.fluids.FluidStack;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.List;
import static com.github.technus.tectech.mechanics.structure.StructureUtility.*;
@@ -27,6 +29,11 @@ import static gregtech.api.enums.Textures.BlockIcons.*;
public class UniversalChemicalFuelEngine extends GT_MetaTileEntity_MultiblockBase_EM implements TecTechEnabledMulti, IConstructable {
+ protected final double DIESEL_EFFICIENCY_COEFFICIENT = 0.45D;
+ protected final double GAS_EFFICIENCY_COEFFICIENT = 0.30D;
+
+ private long leftEnergy = 0;
+
private IStructureDefinition<UniversalChemicalFuelEngine> multiDefinition = null;
public UniversalChemicalFuelEngine(String name){super(name);}
@@ -175,6 +182,112 @@ public class UniversalChemicalFuelEngine extends GT_MetaTileEntity_MultiblockBas
}
@Override
+ public int getPollutionPerTick(ItemStack aStack) {
+ return (int)Math.sqrt(this.mEUt) / 20;
+ }
+
+ @Override
+ public boolean checkRecipe_EM(ItemStack aStack) {
+
+ ArrayList<FluidStack> tFluids = getStoredFluids();
+
+ Collection<GT_Recipe> tDieselFuels = GT_Recipe.GT_Recipe_Map.sDieselFuels.mRecipeList;
+ Collection<GT_Recipe> tGasFuels = GT_Recipe.GT_Recipe_Map.sTurbineFuels.mRecipeList;
+
+ int PromoterAmount = findLiquidAmount(getPromoter(), tFluids);
+
+ for (GT_Recipe recipe : tDieselFuels) {
+ FluidStack tFuel = findFuel(recipe);
+ if (tFuel == null) continue;
+ int FuelAmount = findLiquidAmount(tFuel, tFluids);
+ if (FuelAmount == 0) continue;
+ double eff = calculateEfficiency(FuelAmount, PromoterAmount, DIESEL_EFFICIENCY_COEFFICIENT);
+
+ consumeAllLiquid(tFuel);
+ consumeAllLiquid(getPromoter());
+
+ this.mEUt = (int)(eff * FuelAmount * recipe.mSpecialValue / 20.0D);
+ this.mMaxProgresstime = 20;
+ addAutoEnergy((long)(eff * FuelAmount * recipe.mSpecialValue / 20.0D));
+ this.updateSlots();
+ return true;
+ }
+
+ for (GT_Recipe recipe : tGasFuels) {
+ FluidStack tFuel = findFuel(recipe);
+ if (tFuel == null) continue;
+ int FuelAmount = findLiquidAmount(tFuel, tFluids);
+ if (FuelAmount == 0) continue;
+ double eff = calculateEfficiency(FuelAmount, PromoterAmount, GAS_EFFICIENCY_COEFFICIENT);
+
+ consumeAllLiquid(tFuel);
+ consumeAllLiquid(getPromoter());
+
+ this.mEUt = (int)(eff * FuelAmount * recipe.mSpecialValue / 20.0D);
+ this.mMaxProgresstime = 20;
+ addAutoEnergy((long)(eff * FuelAmount * recipe.mSpecialValue / 20.0D));
+ this.updateSlots();
+ return true;
+ }
+
+ return false;
+ }
+
+ public void addAutoEnergy(long outputPower){
+ if (this.mDynamoHatches.size() > 0)
+ for (GT_MetaTileEntity_Hatch tHatch : this.mDynamoHatches){
+ long voltage = tHatch.maxEUOutput();
+ long power = voltage * tHatch.maxAmperesOut();
+ long outputAmperes;
+ if (outputPower > power) doExplosion(8 * GT_Utility.getTier(power));
+ if (outputPower >= voltage){
+ leftEnergy += outputPower;
+ outputAmperes = leftEnergy / voltage;
+ leftEnergy -= outputAmperes * voltage;
+ addEnergyOutput_EM(voltage, outputAmperes);
+ }
+ else{
+ addEnergyOutput_EM(outputPower, 1);
+ }
+ }
+ }
+
+ public FluidStack getPromoter() {
+ return FluidRegistry.getFluidStack("combustionpromotor", 1);
+ }
+
+ public FluidStack findFuel(GT_Recipe aFuel) {
+ return GT_Utility.getFluidForFilledItem(aFuel.mInputs[0], true);
+ }
+
+ public double calculateEfficiency(int aFuel, int aPromoter, double coefficient){
+ if (aPromoter == 0) return 0.0d;
+ return Math.exp(-coefficient * (double)aFuel / (double)aPromoter);
+ }
+
+ public int findLiquidAmount(FluidStack liquid, List<FluidStack> input) {
+ int cnt = 0;
+ for (FluidStack fluid : input){
+ if (fluid.isFluidEqual(liquid)) {
+ cnt += fluid.amount;
+ }
+ }
+ if (cnt < 0) cnt = 0;
+ return cnt;
+ }
+
+ public void consumeAllLiquid(FluidStack liquid) {
+ for (GT_MetaTileEntity_Hatch_Input tHatch : mInputHatches) {
+ if (isValidMetaTileEntity(tHatch)) {
+ FluidStack tLiquid = tHatch.getFluid();
+ if (tLiquid != null && tLiquid.isFluidEqual(liquid)) {
+ tHatch.drain(tLiquid.amount, true);
+ }
+ }
+ }
+ }
+
+ @Override
public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone){
if(aSide == aFacing){
if(aActive) return new ITexture[]{
diff --git a/src/main/resources/assets/goodgenerator/lang/en_US.lang b/src/main/resources/assets/goodgenerator/lang/en_US.lang
index 164a0a2ea7..afcb859ee5 100644
--- a/src/main/resources/assets/goodgenerator/lang/en_US.lang
+++ b/src/main/resources/assets/goodgenerator/lang/en_US.lang
@@ -34,6 +34,7 @@ fluid.heavilyCrackedHeavyNaquadahFuel=Severely Cracked Heavy Naquadah Fuel
fluid.lightlyCrackedNaquadahAsphalt=Lightly Cracked Naquadah Asphalt
fluid.moderatelyCrackedNaquadahAsphalt=Moderately Cracked Naquadah Asphalt
fluid.heavilyCrackedNaquadahAsphalt=Severely Cracked Naquadah Asphalt
+fluid.combustionPromotor=Combustion Promoter
tile.lightlyCrackedNaquadahGas.name=Lightly Cracked Naquadah Gas
tile.moderatelyCrackedNaquadahGas.name=Moderately Cracked Naquadah Gas
@@ -47,6 +48,7 @@ tile.heavilyCrackedHeavyNaquadahFuel.name=Severely Cracked Heavy Naquadah Fuel
tile.lightlyCrackedNaquadahAsphalt.name=Lightly Cracked Naquadah Asphalt
tile.moderatelyCrackedNaquadahAsphalt.name=Moderately Cracked Naquadah Asphalt
tile.heavilyCrackedNaquadahAsphalt.name=Severely Cracked Naquadah Asphalt
+tile.combustionPromotor.name=Combustion Promoter
itemGroup.Good Generator=Good Generator
diff --git a/src/main/resources/assets/goodgenerator/textures/blocks/fluids/combustionPromotor.flowing.png b/src/main/resources/assets/goodgenerator/textures/blocks/fluids/combustionPromotor.flowing.png
new file mode 100644
index 0000000000..fa65b1a41a
--- /dev/null
+++ b/src/main/resources/assets/goodgenerator/textures/blocks/fluids/combustionPromotor.flowing.png
Binary files differ
diff --git a/src/main/resources/assets/goodgenerator/textures/blocks/fluids/combustionPromotor.flowing.png.mcmeta b/src/main/resources/assets/goodgenerator/textures/blocks/fluids/combustionPromotor.flowing.png.mcmeta
new file mode 100644
index 0000000000..83e994c588
--- /dev/null
+++ b/src/main/resources/assets/goodgenerator/textures/blocks/fluids/combustionPromotor.flowing.png.mcmeta
@@ -0,0 +1,5 @@
+{
+ "animation":{
+ "frametime":2
+ }
+}
diff --git a/src/main/resources/assets/goodgenerator/textures/blocks/fluids/combustionPromotor.still.png b/src/main/resources/assets/goodgenerator/textures/blocks/fluids/combustionPromotor.still.png
new file mode 100644
index 0000000000..fa65b1a41a
--- /dev/null
+++ b/src/main/resources/assets/goodgenerator/textures/blocks/fluids/combustionPromotor.still.png
Binary files differ
diff --git a/src/main/resources/assets/goodgenerator/textures/blocks/fluids/combustionPromotor.still.png.mcmeta b/src/main/resources/assets/goodgenerator/textures/blocks/fluids/combustionPromotor.still.png.mcmeta
new file mode 100644
index 0000000000..83e994c588
--- /dev/null
+++ b/src/main/resources/assets/goodgenerator/textures/blocks/fluids/combustionPromotor.still.png.mcmeta
@@ -0,0 +1,5 @@
+{
+ "animation":{
+ "frametime":2
+ }
+}