aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorGlodBlock <1356392126@qq.com>2021-09-03 21:00:20 +0800
committerGlodBlock <1356392126@qq.com>2021-09-03 21:00:20 +0800
commit678c88f9b64a49e486b171508527a3224978122d (patch)
tree405e131ff7857ad837f7ef0d44ea15875c86310d /src/main/java
parentfe31ae9e19422bce20480c97ba7f8a4e6aa11614 (diff)
downloadGT5-Unofficial-678c88f9b64a49e486b171508527a3224978122d.tar.gz
GT5-Unofficial-678c88f9b64a49e486b171508527a3224978122d.tar.bz2
GT5-Unofficial-678c88f9b64a49e486b171508527a3224978122d.zip
optimizate the LNR code, only use 30% time to load now
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/GoodGenerator/Blocks/MyFluids/FluidsBuilder.java15
-rw-r--r--src/main/java/GoodGenerator/Blocks/TEs/MultiNqGenerator.java197
-rw-r--r--src/main/java/GoodGenerator/CrossMod/NEI/NEI_Config.java7
-rw-r--r--src/main/java/GoodGenerator/Items/MyMaterial.java50
-rw-r--r--src/main/java/GoodGenerator/util/CrackRecipeAdder.java5
5 files changed, 154 insertions, 120 deletions
diff --git a/src/main/java/GoodGenerator/Blocks/MyFluids/FluidsBuilder.java b/src/main/java/GoodGenerator/Blocks/MyFluids/FluidsBuilder.java
index 3df342a508..72888310b4 100644
--- a/src/main/java/GoodGenerator/Blocks/MyFluids/FluidsBuilder.java
+++ b/src/main/java/GoodGenerator/Blocks/MyFluids/FluidsBuilder.java
@@ -1,7 +1,9 @@
package GoodGenerator.Blocks.MyFluids;
+import GoodGenerator.CrossMod.NEI.NEI_Config;
import cpw.mods.fml.common.registry.GameRegistry;
import net.minecraft.block.material.Material;
+import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.Fluid;
public class FluidsBuilder {
@@ -32,6 +34,7 @@ public class FluidsBuilder {
tmp2.SetTexture("lightlyCrackedNaquadahGas");
tmp2.setBlockName("lightlyCrackedNaquadahGas");
GameRegistry.registerBlock(tmp2,"lightlyCrackedNaquadahGas");
+ NEI_Config.hide(tmp2);
}
public static void crackedNaquadahGas_Moderately(){
@@ -42,6 +45,7 @@ public class FluidsBuilder {
tmp2.SetTexture("moderatelyCrackedNaquadahGas");
tmp2.setBlockName("moderatelyCrackedNaquadahGas");
GameRegistry.registerBlock(tmp2,"moderatelyCrackedNaquadahGas");
+ NEI_Config.hide(tmp2);
}
public static void crackedNaquadahGas_Heavily(){
@@ -52,6 +56,7 @@ public class FluidsBuilder {
tmp2.SetTexture("heavilyCrackedNaquadahGas");
tmp2.setBlockName("heavilyCrackedNaquadahGas");
GameRegistry.registerBlock(tmp2,"heavilyCrackedNaquadahGas");
+ NEI_Config.hide(tmp2);
}
public static void crackedLightNaquadahFuel_Lightly(){
@@ -62,6 +67,7 @@ public class FluidsBuilder {
tmp2.SetTexture("lightlyCrackedLightNaquadahFuel");
tmp2.setBlockName("lightlyCrackedLightNaquadahFuel");
GameRegistry.registerBlock(tmp2,"lightlyCrackedLightNaquadahFuel");
+ NEI_Config.hide(tmp2);
}
public static void crackedLightNaquadahFuel_Moderately(){
@@ -72,6 +78,7 @@ public class FluidsBuilder {
tmp2.SetTexture("moderatelyCrackedLightNaquadahFuel");
tmp2.setBlockName("moderatelyCrackedLightNaquadahFuel");
GameRegistry.registerBlock(tmp2,"moderatelyCrackedLightNaquadahFuel");
+ NEI_Config.hide(tmp2);
}
public static void crackedLightNaquadahFuel_Heavily(){
@@ -82,6 +89,7 @@ public class FluidsBuilder {
tmp2.SetTexture("heavilyCrackedLightNaquadahFuel");
tmp2.setBlockName("heavilyCrackedLightNaquadahFuel");
GameRegistry.registerBlock(tmp2,"heavilyCrackedLightNaquadahFuel");
+ NEI_Config.hide(tmp2);
}
public static void crackedHeavyNaquadahFuel_Lightly(){
@@ -92,6 +100,7 @@ public class FluidsBuilder {
tmp2.SetTexture("lightlyCrackedHeavyNaquadahFuel");
tmp2.setBlockName("lightlyCrackedHeavyNaquadahFuel");
GameRegistry.registerBlock(tmp2,"lightlyCrackedHeavyNaquadahFuel");
+ NEI_Config.hide(tmp2);
}
public static void crackedHeavyNaquadahFuel_Moderately(){
@@ -102,6 +111,7 @@ public class FluidsBuilder {
tmp2.SetTexture("moderatelyCrackedHeavyNaquadahFuel");
tmp2.setBlockName("moderatelyCrackedHeavyNaquadahFuel");
GameRegistry.registerBlock(tmp2,"moderatelyCrackedHeavyNaquadahFuel");
+ NEI_Config.hide(tmp2);
}
public static void crackedHeavyNaquadahFuel_Heavily(){
@@ -112,6 +122,7 @@ public class FluidsBuilder {
tmp2.SetTexture("heavilyCrackedHeavyNaquadahFuel");
tmp2.setBlockName("heavilyCrackedHeavyNaquadahFuel");
GameRegistry.registerBlock(tmp2,"heavilyCrackedHeavyNaquadahFuel");
+ NEI_Config.hide(tmp2);
}
public static void crackedNaquadahAsphalt_Lightly(){
@@ -124,6 +135,7 @@ public class FluidsBuilder {
tmp2.SetTexture("lightlyCrackedNaquadahAsphalt");
tmp2.setBlockName("lightlyCrackedNaquadahAsphalt");
GameRegistry.registerBlock(tmp2,"lightlyCrackedNaquadahAsphalt");
+ NEI_Config.hide(tmp2);
}
public static void crackedNaquadahAsphalt_Moderately(){
@@ -136,6 +148,7 @@ public class FluidsBuilder {
tmp2.SetTexture("moderatelyCrackedNaquadahAsphalt");
tmp2.setBlockName("moderatelyCrackedNaquadahAsphalt");
GameRegistry.registerBlock(tmp2,"moderatelyCrackedNaquadahAsphalt");
+ NEI_Config.hide(tmp2);
}
public static void crackedNaquadahAsphalt_Heavily(){
@@ -148,6 +161,7 @@ public class FluidsBuilder {
tmp2.SetTexture("heavilyCrackedNaquadahAsphalt");
tmp2.setBlockName("heavilyCrackedNaquadahAsphalt");
GameRegistry.registerBlock(tmp2,"heavilyCrackedNaquadahAsphalt");
+ NEI_Config.hide(tmp2);
}
public static void combustionPromotor(){
@@ -158,5 +172,6 @@ public class FluidsBuilder {
tmp2.SetTexture("combustionPromotor");
tmp2.setBlockName("combustionPromotor");
GameRegistry.registerBlock(tmp2,"combustionPromotor");
+ NEI_Config.hide(tmp2);
}
}
diff --git a/src/main/java/GoodGenerator/Blocks/TEs/MultiNqGenerator.java b/src/main/java/GoodGenerator/Blocks/TEs/MultiNqGenerator.java
index af244648c7..66fe58fe0a 100644
--- a/src/main/java/GoodGenerator/Blocks/TEs/MultiNqGenerator.java
+++ b/src/main/java/GoodGenerator/Blocks/TEs/MultiNqGenerator.java
@@ -1,9 +1,10 @@
package GoodGenerator.Blocks.TEs;
-import GoodGenerator.Items.MyMaterial;
import GoodGenerator.Loader.Loaders;
+import GoodGenerator.util.CrackRecipeAdder;
import GoodGenerator.util.DescTextLocalization;
import GoodGenerator.util.MyRecipeAdder;
+import com.github.bartimaeusnek.bartworks.util.Pair;
import com.github.bartimaeusnek.crossmod.tectech.TecTechEnabledMulti;
import com.github.technus.tectech.mechanics.constructable.IConstructable;
import com.github.technus.tectech.mechanics.structure.IStructureDefinition;
@@ -30,6 +31,7 @@ import net.minecraftforge.fluids.FluidStack;
import org.lwjgl.input.Keyboard;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collection;
import java.util.List;
@@ -38,11 +40,26 @@ import static com.github.technus.tectech.mechanics.structure.StructureUtility.*;
public class MultiNqGenerator extends GT_MetaTileEntity_MultiblockBase_EM implements TecTechEnabledMulti, IConstructable {
protected IStructureDefinition<MultiNqGenerator> multiDefinition = null;
- protected int ticker = 0;
protected long leftEnergy = 0;
+ protected long trueOutput = 0;
+ protected int trueEff = 0;
protected boolean fluidLocker = true;
protected FluidStack lockedFluid = null;
protected int times = 1;
+ protected int basicOutput;
+
+ private final List<Pair<FluidStack, Integer>> excitedLiquid = Arrays.asList(
+ new Pair<>(FluidRegistry.getFluidStack("molten.atomic separation catalyst", 1), 16),
+ new Pair<>(Materials.Naquadah.getMolten(1L), 4),
+ new Pair<>(Materials.Uranium235.getMolten(9L), 3),
+ new Pair<>(Materials.Caesium.getMolten(9L), 2)
+ );
+
+ private final List<Pair<FluidStack, Integer>> coolant = Arrays.asList(
+ new Pair<>(FluidRegistry.getFluidStack("cryotheum", 50), 275),
+ new Pair<>(Materials.SuperCoolant.getFluid(50L), 150),
+ new Pair<>(FluidRegistry.getFluidStack("ic2coolant",50), 105)
+ );
@Override
public void construct(ItemStack itemStack, boolean hintsOnly) {
@@ -150,10 +167,10 @@ public class MultiNqGenerator extends GT_MetaTileEntity_MultiblockBase_EM implem
@Override
public void loadNBTData(NBTTagCompound aNBT){
- this.ticker = aNBT.getInteger("mTicker");
this.fluidLocker = aNBT.getBoolean("mIsLocked");
this.times = aNBT.getInteger("mTimes");
this.leftEnergy = aNBT.getLong("mLeftEnergy");
+ this.basicOutput = aNBT.getInteger("mbasicOutput");
if (FluidRegistry.getFluid(aNBT.getString("mLockedFluidName")) != null)
this.lockedFluid = new FluidStack(FluidRegistry.getFluid(aNBT.getString("mLockedFluidName")), aNBT.getInteger("mLockedFluidAmount"));
else this.lockedFluid = null;
@@ -162,10 +179,10 @@ public class MultiNqGenerator extends GT_MetaTileEntity_MultiblockBase_EM implem
@Override
public void saveNBTData(NBTTagCompound aNBT){
- aNBT.setInteger("mTicker", this.ticker);
aNBT.setBoolean("mIsLocked", this.fluidLocker);
aNBT.setInteger("mTimes", this.times);
aNBT.setLong("mLeftEnergy", this.leftEnergy);
+ aNBT.setInteger("mbasicOutput", this.basicOutput);
if (lockedFluid != null){
aNBT.setString("mLockedFluidName", this.lockedFluid.getFluid().getName());
aNBT.setInteger("mLockedFluidAmount", this.lockedFluid.amount);
@@ -198,100 +215,86 @@ public class MultiNqGenerator extends GT_MetaTileEntity_MultiblockBase_EM implem
if (cnt > 1) doExplosion(4 * 4);
- FluidStack f1=null;
- float booster = 1.0f;
- if(tFluids.size() > 0){
- if(tFluids.contains(FluidRegistry.getFluidStack("cryotheum", 50)) && tFluids.get(tFluids.indexOf(FluidRegistry.getFluidStack("cryotheum", 50))).amount >= 50){
- booster = 2.75f;
- f1=FluidRegistry.getFluidStack("cryotheum", 50);
- }
- else if(tFluids.contains(Materials.SuperCoolant.getFluid(50L)) && tFluids.get(tFluids.indexOf(Materials.SuperCoolant.getFluid(50L))).amount >= 50){
- booster = 1.5f;
- f1=Materials.SuperCoolant.getFluid(50L);
- }
- else if(tFluids.contains(FluidRegistry.getFluidStack("ic2coolant",50)) && tFluids.get(tFluids.indexOf(FluidRegistry.getFluidStack("ic2coolant",50))).amount >= 50){
- booster = 1.05f;
- f1=FluidRegistry.getFluidStack("ic2coolant",50);
+ for (GT_Recipe tRecipe : MyRecipeAdder.instance.NqGFuels.mRecipeList) {
+ if (tFluids.contains(tRecipe.mFluidInputs[0])) {
+ Pair<FluidStack, Integer> excitedInfo = getExcited(tFluids.toArray(new FluidStack[0]), false);
+ int pall = excitedInfo == null ? 1 : excitedInfo.getValue();
+ if (consumeFuel(CrackRecipeAdder.copyFluidWithAmount(tRecipe.mFluidInputs[0], pall), tFluids.toArray(new FluidStack[0]))) {
+ mOutputFluids = new FluidStack[]{CrackRecipeAdder.copyFluidWithAmount(tRecipe.mFluidOutputs[0], pall)};
+ basicOutput = tRecipe.mSpecialValue;
+ times = pall;
+ lockedFluid = excitedInfo == null ? null : excitedInfo.getKey();
+ mMaxProgresstime = tRecipe.mDuration;
+ return true;
+ }
}
}
- if (fluidLocker && lockedFluid != null){
- if (!(tFluids.contains(lockedFluid) && tFluids.get(tFluids.indexOf(lockedFluid)).amount >= lockedFluid.amount)){
- times = 1;
+ return false;
+ }
+
+ @Override
+ public boolean onRunningTick(ItemStack stack) {
+ FluidStack[] input = getStoredFluids().toArray(new FluidStack[0]);
+ int eff = 100, time = 1;
+ if (!consumeFuel(Materials.LiquidAir.getFluid(120), input)) {
+ this.mEUt = 0;
+ this.trueEff = 0;
+ this.trueOutput = 0;
+ return true;
+ }
+ if (getCoolant(input, true) != null) eff = getCoolant(input, false).getValue();
+ if (consumeFuel(lockedFluid, input)) time = times;
+ this.mEUt = basicOutput * eff * time / 100;
+ this.trueEff = eff;
+ this.trueOutput = (long)basicOutput * (long)eff * (long)time / 100;
+ addAutoEnergy((long)basicOutput * (long)eff * (long)time / 100);
+ return true;
+ }
+
+ @Override
+ public String[] getInfoData() {
+ String[] info = super.getInfoData();
+ info[4] = "Probably makes: " + EnumChatFormatting.RED + Math.abs(this.trueOutput) + EnumChatFormatting.RESET + " EU/t";
+ info[6] = "Problems: " + EnumChatFormatting.RED + (this.getIdealStatus() - this.getRepairStatus()) + EnumChatFormatting.RESET + " Efficiency: " + EnumChatFormatting.YELLOW + trueEff + EnumChatFormatting.RESET + " %";
+ return info;
+ }
+
+ public boolean consumeFuel(FluidStack target, FluidStack[] input) {
+ if (target == null) return false;
+ for (FluidStack inFluid : input) {
+ if (inFluid != null && inFluid.isFluidEqual(target) && inFluid.amount >= target.amount){
+ inFluid.amount -= target.amount;
+ return true;
}
- else {
- if (lockedFluid.getFluid() == MyMaterial.atomicSeparationCatalyst.getMolten(1).getFluid())
- times = 16;
- else if (lockedFluid.getFluid() == Materials.Naquadah.getMolten(1L).getFluid())
- times = 4;
- else if (lockedFluid.getFluid() == Materials.Uranium235.getMolten(9L).getFluid())
- times = 3;
- else if (lockedFluid.getFluid() == Materials.Caesium.getMolten(9L).getFluid())
- times = 2;
+ }
+ return false;
+ }
+
+ public Pair<FluidStack, Integer> getExcited(FluidStack[] input, boolean isConsume) {
+ for (Pair<FluidStack, Integer> fluidPair : excitedLiquid) {
+ FluidStack tFluid = fluidPair.getKey();
+ for (FluidStack inFluid : input) {
+ if (inFluid != null && inFluid.isFluidEqual(tFluid) && inFluid.amount >= tFluid.amount) {
+ if (isConsume) inFluid.amount -= tFluid.amount;
+ return fluidPair;
+ }
}
}
+ return null;
+ }
- if (tFluids.size()>0){
- for (GT_Recipe recipe : tRecipes){
- FluidStack recipeFluid = recipe.mFluidInputs[0].copy();
- FluidStack recipeFluidOut = recipe.mFluidOutputs[0].copy();
- recipeFluid.amount = times;
- recipeFluidOut.amount = times;
- int lasting = recipe.mDuration;
- int outputEU = recipe.mSpecialValue;
- if (tFluids.contains(recipeFluid) && tFluids.get(tFluids.indexOf(recipeFluid)).amount >= times){
- if(f1 != null)
- depleteInput(f1);
- if(lockedFluid != null && times != 1)
- depleteInput(lockedFluid);
- if (ticker == 0 || ticker%lasting == 0){
- fluidLocker = false;
- if(tFluids.size() > 0){
- if (tFluids.contains((MyMaterial.atomicSeparationCatalyst.getMolten(1))) && tFluids.get(tFluids.indexOf(MyMaterial.atomicSeparationCatalyst.getMolten(1))).amount >= 1){
- times = 16;
- lockedFluid = MyMaterial.atomicSeparationCatalyst.getMolten(1);
- }
- else if(tFluids.contains(Materials.Naquadah.getMolten(1L)) && tFluids.get(tFluids.indexOf(Materials.Naquadah.getMolten(1L))).amount >= 1){
- times = 4;
- lockedFluid = Materials.Naquadah.getMolten(1L);
- }
- else if(tFluids.contains(Materials.Uranium235.getMolten(9L)) && tFluids.get(tFluids.indexOf(Materials.Uranium235.getMolten(9L))).amount >= 9){
- times = 3;
- lockedFluid = Materials.Uranium235.getMolten(9L);
- }
- else if (tFluids.contains(Materials.Caesium.getMolten(9L)) && tFluids.get(tFluids.indexOf(Materials.Caesium.getMolten(9L))).amount >= 9){
- times = 2;
- lockedFluid = Materials.Caesium.getMolten(9L);
- }
- else {
- times = 1;
- lockedFluid = null;
- }
- fluidLocker = true;
- recipeFluid.amount = times;
- recipeFluidOut.amount = times;
- }
- depleteInput(recipeFluid);
- this.mOutputFluids = new FluidStack[]{recipeFluidOut};
- }
- else this.mOutputFluids = null;
- if (tFluids.contains(Materials.LiquidAir.getFluid(120)) && tFluids.get(tFluids.indexOf(Materials.LiquidAir.getFluid(120))).amount >= 120){
- depleteInput(Materials.LiquidAir.getFluid(120));
- addAutoEnergy((((long)outputEU)*times)*(int)(booster*100)/100);
- this.mEUt = (int)(outputEU*times*booster);
- }
- else{
- addEnergyOutput_EM(0,0);
- this.mEUt = 0;
- }
- this.mProgresstime = 1;
- this.mMaxProgresstime = 1;
- return true;
+ public Pair<FluidStack, Integer> getCoolant(FluidStack[] input, boolean isConsume) {
+ for (Pair<FluidStack, Integer> fluidPair : coolant) {
+ FluidStack tFluid = fluidPair.getKey();
+ for (FluidStack inFluid : input) {
+ if (inFluid != null && inFluid.isFluidEqual(tFluid) && inFluid.amount >= tFluid.amount) {
+ if (isConsume) inFluid.amount -= tFluid.amount;
+ return fluidPair;
}
}
}
- this.mEUt = 0;
- return false;
+ return null;
}
public void addAutoEnergy(long outputPower){
@@ -330,24 +333,6 @@ public class MultiNqGenerator extends GT_MetaTileEntity_MultiblockBase_EM implem
}
@Override
- public boolean onRunningTick(ItemStack stack) {
- if (getBaseMetaTileEntity().isAllowedToWork()) {
- mRuntime ++;
- ticker ++;
- }
- if (!getBaseMetaTileEntity().isActive() || !getBaseMetaTileEntity().isAllowedToWork()) {
- mRuntime = 0;
- ticker = 0;
- leftEnergy = 0;
- fluidLocker = false;
- lockedFluid = null;
- times = 1;
- }
- if (ticker > 3 * 17 * 19 * 1000000) ticker = 0;
- return true;
- }
-
- @Override
public boolean checkMachine_EM(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) {
return structureCheck_EM(mName, 3, 7, 0) && mMaintenanceHatches.size() == 1 && mDynamoHatches.size() + eDynamoMulti.size() == 1;
}
diff --git a/src/main/java/GoodGenerator/CrossMod/NEI/NEI_Config.java b/src/main/java/GoodGenerator/CrossMod/NEI/NEI_Config.java
index eada36c336..1a57824b89 100644
--- a/src/main/java/GoodGenerator/CrossMod/NEI/NEI_Config.java
+++ b/src/main/java/GoodGenerator/CrossMod/NEI/NEI_Config.java
@@ -2,7 +2,10 @@ package GoodGenerator.CrossMod.NEI;
import GoodGenerator.Main.GoodGenerator;
import GoodGenerator.util.MyRecipeAdder;
+import codechicken.nei.api.API;
import codechicken.nei.api.IConfigureNEI;
+import net.minecraft.block.Block;
+import net.minecraft.item.ItemStack;
public class NEI_Config implements IConfigureNEI {
public static boolean isAdded = true;
@@ -14,6 +17,10 @@ public class NEI_Config implements IConfigureNEI {
NEI_Config.isAdded = true;
}
+ public static void hide(Block aBlock) {
+ API.hideItem(new ItemStack(aBlock, 1));
+ }
+
@Override
public String getName() {
return "Good Generator NEI Plugin";
diff --git a/src/main/java/GoodGenerator/Items/MyMaterial.java b/src/main/java/GoodGenerator/Items/MyMaterial.java
index e4ab266b7a..7bdaeeee00 100644
--- a/src/main/java/GoodGenerator/Items/MyMaterial.java
+++ b/src/main/java/GoodGenerator/Items/MyMaterial.java
@@ -258,34 +258,37 @@ public class MyMaterial implements Runnable {
);
//Atomic Separation Catalyst
- public static final Werkstoff atomicSeparationCatalyst = new Werkstoff(
- new short[]{0xe8,0x5e,0x0c},
- "Atomic Separation Catalyst",
- "the melting core...",
- new Werkstoff.Stats().setMeltingPoint(5000).setBlastFurnace(true),
- Werkstoff.Types.COMPOUND,
- new Werkstoff.GenerationFeatures().disable().onlyDust().addMolten().addMetalItems().addSimpleMetalWorkingItems().addCraftingMetalWorkingItems().addMultipleIngotMetalWorkingItems(),
- OffsetID + 21,
- TextureSet.SET_SHINY
- );
-
public static final Werkstoff orundum = new Werkstoff(
new short[]{0xcd,0x26,0x26},
"Orundum",
"Or",
- new Werkstoff.Stats(),
+ new Werkstoff.Stats().setProtons(120).setMass(300),
Werkstoff.Types.ELEMENT,
new Werkstoff.GenerationFeatures().addGems(),
OffsetID + 22,
TextureSet.SET_DIAMOND
);
+ public static final Werkstoff atomicSeparationCatalyst = new Werkstoff(
+ new short[]{0xe8,0x5e,0x0c},
+ "Atomic Separation Catalyst",
+ "the melting core...",
+ new Werkstoff.Stats().setMeltingPoint(5000).setBlastFurnace(true),
+ Werkstoff.Types.COMPOUND,
+ new Werkstoff.GenerationFeatures().disable().onlyDust().addMolten().addMetalItems().addSimpleMetalWorkingItems().addCraftingMetalWorkingItems().addMultipleIngotMetalWorkingItems(),
+ OffsetID + 21,
+ TextureSet.SET_SHINY,
+ new Pair<>(MyMaterial.orundum, 2),
+ new Pair<>(Plutonium, 1),
+ new Pair<>(Naquadah, 2)
+ );
+
//Naquadah Fuel Rework
public static final Werkstoff extremelyUnstableNaquadah = new Werkstoff(
new short[]{0x06,0x26,0x05},
"Extremely Unstable Naquadah",
"Nq"+ CharExchanger.shifter(9734),
- new Werkstoff.Stats().setMeltingPoint(7000).setBlastFurnace(true),
+ new Werkstoff.Stats().setMeltingPoint(7000).setBlastFurnace(true).setProtons(200).setMass(450),
Werkstoff.Types.ELEMENT,
new Werkstoff.GenerationFeatures().disable().onlyDust().addMolten().addMetalItems().addSimpleMetalWorkingItems().addCraftingMetalWorkingItems().addMultipleIngotMetalWorkingItems(),
OffsetID + 23,
@@ -604,7 +607,9 @@ public class MyMaterial implements Runnable {
Werkstoff.Types.COMPOUND,
new Werkstoff.GenerationFeatures().disable().onlyDust().addMolten().addMetalItems(),
OffsetID + 52,
- TextureSet.SET_SHINY
+ TextureSet.SET_SHINY,
+ new Pair<>(Zinc, 1),
+ new Pair<>(Thorium, 1)
);
//Naquadah Rework Materials
@@ -974,6 +979,23 @@ public class MyMaterial implements Runnable {
new Pair<>(Nickel, 1)
);
+ public static final Werkstoff Incoloy903 = new Werkstoff(
+ new short[]{0xa4,0x8f,0x8b},
+ "Incoloy-903",
+ subscriptNumbers("Fe12Ni10Co8Ti4Mo2Al"),
+ new Werkstoff.Stats().setCentrifuge(true).setBlastFurnace(true).setMeltingPoint(3700),
+ Werkstoff.Types.MIXTURE,
+ new Werkstoff.GenerationFeatures().onlyDust().addMolten().addMetalItems().addCraftingMetalWorkingItems().addSimpleMetalWorkingItems(),
+ OffsetID + 83,
+ TextureSet.SET_METALLIC,
+ new Pair<>(Iron, 12),
+ new Pair<>(Nickel, 10),
+ new Pair<>(Cobalt, 8),
+ new Pair<>(Titanium, 4),
+ new Pair<>(Molybdenum, 2),
+ new Pair<>(Aluminium, 1)
+ );
+
@Override
public void run() { }
}
diff --git a/src/main/java/GoodGenerator/util/CrackRecipeAdder.java b/src/main/java/GoodGenerator/util/CrackRecipeAdder.java
index f9245518f3..8717579d53 100644
--- a/src/main/java/GoodGenerator/util/CrackRecipeAdder.java
+++ b/src/main/java/GoodGenerator/util/CrackRecipeAdder.java
@@ -70,4 +70,9 @@ public class CrackRecipeAdder {
GT_Values.RA.addBlastRecipe(input, GT_Utility.getIntegratedCircuit(1), null, null, output, null, duration, EUt, level);
}
}
+
+ public static FluidStack copyFluidWithAmount(FluidStack fluid, int amount) {
+ if (fluid == null || amount <= 0) return null;
+ return new FluidStack(fluid.getFluid(), amount);
+ }
}