blood floats on blood, nitric acid ore processing chain

This commit is contained in:
Boblet 2023-02-07 15:37:48 +01:00
parent 1ef48ead18
commit 3192331173
28 changed files with 113 additions and 16 deletions

View File

@ -62,6 +62,7 @@ public class FluidContainerRegistry {
FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.particle_amat), new ItemStack(ModItems.particle_empty), Fluids.AMAT, 1000));
FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.particle_aschrab), new ItemStack(ModItems.particle_empty), Fluids.ASCHRAB, 1000));
FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.iv_blood), new ItemStack(ModItems.iv_empty), Fluids.BLOOD, 100));
FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.iv_xp), new ItemStack(ModItems.iv_xp_empty), Fluids.XPJUICE, 100));
FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(Items.experience_bottle), new ItemStack(Items.glass_bottle), Fluids.XPJUICE, 100));

View File

@ -98,6 +98,8 @@ public class Fluids {
public static FluidType SEEDSLURRY;
public static FluidType NITRIC_ACID;
public static FluidType SOLVENT; //oranic solvent in fact
public static FluidType BLOOD; //BLOOD ORB! BLOOD ORB! BLOOD ORB!
public static FluidType BLOOD_HOT;
private static final HashMap<Integer, FluidType> idMapping = new HashMap();
private static final HashMap<String, FluidType> nameMapping = new HashMap();
@ -211,7 +213,9 @@ public class Fluids {
COALCREOSOTE = new FluidType("COALCREOSOTE", 0x51694F, 3, 2, 0, EnumSymbol.NONE).addContainers(0x285A3F, ExtContainer.CANISTER).addTraits(LIQUID);
SEEDSLURRY = new FluidType("SEEDSLURRY", 0x7CC35E, 0, 0, 0, EnumSymbol.NONE).addContainers(0x7CC35E, ExtContainer.CANISTER).addTraits(LIQUID);
NITRIC_ACID = new FluidType("NITRIC_ACID", 0xBB7A1E, 3, 0, 2, EnumSymbol.OXIDIZER).addTraits(LIQUID, new FT_Corrosive(60));
SOLVENT = new FluidType(83, "SOLVENT", 0xE4E3EF, 2, 3, 0, EnumSymbol.NONE).addContainers(0xE4E3EF, ExtContainer.CANISTER).addTraits(LIQUID);
SOLVENT = new FluidType("SOLVENT", 0xE4E3EF, 2, 3, 0, EnumSymbol.NONE).addContainers(0xE4E3EF, ExtContainer.CANISTER).addTraits(LIQUID);
BLOOD = new FluidType("BLOOD", 0xB22424, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID);
BLOOD_HOT = new FluidType(85, "BLOOD_HOT", 0xE4E3EF, 3, 0, 0, EnumSymbol.NONE).addTraits(LIQUID).setTemp(666); //it's funny because it's the satan number
// ^ ^ ^ ^ ^ ^ ^ ^
@ -238,6 +242,8 @@ public class Fluids {
metaOrder.add(CRYOGEL);
metaOrder.add(MUG);
metaOrder.add(MUG_HOT);
metaOrder.add(BLOOD);
metaOrder.add(BLOOD_HOT);
//pure elements, cyogenic gasses
metaOrder.add(HYDROGEN);
metaOrder.add(DEUTERIUM);
@ -348,6 +354,9 @@ public class Fluids {
MUG.addTraits(new FT_Heatable().setEff(HeatingType.HEATEXCHANGER, 1.0D).addStep(400, 1, MUG_HOT, 1));
MUG_HOT.addTraits(new FT_Coolable(MUG, 1, 1, 400).setEff(CoolingType.HEATEXCHANGER, 1.0D));
BLOOD.addTraits(new FT_Heatable().setEff(HeatingType.HEATEXCHANGER, 1.0D).addStep(500, 1, BLOOD_HOT, 1));
BLOOD_HOT.addTraits(new FT_Coolable(BLOOD, 1, 1, 500).setEff(CoolingType.HEATEXCHANGER, 1.0D));
if(idMapping.size() != metaOrder.size()) {
throw new IllegalStateException("A severe error has occoured during NTM's fluid registering process! The MetaOrder and Mappings are inconsistent! Mapping size: " + idMapping.size()+ " / MetaOrder size: " + metaOrder.size());
}

View File

@ -12,6 +12,7 @@ import com.google.gson.stream.JsonWriter;
import com.hbm.blocks.ModBlocks;
import com.hbm.config.GeneralConfig;
import com.hbm.handler.imc.IMCCentrifuge;
import com.hbm.inventory.OreDictManager.DictFrame;
import com.hbm.inventory.RecipesCommon;
import com.hbm.inventory.RecipesCommon.AStack;
import com.hbm.inventory.RecipesCommon.ComparableStack;
@ -19,7 +20,9 @@ import com.hbm.inventory.RecipesCommon.OreDictStack;
import com.hbm.inventory.recipes.loader.SerializableRecipe;
import com.hbm.items.ModItems;
import com.hbm.items.special.ItemBedrockOre.EnumBedrockOre;
import com.hbm.items.special.ItemByproduct.EnumByproduct;
import com.hbm.main.MainRegistry;
import com.hbm.util.ItemStackUtil;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
@ -319,6 +322,22 @@ public class CentrifugeRecipes extends SerializableRecipe {
new ItemStack(ModItems.ore_enriched, 1, i),
new ItemStack(ModItems.ore_enriched, 1, i),
new ItemStack(ModItems.ore_enriched, 1, i) });
EnumByproduct tier1 = ore.byproducts[0];
ItemStack by1 = tier1 == null ? new ItemStack(ModItems.dust) : DictFrame.fromOne(ModItems.ore_byproduct, tier1, 2);
recipes.put(new ComparableStack(ModItems.ore_nitrated, 1, i), new ItemStack[] {
new ItemStack(ModItems.ore_nitrocrystalline, 2, i),
new ItemStack(ModItems.ore_nitrocrystalline, 2, i),
ItemStackUtil.carefulCopy(by1),
ItemStackUtil.carefulCopy(by1) });
EnumByproduct tier2 = ore.byproducts[1];
ItemStack by2 = tier2 == null ? new ItemStack(ModItems.dust) : DictFrame.fromOne(ModItems.ore_byproduct, tier2, 2);
recipes.put(new ComparableStack(ModItems.ore_deepcleaned, 1, i), new ItemStack[] {
new ItemStack(ModItems.ore_enriched, 2, i),
new ItemStack(ModItems.ore_enriched, 2, i),
ItemStackUtil.carefulCopy(by2),
ItemStackUtil.carefulCopy(by2) });
}
List<ItemStack> quartz = OreDictionary.getOres("crystalCertusQuartz");

View File

@ -96,6 +96,7 @@ public class CrystallizerRecipes {
FluidStack nitric = new FluidStack(Fluids.NITRIC_ACID, 500);
FluidStack organic = new FluidStack(Fluids.SOLVENT, 500);
int oreTime = 200;
for(EnumBedrockOre ore : EnumBedrockOre.values()) {

View File

@ -187,15 +187,17 @@ public class ModItems {
public static Item ingot_mercury; //It's to prevent any ambiguity, as it was treated as a full ingot in the past anyway
public static Item bottle_mercury;
public static Item ore_byproduct; //byproduct of variable purity and quantity, can be treated as a nugget, might require shredding or acidizing, depends on the type
public static Item ore_bedrock;
public static Item ore_centrifuged;
public static Item ore_cleaned;
public static Item ore_separated;
public static Item ore_purified;
public static Item ore_enriched;
public static Item ore_nitrated;
public static Item ore_nitrocrystalline;
public static Item ore_deepcleaned;
public static Item ore_enriched; //final stage
public static Item billet_uranium;
public static Item billet_u233;
@ -2836,11 +2838,16 @@ public class ModItems {
ingot_mercury = new ItemCustomLore().setUnlocalizedName("nugget_mercury").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_mercury");
bottle_mercury = new ItemCustomLore().setUnlocalizedName("bottle_mercury").setContainerItem(Items.glass_bottle).setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bottle_mercury");
ore_byproduct = new ItemByproduct().setUnlocalizedName("ore_byproduct").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":byproduct");
ore_bedrock = new ItemBedrockOre().setUnlocalizedName("ore_bedrock").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_bedrock");
ore_centrifuged = new ItemBedrockOre().setUnlocalizedName("ore_centrifuged").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_centrifuged");
ore_cleaned = new ItemBedrockOre().setUnlocalizedName("ore_cleaned").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_cleaned");
ore_separated = new ItemBedrockOre().setUnlocalizedName("ore_separated").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_separated");
ore_purified = new ItemBedrockOre().setUnlocalizedName("ore_purified").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_purified");
ore_nitrated = new ItemBedrockOre().setUnlocalizedName("ore_nitrated").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_nitrated");
ore_nitrocrystalline = new ItemBedrockOre().setUnlocalizedName("ore_nitrocrystalline").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_nitrocrystalline");
ore_deepcleaned = new ItemBedrockOre().setUnlocalizedName("ore_deepcleaned").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_deepcleaned");
ore_enriched = new ItemBedrockOre().setUnlocalizedName("ore_enriched").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_enriched");
ingot_lanthanium = new ItemCustomLore().setUnlocalizedName("ingot_lanthanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_lanthanium");
@ -6139,7 +6146,11 @@ public class ModItems {
GameRegistry.registerItem(ore_cleaned, ore_cleaned.getUnlocalizedName());
GameRegistry.registerItem(ore_separated, ore_separated.getUnlocalizedName());
GameRegistry.registerItem(ore_purified, ore_purified.getUnlocalizedName());
GameRegistry.registerItem(ore_nitrated, ore_nitrated.getUnlocalizedName());
GameRegistry.registerItem(ore_nitrocrystalline, ore_nitrocrystalline.getUnlocalizedName());
GameRegistry.registerItem(ore_deepcleaned, ore_deepcleaned.getUnlocalizedName());
GameRegistry.registerItem(ore_enriched, ore_enriched.getUnlocalizedName());
GameRegistry.registerItem(ore_byproduct, ore_byproduct.getUnlocalizedName());
//Crystals
GameRegistry.registerItem(crystal_coal, crystal_coal.getUnlocalizedName());

View File

@ -1,6 +1,8 @@
package com.hbm.items.special;
import com.hbm.items.ItemEnumMulti;
import com.hbm.items.special.ItemByproduct.EnumByproduct;
import static com.hbm.items.special.ItemByproduct.EnumByproduct.*;
import com.hbm.lib.RefStrings;
import com.hbm.util.EnumUtil;
@ -75,21 +77,25 @@ public class ItemBedrockOre extends ItemEnumMulti {
*/
public static enum EnumBedrockOre {
IRON("Iron", 0xE2C0AA), //titanium, sulfur from pyrite
COPPER("Copper", 0xEC9A63), //sulfur sulfur sulfur sulfur
BORAX("Borax", 0xE4BE74), //calcium from ulexite, uhhh lithium?
ASBESTOS("Asbestos", 0xBFBFB9), //quartz i guess?
NIOBIUM("Niobium", 0xAF58D8), //iron in columbite, often found along tantalite
TITANIUM("Titanium", 0xF2EFE2), //titanite is titanium + calcium + silicon with traces of iron and aluminium
TUNGSTEN("Tungsten", 0x2C293C), //ferberite has iron, raspite has lead, russelite is bismuth tungsten
GOLD("Gold", 0xF9D738); //occours with copper, lead and rare bismuthide
//Ore Byproduct 1, 2, 3
IRON("Iron", 0xE2C0AA, B_SULFUR, B_TITANIUM, B_TITANIUM), //titanium, sulfur from pyrite
COPPER("Copper", 0xEC9A63, B_SULFUR, B_SULFUR, B_SULFUR), //sulfur sulfur sulfur sulfur
BORAX("Borax", 0xE4BE74, B_LITHIUM, B_CALCIUM, B_CALCIUM), //calcium from ulexite, uhhh lithium?
ASBESTOS("Asbestos", 0xBFBFB9, B_SILICON, B_SILICON, B_SILICON), //quartz i guess?
NIOBIUM("Niobium", 0xAF58D8, B_IRON, B_IRON, B_IRON), //iron in columbite, often found along tantalite
TITANIUM("Titanium", 0xF2EFE2, B_SILICON, B_CALCIUM, B_ALUMINIUM), //titanite is titanium + calcium + silicon with traces of iron and aluminium
TUNGSTEN("Tungsten", 0x2C293C, B_LEAD, B_IRON, B_BISMUTH), //ferberite has iron, raspite has lead, russelite is bismuth tungsten
GOLD("Gold", 0xF9D738, B_LEAD, B_COPPER, B_BISMUTH); //occurs with copper, lead and rare bismuthide
public String oreName;
public int color;
public EnumByproduct[] byproducts;
private EnumBedrockOre(String name, int color) {
/** Byproduct count must be consistent with current tier count, use NULL if no byproduct should be generated! */
private EnumBedrockOre(String name, int color, EnumByproduct... by) {
this.oreName = name;
this.color = color;
this.byproducts = by;
}
}
}

View File

@ -0,0 +1,42 @@
package com.hbm.items.special;
import com.hbm.items.ItemEnumMulti;
import com.hbm.util.EnumUtil;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.item.ItemStack;
public class ItemByproduct extends ItemEnumMulti {
public ItemByproduct() {
super(EnumByproduct.class, true, false);
}
@Override
@SideOnly(Side.CLIENT)
public int getColorFromItemStack(ItemStack stack, int pass) {
EnumByproduct ore = EnumUtil.grabEnumSafely(EnumByproduct.class, stack.getItemDamage());
return ore.color;
}
public static enum EnumByproduct {
B_IRON(0xE2C0AA),
B_COPPER(0xEC9A63),
B_LITHIUM(0xEDEDED),
B_SILICON(0xFFFBD1),
B_LEAD(0x646470),
B_TITANIUM(0xF2EFE2),
B_ALUMINIUM(0xE8F2F9),
B_SULFUR(0xEAD377),
B_CALCIUM(0xCFCFA6),
B_BISMUTH(0x8D8577);
public int color;
private EnumByproduct(int color) {
this.color = color;
}
}
}

View File

@ -459,7 +459,9 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu
list.add(I18nUtil.resolveKey(HbmCollection.durability, dura + " / " + mainConfig.durability));
list.add("");
list.add(I18nUtil.resolveKey(HbmCollection.gunName, I18nUtil.resolveKey("gun.name." + mainConfig.name)));
String unloc = "gun.name." + mainConfig.name;
String loc = I18nUtil.resolveKey(unloc);
list.add(I18nUtil.resolveKey(HbmCollection.gunName, unloc.equals(loc) ? mainConfig.name : loc));
list.add(I18nUtil.resolveKey(HbmCollection.gunMaker, I18nUtil.resolveKey(mainConfig.manufacturer.getKey())));
if(!mainConfig.comment.isEmpty()) {

View File

@ -13,10 +13,8 @@ import net.minecraftforge.oredict.OreDictionary;
public class ItemStackUtil {
public static ItemStack carefulCopy(ItemStack stack) {
if(stack == null)
return null;
else
return stack.copy();
if(stack == null) return null;
return stack.copy();
}
public static ItemStack carefulCopyWithSize(ItemStack stack, int size) {

View File

@ -583,6 +583,8 @@ hbmfluid.balefire=BF-Raketentreibstoff
hbmfluid.biofuel=Biodiesel
hbmfluid.biogas=Biogas
hbmfluid.bitumen=Bitumen
hbmfluid.blood=Blut
hbmfluid.blood_hot=Heißes Blut
hbmfluid.carbondioxide=Kohlenstoffdioxid
hbmfluid.coalcreosote=Kohleteer-Kreosot
hbmfluid.coalgas=Kohlebenzin
@ -622,6 +624,7 @@ hbmfluid.mug_hot=Heißes Mug Root Beer
hbmfluid.naphtha=Mitteldestillat
hbmfluid.naphtha_crack=Crack-Mitteldestillat
hbmfluid.nitan=NITAN© 100 Oktan Supertreibstoff
hbmfluid.nitric_acid=Salpetersäure
hbmfluid.none=Nichts
hbmfluid.oil=Rohöl
hbmfluid.oxygen=Flüssiger Sauerstoff
@ -642,6 +645,7 @@ hbmfluid.sas3=Schrabidiumtrisulfat
hbmfluid.schrabidic=Schrabidische Säure
hbmfluid.seedslurry=Saatgemisch
hbmfluid.smear=Industrieöl
hbmfluid.solvent=Lösungsmittel
hbmfluid.spentsteam=Niedrigdruckdampf
hbmfluid.steam=Dampf
hbmfluid.sulfuric_acid=Schwefelsäure

View File

@ -1177,6 +1177,8 @@ hbmfluid.balefire=BF Rocket Fuel
hbmfluid.biofuel=Biofuel
hbmfluid.biogas=Biogas
hbmfluid.bitumen=Bitumen
hbmfluid.blood=Blood
hbmfluid.blood_hot=Hot Blood
hbmfluid.carbondioxide=Carbon Dioxide
hbmfluid.coalcreosote=Coal Tar Creosote
hbmfluid.coalgas=Coal Gasoline
@ -1216,6 +1218,7 @@ hbmfluid.mug_hot=Hot Mug Root Beer
hbmfluid.naphtha=Naphtha
hbmfluid.naphtha_crack=Cracked Naphtha
hbmfluid.nitan=NITAN© 100 Octane Super Fuel
hbmfluid.nitric_acid=Nitric Acid
hbmfluid.none=None
hbmfluid.oil=Crude Oil
hbmfluid.oxygen=Liquid Oxygen
@ -1236,6 +1239,7 @@ hbmfluid.sas3=Schrabidium Trisulfide
hbmfluid.schrabidic=Schrabidic Acid
hbmfluid.seedslurry=Seeding Slurry
hbmfluid.smear=Industrial Oil
hbmfluid.solvent=Solvent
hbmfluid.spentsteam=Low-Pressure Steam
hbmfluid.steam=Steam
hbmfluid.sulfuric_acid=Sulfuric Acid

Binary file not shown.

After

Width:  |  Height:  |  Size: 451 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 451 B

View File

Before

Width:  |  Height:  |  Size: 280 B

After

Width:  |  Height:  |  Size: 280 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 268 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 224 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 275 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 275 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 276 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 287 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 276 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 276 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 288 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 430 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 446 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 448 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB