polluting fluid trait, more oil work

This commit is contained in:
Boblet 2024-02-07 16:44:07 +01:00
parent 7a1a3de63f
commit a8acfafebf
35 changed files with 224 additions and 3323 deletions

View File

@ -29,6 +29,10 @@
* Covneyor ejectors can now eject sulfur out of the side ports of refineries
* Refineries and vacuum refineries now have fluid ID slots for changing the recipe
* Removed the remaining old oil separation recipes from the chemical plant
* More large models have been converted into display lists which should improve performance somewhat
* Corroded barrels now crumble after a while
* PWRs on the edge of unloaded chunks now additionally reset their internal heat value to further reduce the time until they can potentially melt down
* Removed the assembly recipe for the radial engine since it will be retired soon
## Fixed
* Fixed dupe caused by shift-clicking ashes out of the bricked furnace
@ -40,4 +44,5 @@
* Fixed molds not saving when cooling off, allowing to dupe metal when leaving and rejoining
* Fixed normal drones loading chunks
* Fixed chunk-loading drones not loading chunks
* Fixed several chemistry templates missing names
* Fixed several chemistry templates missing names
* Fixed rampant mode random scout spawns being able to appear inside blocks

View File

@ -5,7 +5,6 @@ import java.util.function.Function;
import com.hbm.blocks.IBlockMulti;
import com.hbm.config.MobConfig;
import com.hbm.entity.mob.*;
import com.hbm.entity.mob.glyphid.EntityGlyphid;
import com.hbm.entity.mob.glyphid.EntityGlyphidBehemoth;
import com.hbm.entity.mob.glyphid.EntityGlyphidBlaster;

View File

@ -342,7 +342,7 @@ public class PollutionHandler {
}
}
}
///RAMPANT MODE STUFFS///
///RAMPANT MODE STUFFS///
@SubscribeEvent
public void rampantTargetSetter(PlayerSleepInBedEvent event){
@ -351,13 +351,9 @@ public class PollutionHandler {
@SubscribeEvent
public void rampantScoutPopulator(WorldEvent.PotentialSpawns event){
//yell at me if this vertical formatting hurts your brain
if(MobConfig.rampantNaturalScoutSpawn
&& !event.world.isRemote
&& event.world.provider.dimensionId == 0
&& event.type == EnumCreatureType.monster
&& event.world.canBlockSeeTheSky(event.x, event.y, event.z)
&& !event.isCanceled()) {
if(MobConfig.rampantNaturalScoutSpawn && !event.world.isRemote && event.world.provider.dimensionId == 0 && event.type == EnumCreatureType.monster
&& event.world.canBlockSeeTheSky(event.x, event.y, event.z) && !event.isCanceled()) {
if (event.world.rand.nextInt(MobConfig.rampantScoutSpawnChance) == 0) {
@ -370,8 +366,8 @@ public class PollutionHandler {
EntityGlyphidDigger digger = new EntityGlyphidDigger(event.world);
scout.setLocationAndAngles(event.x, event.y, event.z, event.world.rand.nextFloat() * 360.0F, 0.0F);
digger.setLocationAndAngles(event.x, event.y, event.z, event.world.rand.nextFloat() * 360.0F, 0.0F);
event.world.spawnEntityInWorld(scout);
event.world.spawnEntityInWorld(digger);
if(scout.getCanSpawnHere()) event.world.spawnEntityInWorld(scout);
if(digger.getCanSpawnHere()) event.world.spawnEntityInWorld(digger);
}
}
}

View File

@ -218,7 +218,7 @@ public class Fluids {
DEUTERIUM = new FluidType("DEUTERIUM", 0x0000FF, 3, 4, 0, EnumSymbol.NONE).addTraits(new FT_Flammable(5_000), new FT_Combustible(FuelGrade.HIGH, 10_000), GASEOUS);
TRITIUM = new FluidType("TRITIUM", 0x000099, 3, 4, 0, EnumSymbol.RADIATION).addTraits(new FT_Flammable(5_000), new FT_Combustible(FuelGrade.HIGH, 10_000), GASEOUS, new FT_VentRadiation(0.001F));
OIL = new FluidType("OIL", 0x020202, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x424242)).addTraits(new FT_Flammable(10_000), LIQUID, VISCOUS);
HOTOIL = new FluidType("HOTOIL", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350).addTraits(new FT_Flammable(10_000), LIQUID, VISCOUS);
HOTOIL = new FluidType("HOTOIL", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350).addTraits(LIQUID, VISCOUS);
HEAVYOIL = new FluidType("HEAVYOIL", 0x141312, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x513F39)).addTraits(new FT_Flammable(50_000), new FT_Combustible(FuelGrade.LOW, 25_000), LIQUID, VISCOUS);
BITUMEN = new FluidType("BITUMEN", 0x1f2426, 2, 0, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x5A5877)).addTraits(LIQUID, VISCOUS);
SMEAR = new FluidType("SMEAR", 0x190f01, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x624F3B)).addTraits(new FT_Flammable(50_000), LIQUID, VISCOUS);
@ -270,7 +270,7 @@ public class Fluids {
HEAVYWATER = new FluidType("HEAVYWATER", 0x00a0b0, 1, 0, 0, EnumSymbol.NONE).addTraits(LIQUID);
CRACKOIL = new FluidType("CRACKOIL", 0x020202, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x424242)).addTraits(new FT_Flammable(10_000), LIQUID, VISCOUS);
COALOIL = new FluidType("COALOIL", 0x020202, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x424242)).addTraits(new FT_Flammable(10_000), LIQUID, VISCOUS);
HOTCRACKOIL = new FluidType("HOTCRACKOIL", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350).addContainers(new CD_Canister(0x424242)).addTraits(new FT_Flammable(10_000), LIQUID, VISCOUS);
HOTCRACKOIL = new FluidType("HOTCRACKOIL", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350).addTraits(LIQUID, VISCOUS);
NAPHTHA_CRACK = new FluidType("NAPHTHA_CRACK", 0x595744, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x5F6D44)).addTraits(new FT_Flammable(125_000), new FT_Combustible(FuelGrade.MEDIUM, 200_000), LIQUID, VISCOUS);
LIGHTOIL_CRACK = new FluidType("LIGHTOIL_CRACK", 0x8c7451, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xB46B52)).addTraits(new FT_Flammable(200_000), new FT_Combustible(FuelGrade.MEDIUM, 500_000), LIQUID);
DIESEL_CRACK = new FluidType("DIESEL_CRACK", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xFF2C2C)).addTraits(new FT_Flammable(200_000), new FT_Combustible(FuelGrade.HIGH, 450_000), LIQUID);
@ -339,13 +339,13 @@ public class Fluids {
THORIUM_SALT_DEPLETED = new FluidType("THORIUM_SALT_DEPLETED", 0x302D1C, 2, 0, 3, EnumSymbol.NONE).setTemp(800).addTraits(LIQUID, VISCOUS, new FT_Corrosive(65));
FULLERENE = new FluidType("FULLERENE", 0xFF7FED, 3, 3, 3, EnumSymbol.NONE).addTraits(LIQUID, new FT_Corrosive(65));
PHEROMONE = new FluidType("PHEROMONE", 0x5FA6E8, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, new FT_Pheromone(1));
PHEROMONE_M = new FluidType(132, "PHEROMONE_M", 0x48C9B0 , 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, new FT_Pheromone(2));
OIL_DS = new FluidType("OIL_DS", 0x020202, 2, 1, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS);
HOTOIL_DS = new FluidType("HOTOIL_DS", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350).addTraits(LIQUID, VISCOUS);
CRACKOIL_DS = new FluidType("CRACKOIL_DS", 0x020202, 2, 1, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS);
HOTCRACKOIL_DS = new FluidType("HOTCRACKOIL_DS", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350).addTraits(LIQUID, VISCOUS);
NAPHTHA_DS = new FluidType("NAPHTHA_DS", 0x595744, 2, 1, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS);
LIGHTOIL_DS = new FluidType("LIGHTOIL_DS", 0x8c7451, 1, 2, 0, EnumSymbol.NONE).addTraits(LIQUID);
PHEROMONE_M = new FluidType("PHEROMONE_M", 0x48C9B0 , 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, new FT_Pheromone(2));
OIL_DS = new FluidType("OIL_DS", 0x121212, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x424242)).addTraits(LIQUID, VISCOUS);
HOTOIL_DS = new FluidType("HOTOIL_DS", 0x3F180F, 2, 3, 0, EnumSymbol.NONE).setTemp(350).addTraits(LIQUID, VISCOUS);
CRACKOIL_DS = new FluidType("CRACKOIL_DS", 0x2A1C11, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x424242)).addTraits(LIQUID, VISCOUS);
HOTCRACKOIL_DS = new FluidType("HOTCRACKOIL_DS", 0x3A1A28, 2, 3, 0, EnumSymbol.NONE).setTemp(350).addTraits(LIQUID, VISCOUS);
NAPHTHA_DS = new FluidType("NAPHTHA_DS", 0x63614E, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x5F6D44)).addTraits(LIQUID, VISCOUS);
LIGHTOIL_DS = new FluidType(138, "LIGHTOIL_DS", 0x63543E, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xB46B52)).addTraits(LIQUID);
// ^ ^ ^ ^ ^ ^ ^ ^
//ADD NEW FLUIDS HERE
@ -509,10 +509,10 @@ public class Fluids {
metaOrder.add(SMOKE);
metaOrder.add(SMOKE_LEADED);
metaOrder.add(SMOKE_POISON);
//bug meth
metaOrder.add(PHEROMONE);
metaOrder.add(PHEROMONE_M);
for(FluidType custom : customFluids) metaOrder.add(custom);
CHLORINE.addTraits(new FT_Toxin().addEntry(new ToxinDirectDamage(ModDamageSource.cloud, 2F, 20, HazardClass.GAS_LUNG, false)));
@ -541,12 +541,16 @@ public class Fluids {
HOTSTEAM.addTraits(new FT_Coolable(STEAM, 1, 10, 2).setEff(CoolingType.TURBINE, eff_steam_turbine).setEff(CoolingType.HEATEXCHANGER, eff_steam_cool));
SUPERHOTSTEAM.addTraits(new FT_Coolable(HOTSTEAM, 1, 10, 18).setEff(CoolingType.TURBINE, eff_steam_turbine).setEff(CoolingType.HEATEXCHANGER, eff_steam_cool));
ULTRAHOTSTEAM.addTraits(new FT_Coolable(SUPERHOTSTEAM, 1, 10, 120).setEff(CoolingType.TURBINE, eff_steam_turbine).setEff(CoolingType.HEATEXCHANGER, eff_steam_cool));
OIL.addTraits(new FT_Heatable().setEff(HeatingType.BOILER, 1.0D).setEff(HeatingType.HEATEXCHANGER, 1.0D).addStep(10, 1, HOTOIL, 1));
OIL_DS.addTraits(new FT_Heatable().setEff(HeatingType.BOILER, 1.0D).setEff(HeatingType.HEATEXCHANGER, 1.0D).addStep(10, 1, HOTOIL_DS, 1));
CRACKOIL.addTraits(new FT_Heatable().setEff(HeatingType.BOILER, 1.0D).setEff(HeatingType.HEATEXCHANGER, 1.0D).addStep(10, 1, HOTCRACKOIL, 1));
CRACKOIL_DS.addTraits(new FT_Heatable().setEff(HeatingType.BOILER, 1.0D).setEff(HeatingType.HEATEXCHANGER, 1.0D).addStep(10, 1, HOTCRACKOIL_DS, 1));
HOTOIL.addTraits(new FT_Coolable(OIL, 1, 1, 10).setEff(CoolingType.HEATEXCHANGER, 1.0D));
HOTOIL_DS.addTraits(new FT_Coolable(OIL_DS, 1, 1, 10).setEff(CoolingType.HEATEXCHANGER, 1.0D));
HOTCRACKOIL.addTraits(new FT_Coolable(CRACKOIL, 1, 1, 10).setEff(CoolingType.HEATEXCHANGER, 1.0D));
HOTCRACKOIL_DS.addTraits(new FT_Coolable(CRACKOIL_DS, 1, 1, 10).setEff(CoolingType.HEATEXCHANGER, 1.0D));
COOLANT.addTraits(new FT_Heatable().setEff(HeatingType.HEATEXCHANGER, 1.0D).setEff(HeatingType.PWR, 1.0D).addStep(300, 1, COOLANT_HOT, 1));
COOLANT_HOT.addTraits(new FT_Coolable(COOLANT, 1, 1, 300).setEff(CoolingType.HEATEXCHANGER, 1.0D));
@ -571,13 +575,13 @@ public class Fluids {
}
/// EXPERIMENTAL ///
/// FINAL ///
long baseline = 100_000L; //we do not know
double demandVeryLow = 0.5D;
double demandLow = 1.0D;
double demandMedium = 1.5D;
double demandHigh = 2.0D;
double demandVeryLow = 0.5D; //for waste gasses
double demandLow = 1.0D; //for fuel oils
double demandMedium = 1.5D; //for processing oils like petroleum and BTX
double demandHigh = 2.0D; //kerosene and jet fuels
double complexityRefinery = 1.1D;
double complexityFraction = 1.05D;
double complexityCracking = 1.25D;
@ -587,13 +591,16 @@ public class Fluids {
double complexityLeaded = 1.5D;
double complexityVacuum = 3.0D;
double complexityReform = 2.5D;
double flammabilityLow = 0.25D;
double flammabilityNormal = 1.0D;
double flammabilityHigh = 2.0D;
double complexityHydro = 2.0D;
double flammabilityLow = 0.25D; //unrefined or low refined oils
double flammabilityNormal = 1.0D; //refined oils
double flammabilityHigh = 2.0D; //satan's asshole
/// the allmighty excel spreadsheet has spoken! ///
/// the almighty excel spreadsheet has spoken! ///
registerCalculatedFuel(OIL, (baseline / 1D * flammabilityLow * demandLow), 0, null);
registerCalculatedFuel(OIL_DS, (baseline / 1D * flammabilityLow * demandLow * complexityHydro), 0, null);
registerCalculatedFuel(CRACKOIL, (baseline / 1D * flammabilityLow * demandLow * complexityCracking), 0, null);
registerCalculatedFuel(CRACKOIL_DS, (baseline / 1D * flammabilityLow * demandLow * complexityCracking * complexityHydro), 0, null);
registerCalculatedFuel(OIL_COKER, (baseline / 1D * flammabilityLow * demandLow * complexityCoker), 0, null);
registerCalculatedFuel(GAS, (baseline / 1D * flammabilityNormal * demandVeryLow), 1.25, FuelGrade.GAS);
registerCalculatedFuel(GAS_COKER, (baseline / 1D * flammabilityNormal * demandVeryLow * complexityCoker), 1.25, FuelGrade.GAS);
@ -604,6 +611,7 @@ public class Fluids {
registerCalculatedFuel(PETROIL_LEADED, (baseline / 0.28 * flammabilityLow * demandLow * complexityRefinery * complexityFraction * complexityChemplant * complexityLubed * complexityLeaded), 1.5D, FuelGrade.MEDIUM);
registerCalculatedFuel(HEATINGOIL, (baseline / 0.31 * flammabilityNormal * demandLow * complexityRefinery * complexityFraction * complexityFraction), 1.25D, FuelGrade.LOW);
registerCalculatedFuel(NAPHTHA, (baseline / 0.25 * flammabilityLow * demandLow * complexityRefinery), 1.5D, FuelGrade.MEDIUM);
registerCalculatedFuel(NAPHTHA_DS, (baseline / 0.25 * flammabilityLow * demandLow * complexityRefinery * complexityHydro), 1.5D, FuelGrade.MEDIUM);
registerCalculatedFuel(NAPHTHA_CRACK, (baseline / 0.40 * flammabilityLow * demandLow * complexityRefinery * complexityCracking), 1.5D, FuelGrade.MEDIUM);
registerCalculatedFuel(NAPHTHA_COKER, (baseline / 0.25 * flammabilityLow * demandLow * complexityCoker), 1.5D, FuelGrade.MEDIUM);
registerCalculatedFuel(GASOLINE, (baseline / 0.20 * flammabilityNormal * demandLow * complexityRefinery * complexityChemplant), 2.5D, FuelGrade.HIGH);
@ -611,6 +619,7 @@ public class Fluids {
registerCalculatedFuel(DIESEL, (baseline / 0.21 * flammabilityNormal * demandLow * complexityRefinery * complexityFraction), 2.5D, FuelGrade.HIGH);
registerCalculatedFuel(DIESEL_CRACK, (baseline / 0.28 * flammabilityNormal * demandLow * complexityRefinery * complexityCracking * complexityFraction), 2.5D, FuelGrade.HIGH);
registerCalculatedFuel(LIGHTOIL, (baseline / 0.15 * flammabilityNormal * demandHigh * complexityRefinery), 1.5D, FuelGrade.MEDIUM);
registerCalculatedFuel(LIGHTOIL_DS, (baseline / 0.15 * flammabilityNormal * demandHigh * complexityRefinery * complexityHydro), 1.5D, FuelGrade.MEDIUM);
registerCalculatedFuel(LIGHTOIL_CRACK, (baseline / 0.30 * flammabilityNormal * demandHigh * complexityRefinery * complexityCracking), 1.5D, FuelGrade.MEDIUM);
registerCalculatedFuel(KEROSENE, (baseline / 0.09 * flammabilityNormal * demandHigh * complexityRefinery * complexityFraction), 1.5D, FuelGrade.AERO);
registerCalculatedFuel(PETROLEUM, (baseline / 0.10 * flammabilityNormal * demandMedium * complexityRefinery), 1.25, FuelGrade.GAS);

View File

@ -0,0 +1,91 @@
package com.hbm.inventory.fluid.trait;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map.Entry;
import com.google.gson.JsonObject;
import com.google.gson.stream.JsonWriter;
import com.hbm.handler.pollution.PollutionHandler;
import com.hbm.handler.pollution.PollutionHandler.PollutionType;
import com.hbm.inventory.fluid.tank.FluidTank;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
public class FT_Polluting extends FluidTrait {
//original draft had both of them inside a hashmap for the release type but honestly handling hash maps in hash maps adds more complexity than it removes
public HashMap<PollutionType, Float> releaseMap = new HashMap();
public HashMap<PollutionType, Float> burnMap = new HashMap();
public FT_Polluting release(PollutionType type, float amount) {
releaseMap.put(type, amount);
return this;
}
public FT_Polluting burn(PollutionType type, float amount) {
burnMap.put(type, amount);
return this;
}
@Override
public void addInfo(List<String> info) {
info.add(EnumChatFormatting.GOLD + "[Polluting]");
}
@Override
public void addInfoHidden(List<String> info) {
if(!this.releaseMap.isEmpty()) {
info.add(EnumChatFormatting.GREEN + "When spilled:");
for(Entry<PollutionType, Float> entry : releaseMap.entrySet()) info.add(EnumChatFormatting.GREEN + " - " + entry.getValue() + " " + entry.getKey() + " per mB");
}
if(!this.burnMap.isEmpty()) {
info.add(EnumChatFormatting.RED + "When burned:");
for(Entry<PollutionType, Float> entry : burnMap.entrySet()) info.add(EnumChatFormatting.RED + " - " + entry.getValue() + " " + entry.getKey() + " per mB");
}
}
@Override
public void onFluidRelease(World world, int x, int y, int z, FluidTank tank, int overflowAmount, FluidReleaseType type) {
if(type == FluidReleaseType.SPILL) for(Entry<PollutionType, Float> entry : releaseMap.entrySet()) PollutionHandler.incrementPollution(world, x, y, z, entry.getKey(), entry.getValue());
if(type == FluidReleaseType.BURN) for(Entry<PollutionType, Float> entry : burnMap.entrySet()) PollutionHandler.incrementPollution(world, x, y, z, entry.getKey(), entry.getValue());
}
@Override
public void serializeJSON(JsonWriter writer) throws IOException {
writer.name("release").beginObject();
for(Entry<PollutionType, Float> entry : releaseMap.entrySet()) {
writer.name(entry.toString()).value(entry.getValue());
}
writer.endObject();
writer.name("burn").beginObject();
for(Entry<PollutionType, Float> entry : burnMap.entrySet()) {
writer.name(entry.toString()).value(entry.getValue());
}
writer.endObject();
}
@Override
public void deserializeJSON(JsonObject obj) {
if(obj.has("release")) {
JsonObject release = obj.get("release").getAsJsonObject();
for(PollutionType type : PollutionType.values()) {
if(release.has(type.name())) {
releaseMap.put(type, release.get(type.name()).getAsFloat());
}
}
}
if(obj.has("burn")) {
JsonObject release = obj.get("burn").getAsJsonObject();
for(PollutionType type : PollutionType.values()) {
if(release.has(type.name())) {
burnMap.put(type, release.get(type.name()).getAsFloat());
}
}
}
}
}

View File

@ -26,7 +26,7 @@ public class FT_VentRadiation extends FluidTrait {
}
@Override
public void onFluidRelease(World world, int x, int y, int z, FluidTank tank, int overflowAmount) {
public void onFluidRelease(World world, int x, int y, int z, FluidTank tank, int overflowAmount, FluidReleaseType type) {
ChunkRadiationManager.proxy.incrementRad(world, x, y, z, overflowAmount * radPerMB);
}

View File

@ -25,6 +25,7 @@ public abstract class FluidTrait {
traitNameMap.put("toxin", FT_Toxin.class); // x
traitNameMap.put("ventradiation", FT_VentRadiation.class); // x
traitNameMap.put("pwrmoderator", FT_PWRModerator.class); // x
traitNameMap.put("polluting", FT_Polluting.class); // x
traitNameMap.put("gaseous", FT_Gaseous.class);
traitNameMap.put("gaseous_art", FT_Gaseous_ART.class);
@ -46,8 +47,14 @@ public abstract class FluidTrait {
/* General names of simple traits which are displayed when holding shift */
public void addInfoHidden(List<String> info) { }
public void onFluidRelease(World world, int x, int y, int z, FluidTank tank, int overflowAmount) { }
public void onFluidRelease(World world, int x, int y, int z, FluidTank tank, int overflowAmount, FluidReleaseType type) { }
public void serializeJSON(JsonWriter writer) throws IOException { }
public void deserializeJSON(JsonObject obj) { }
public static enum FluidReleaseType {
VOID, //if fluid is deleted entirely, shouldn't be used
BURN, //if fluid is burned or combusted
SPILL //if fluid is spilled via leakage or the container breaking
}
}

View File

@ -270,7 +270,6 @@ public class AssemblerRecipes {
makeRecipe(new ComparableStack(ModBlocks.machine_gascent, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_element, 4), new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(DESH.ingot(), 2), new OreDictStack(STEEL.plate528(), 8), new ComparableStack(ModItems.coil_tungsten, 4), new ComparableStack(ModItems.circuit_red_copper, 1) }, 300);
makeRecipe(new ComparableStack(ModBlocks.machine_rtg_furnace_off, 1), new AStack[] {new ComparableStack(Blocks.furnace, 1), new ComparableStack(ModItems.rtg_unit, 3), new OreDictStack(PB.plate528(), 6), new OreDictStack(OreDictManager.getReflector(), 4), new OreDictStack(CU.plate(), 2), },150);
makeRecipe(new ComparableStack(ModBlocks.machine_diesel, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 1), new ComparableStack(ModItems.piston_selenium, 1), new OreDictStack(STEEL.plateCast(), 1), new ComparableStack(ModItems.coil_copper, 4), }, 60);
makeRecipe(new ComparableStack(ModBlocks.machine_selenium, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(TI.plate(), 6), new OreDictStack(CU.plate(), 8), new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.hull_small_steel, 9), new ComparableStack(ModItems.pedestal_steel, 1), new ComparableStack(ModItems.coil_copper, 4), },250);
makeRecipe(new ComparableStack(ModBlocks.machine_rtg_grey, 1), new AStack[] {new ComparableStack(ModItems.rtg_unit, 3), new OreDictStack(STEEL.plate528(), 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(ANY_PLASTIC.ingot(), 3), },200);
makeRecipe(new ComparableStack(ModBlocks.machine_battery, 1), new AStack[] {new OreDictStack(STEEL.plateWelded(), 1), new OreDictStack(S.dust(), 12), new OreDictStack(PB.dust(), 12), new OreDictStack(MINGRADE.ingot(), 2), new ComparableStack(ModItems.wire_red_copper, 4), },200);
makeRecipe(new ComparableStack(ModBlocks.machine_lithium_battery, 1), new AStack[] {new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(CO.dust(), 12), new OreDictStack(LI.dust(), 12), new OreDictStack(ALLOY.ingot(), 2), new ComparableStack(ModItems.wire_red_copper, 4), },400);

View File

@ -62,6 +62,7 @@ public class CokerRecipes extends SerializableRecipe {
registerRecipe(BITUMEN, 16_000, DictFrame.fromOne(ModItems.coke, EnumCokeType.PETROLEUM), new FluidStack(OIL_COKER, 1_600));
registerRecipe(LUBRICANT, 12_000, DictFrame.fromOne(ModItems.coke, EnumCokeType.PETROLEUM), new FluidStack(OIL_COKER, 1_200));
registerRecipe(CALCIUM_SOLUTION, 125, new ItemStack(ModItems.powder_calcium), new FluidStack(SPENTSTEAM, 100));
//only cokable gas to extract sulfur content
registerRecipe(SOURGAS, 250, new ItemStack(ModItems.sulfur), new FluidStack(GAS_COKER, 150));
}

View File

@ -1338,7 +1338,9 @@ public class ModEventHandlerClient {
case 12: main.splashText = "Imagine being scared by splash texts!"; break;
}
if(Math.random() < 0.1) main.splashText = "Redditors aren't people!";
double d = Math.random();
if(d < 0.1) main.splashText = "Redditors aren't people!";
else if(d < 0.2) main.splashText = "Can someone tell me what corrosive fumes the people on Reddit are huffing so I can avoid those more effectively?";
}
}
}

View File

@ -25,35 +25,35 @@ public class ResourceManager {
////Obj TEs
//Turrets
public static final IModelCustom turret_chekhov = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_chekhov.obj"));
public static final IModelCustom turret_jeremy = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_jeremy.obj"));
public static final IModelCustom turret_tauon = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_tauon.obj"));
public static final IModelCustom turret_richard = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_richard.obj"));
public static final IModelCustom turret_howard = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_howard.obj"));
public static final IModelCustom turret_maxwell = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_microwave.obj"));
public static final IModelCustom turret_fritz = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_fritz.obj"));
public static final IModelCustom turret_brandon = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_brandon.obj"));
public static final IModelCustom turret_arty = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_arty.obj")).asDisplayList(); // test!
public static final IModelCustom turret_chekhov = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_chekhov.obj")).asDisplayList();
public static final IModelCustom turret_jeremy = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_jeremy.obj")).asDisplayList();
public static final IModelCustom turret_tauon = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_tauon.obj")).asDisplayList();
public static final IModelCustom turret_richard = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_richard.obj")).asDisplayList();
public static final IModelCustom turret_howard = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_howard.obj")).asDisplayList();
public static final IModelCustom turret_maxwell = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_microwave.obj")).asDisplayList();
public static final IModelCustom turret_fritz = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_fritz.obj")).asDisplayList();
public static final IModelCustom turret_brandon = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_brandon.obj")).asDisplayList();
public static final IModelCustom turret_arty = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_arty.obj")).asDisplayList();
public static final IModelCustom turret_himars = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_himars.obj")).asDisplayList();
public static final IModelCustom turret_sentry = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_sentry.obj"));
public static final IModelCustom turret_sentry = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_sentry.obj")).asDisplayList();
public static final IModelCustom turret_howard_damaged = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_howard_damaged.obj"));
public static final IModelCustom turret_howard_damaged = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_howard_damaged.obj")).asDisplayList();
//Heaters
public static final IModelCustom heater_firebox = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/firebox.obj"));
public static final IModelCustom heater_oven = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/heating_oven.obj"));
public static final IModelCustom heater_oilburner = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/oilburner.obj"));
public static final IModelCustom heater_electric = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/electric_heater.obj"), false);
public static final IModelCustom heater_heatex = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/heatex.obj"));
public static final IModelCustom heater_firebox = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/firebox.obj"), false).asDisplayList();
public static final IModelCustom heater_oven = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/heating_oven.obj"), false).asDisplayList();
public static final IModelCustom heater_oilburner = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/oilburner.obj")).asDisplayList();
public static final IModelCustom heater_electric = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/electric_heater.obj"), false).asDisplayList();
public static final IModelCustom heater_heatex = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/heatex.obj")).asDisplayList();
//Heat Engines
public static final IModelCustom stirling = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/stirling.obj"));
public static final IModelCustom sawmill = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/sawmill.obj"));
public static final IModelCustom crucible_heat = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/crucible.obj"));
public static final IModelCustom boiler = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/boiler.obj"));
public static final IModelCustom boiler_burst = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/boiler_burst.obj"));
public static final IModelCustom boiler_industrial = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/industrial_boiler.obj"));
public static final IModelCustom hephaestus = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/hephaestus.obj"));
public static final IModelCustom boiler = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/boiler.obj")).asDisplayList();
public static final IModelCustom boiler_burst = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/boiler_burst.obj")).asDisplayList();
public static final IModelCustom boiler_industrial = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/industrial_boiler.obj")).asDisplayList();
public static final IModelCustom hephaestus = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/hephaestus.obj")).asDisplayList();
//Caster o' Strands
public static final IModelCustom strand_caster = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/strand_caster.obj"));
@ -70,40 +70,40 @@ public class ResourceManager {
public static final IModelCustom mine_fat = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/mine_fat.obj"));
//Oil Pumps
public static final IModelCustom derrick = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/derrick.obj"));
public static final IModelCustom pumpjack = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/pumpjack.obj"));
public static final IModelCustom fracking_tower = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/fracking_tower.obj"));
public static final IModelCustom derrick = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/derrick.obj")).asDisplayList();
public static final IModelCustom pumpjack = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/pumpjack.obj")).asDisplayList();
public static final IModelCustom fracking_tower = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/fracking_tower.obj")).asDisplayList();
//Refinery
public static final IModelCustom refinery = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/refinery.obj"));
public static final IModelCustom vacuum_distill = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/vacuum_distill.obj"));
public static final IModelCustom refinery_exploded = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/refinery_exploded.obj"));
public static final IModelCustom refinery = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/refinery.obj")).asDisplayList();
public static final IModelCustom vacuum_distill = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/vacuum_distill.obj")).asDisplayList();
public static final IModelCustom refinery_exploded = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/refinery_exploded.obj")).asDisplayList();
public static final IModelCustom fraction_tower = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/fraction_tower.obj"));
public static final IModelCustom fraction_spacer = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/fraction_spacer.obj"));
public static final IModelCustom cracking_tower = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/cracking_tower.obj")).asDisplayList();
public static final IModelCustom catalytic_reformer = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/catalytic_reformer.obj")).asDisplayList();
public static final IModelCustom hydrotreater = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/hydrotreater.obj")).asDisplayList();
public static final IModelCustom liquefactor = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/liquefactor.obj"));
public static final IModelCustom solidifier = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/solidifier.obj"));
public static final IModelCustom compressor = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/compressor.obj"));
public static final IModelCustom liquefactor = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/liquefactor.obj")).asDisplayList();
public static final IModelCustom solidifier = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/solidifier.obj")).asDisplayList();
public static final IModelCustom compressor = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/compressor.obj")).asDisplayList();
public static final IModelCustom coker = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/coker.obj")).asDisplayList();
//Flare Stack
public static final IModelCustom oilflare = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/flare_stack.obj"));
public static final IModelCustom chimney_brick = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/chimney_brick.obj"));
public static final IModelCustom chimney_industrial = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/chimney_industrial.obj"));
public static final IModelCustom oilflare = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/flare_stack.obj")).asDisplayList();
public static final IModelCustom chimney_brick = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/chimney_brick.obj")).asDisplayList();
public static final IModelCustom chimney_industrial = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/chimney_industrial.obj")).asDisplayList();
//Tank
public static final IModelCustom fluidtank = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/fluidtank.obj"));
public static final IModelCustom fluidtank_exploded = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/fluidtank_exploded.obj"));
public static final IModelCustom bat9000 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/bat9000.obj"));
public static final IModelCustom orbus = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/orbus.obj"));
public static final IModelCustom fluidtank = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/fluidtank.obj")).asDisplayList();
public static final IModelCustom fluidtank_exploded = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/fluidtank_exploded.obj")).asDisplayList();
public static final IModelCustom bat9000 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/bat9000.obj")).asDisplayList();
public static final IModelCustom orbus = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/orbus.obj")).asDisplayList();
//Turbofan
public static final IModelCustom turbofan = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/turbofan.obj"));
public static final IModelCustom turbofan = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/turbofan.obj")).asDisplayList();
//Gas Turbine
public static final IModelCustom turbinegas = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/turbinegas.obj"));
public static final IModelCustom turbinegas = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/turbinegas.obj")).asDisplayList();
//Pumps
public static final IModelCustom pump = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/pump.obj")).asDisplayList();
@ -114,9 +114,9 @@ public class ResourceManager {
public static final IModelCustom chungus = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/chungus.obj")).asDisplayList();
//Cooling Tower
public static final IModelCustom tower_small = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/tower_small.obj"));
public static final IModelCustom tower_large = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/tower_large.obj"));
public static final IModelCustom condenser = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/condenser.obj"));
public static final IModelCustom tower_small = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/tower_small.obj")).asDisplayList();
public static final IModelCustom tower_large = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/tower_large.obj")).asDisplayList();
public static final IModelCustom condenser = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/condenser.obj")).asDisplayList();
//Wood burner
public static final IModelCustom wood_burner = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/wood_burner.obj"));
@ -273,11 +273,6 @@ public class ResourceManager {
public static final IModelCustom bomb_solinium = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/ufp.obj"));
public static final IModelCustom n2 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/n2.obj"));
public static final IModelCustom bomb_multi = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/BombGeneric.obj"));
public static final IModelCustom n45_globe = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/n45_globe.obj"));
public static final IModelCustom n45_knob = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/n45_knob.obj"));
public static final IModelCustom n45_rod = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/n45_rod.obj"));
public static final IModelCustom n45_stand = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/n45_stand.obj"));
public static final IModelCustom n45_chain = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/n45_chain.obj"));
public static final IModelCustom fstbmb = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/fstbmb.obj"));
public static final IModelCustom dud = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/BalefireCrashed.obj"));

View File

@ -144,14 +144,6 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG
connections = connectionsDouble / 2;
connectionsControlled = connectionsControlledDouble / 2;
/*System.out.println("Finalized nuclear reactor!");
System.out.println("Rods: " + rodCount);
System.out.println("Connections: " + connections);
System.out.println("Controlled connections: " + connectionsControlled);
System.out.println("Heatex: " + heatexCount);
System.out.println("Channels: " + channelCount);
System.out.println("Sources: " + sourceCount);*/
}
@Override
@ -172,13 +164,13 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG
int chunkX = xCoord >> 4;
int chunkZ = zCoord >> 4;
//since fluid sources are often not within 1 chunk, we just do 2 chunks distance and call it a day
//since fluid sources are often not within 1 chunk, we just do 3 chunks distance and call it a day
if(!worldObj.getChunkProvider().chunkExists(chunkX, chunkZ) ||
!worldObj.getChunkProvider().chunkExists(chunkX + 2, chunkZ + 2) ||
!worldObj.getChunkProvider().chunkExists(chunkX + 2, chunkZ - 2) ||
!worldObj.getChunkProvider().chunkExists(chunkX - 2, chunkZ + 2) ||
!worldObj.getChunkProvider().chunkExists(chunkX - 2, chunkZ - 2)) {
this.unloadDelay = 40;
!worldObj.getChunkProvider().chunkExists(chunkX + 3, chunkZ + 3) ||
!worldObj.getChunkProvider().chunkExists(chunkX + 3, chunkZ - 3) ||
!worldObj.getChunkProvider().chunkExists(chunkX - 3, chunkZ + 3) ||
!worldObj.getChunkProvider().chunkExists(chunkX - 3, chunkZ - 3)) {
this.unloadDelay = 60;
}
if(this.assembled) {
@ -265,6 +257,9 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG
if(this.coreHeat > this.coreHeatCapacity) {
meltDown();
}
} else {
this.hullHeat = 0;
this.coreHeat = 0;
}
}

View File

@ -90,7 +90,7 @@ public abstract class TileEntityRBMKBase extends TileEntityLoadedBase implements
//unused
public int trackingRange() {
return 25;
return 15;
}
@Override
@ -135,14 +135,14 @@ public abstract class TileEntityRBMKBase extends TileEntityLoadedBase implements
this.heat -= processedWater * heatConsumption;
}
public static final ForgeDirection[] heatDirs = new ForgeDirection[] {
public static final ForgeDirection[] neighborDirs = new ForgeDirection[] {
ForgeDirection.NORTH,
ForgeDirection.EAST,
ForgeDirection.SOUTH,
ForgeDirection.WEST
};
protected TileEntityRBMKBase[] heatCache = new TileEntityRBMKBase[4];
protected TileEntityRBMKBase[] neighborCache = new TileEntityRBMKBase[4];
/**
* Moves heat to neighboring parts, if possible, in a relatively fair manner
@ -156,24 +156,24 @@ public abstract class TileEntityRBMKBase extends TileEntityLoadedBase implements
int steamTot = this.steam;
int index = 0;
for(ForgeDirection dir : heatDirs) {
for(ForgeDirection dir : neighborDirs) {
if(heatCache[index] != null && heatCache[index].isInvalid())
heatCache[index] = null;
if(neighborCache[index] != null && neighborCache[index].isInvalid())
neighborCache[index] = null;
if(heatCache[index] == null) {
if(neighborCache[index] == null) {
TileEntity te = Compat.getTileStandard(worldObj, xCoord + dir.offsetX, yCoord, zCoord + dir.offsetZ);
if(te instanceof TileEntityRBMKBase) {
TileEntityRBMKBase base = (TileEntityRBMKBase) te;
heatCache[index] = base;
neighborCache[index] = base;
}
}
index++;
}
for(TileEntityRBMKBase base : heatCache) {
for(TileEntityRBMKBase base : neighborCache) {
if(base != null) {
rec.add(base);

View File

@ -68,7 +68,7 @@ public abstract class TileEntityRBMKControl extends TileEntityRBMKSlottedBase im
@Override
public int trackingRange() {
return 150;
return 100;
}
@Override

View File

@ -51,6 +51,11 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM
public boolean isModerated() {
return ((RBMKRod)this.getBlockType()).moderated;
}
@Override
public int trackingRange() {
return 25;
}
@SuppressWarnings("incomplete-switch") //shut the fuck up
@Override

View File

@ -246,8 +246,9 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc
worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "random.fizz", 1.0F, 1.0F);
}
if(b == ModBlocks.barrel_corroded && worldObj.rand.nextInt(3) == 0) {
tank.setFill(tank.getFill() - 1);
if(b == ModBlocks.barrel_corroded ) {
if(worldObj.rand.nextInt(3) == 0) tank.setFill(tank.getFill() - 1);
if(worldObj.rand.nextInt(3 * 60 * 20) == 0) worldObj.func_147480_a(xCoord, yCoord, zCoord, false);
}
//For when Tom's firestorm hits a barrel full of water

View File

@ -671,6 +671,7 @@ hbmfluid.coaloil=Kohleöl
hbmfluid.coolant=Kühlflüssigkeit
hbmfluid.coolant_hot=Heiße Kühlflüssigkeit
hbmfluid.crackoil=Crack-Öl
hbmfluid.crackoil_ds=Entschwefeltes Crack-Öl
hbmfluid.cryogel=Kryogel
hbmfluid.death=Osmiridiumlösung
hbmfluid.deuterium=Deuterium
@ -698,7 +699,9 @@ hbmfluid.heavywater_hot=Heißes Schweres Wasser
hbmfluid.helium3=Helium-3
hbmfluid.helium4=Helium-4
hbmfluid.hotcrackoil=Heißes Crack-Öl
hbmfluid.hotcrackoil_ds=Entschwefeltes Heißes Crack-Öl
hbmfluid.hotoil=Heißes Rohöl
hbmfluid.hotoil_ds=Entschwefeltes Heißes Rohöl
hbmfluid.hotsteam=Dichter Dampf
hbmfluid.hydrogen=Flüssiger Wasserstoff
hbmfluid.iongel=Ionengel
@ -707,6 +710,7 @@ hbmfluid.kerosene_reform=Düsentreibstoff
hbmfluid.lava=Lava
hbmfluid.lightoil=Leichtöl
hbmfluid.lightoil_crack=Crack-Leichtöl
hbmfluid.lightoil_ds=Entschwefeltes Leichtöl
hbmfluid.lightoil_vacuum=Vakuum-Leichtöl
hbmfluid.lpg=LPG
hbmfluid.lubricant=Schmiermittel
@ -717,6 +721,7 @@ hbmfluid.mustardgas=Senfgas
hbmfluid.naphtha=Mitteldestillat
hbmfluid.naphtha_coker=Koker-Naphtha
hbmfluid.naphtha_crack=Crack-Mitteldestillat
hbmfluid.naphtha_ds=Entschwefeltes Mitteldestillat
hbmfluid.nitan=NITAN© 100 Oktan Supertreibstoff
hbmfluid.nitric_acid=Salpetersäure
hbmfluid.nitroglycerin=Nitroglycerin

View File

@ -1314,6 +1314,7 @@ hbmfluid.colloid=Colloid
hbmfluid.coolant=Coolant
hbmfluid.coolant_hot=Hot Coolant
hbmfluid.crackoil=Cracked Oil
hbmfluid.crackoil_ds=Desulfurized Cracked Oil
hbmfluid.cryogel=Cryogel
hbmfluid.death=Osmiridic Solution
hbmfluid.deuterium=Deuterium
@ -1341,7 +1342,9 @@ hbmfluid.heavywater_hot=Hot Heavy Water
hbmfluid.helium3=Helium-3
hbmfluid.helium4=Helium-4
hbmfluid.hotcrackoil=Hot Cracked Oil
hbmfluid.hotcrackoil_ds=Desulfurized Hot Cracked Oil
hbmfluid.hotoil=Hot Crude Oil
hbmfluid.hotoil_ds=Desulfurized Hot Crude Oil
hbmfluid.hotsteam=Dense Steam
hbmfluid.hydrogen=Liquid Hydrogen
hbmfluid.iongel=Ionic Gel
@ -1350,6 +1353,7 @@ hbmfluid.kerosene_reform=Jet Fuel
hbmfluid.lava=Lava
hbmfluid.lightoil=Light Oil
hbmfluid.lightoil_crack=Cracked Light Oil
hbmfluid.lightoil_ds=Desulfurized Light Oil
hbmfluid.lightoil_vacuum=Vacuum Light Oil
hbmfluid.lpg=LPG
hbmfluid.lubricant=Engine Lubricant
@ -1360,12 +1364,14 @@ hbmfluid.mustardgas=Mustard Gas
hbmfluid.naphtha=Naphtha
hbmfluid.naphtha_coker=Coker Naphtha
hbmfluid.naphtha_crack=Cracked Naphtha
hbmfluid.naphtha_ds=Desulfurized Naphtha
hbmfluid.nitan=NITAN© 100 Octane Super Fuel
hbmfluid.nitric_acid=Nitric Acid
hbmfluid.nitroglycerin=Nitroglycerin
hbmfluid.none=None
hbmfluid.oil=Crude Oil
hbmfluid.oil_coker=Coker Oil
hbmfluid.oil_ds=Desulfurized Crude Oil
hbmfluid.oxygen=Liquid Oxygen
hbmfluid.oxyhydrogen=Oxyhydrogen
hbmfluid.pain=Pandemonium(III)tantalite Solution

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,75 +0,0 @@
# Blender v2.76 (sub 0) OBJ File: 'n45_knob.blend'
# www.blender.org
o Cylinder
v 0.000000 0.475000 -0.062500
v 0.000000 0.525000 -0.062500
v 0.044194 0.475000 -0.044194
v 0.044194 0.525000 -0.044194
v 0.062500 0.475000 0.000000
v 0.062500 0.525000 0.000000
v 0.044194 0.475000 0.044194
v 0.044194 0.525000 0.044194
v -0.000000 0.475000 0.062500
v -0.000000 0.525000 0.062500
v -0.044194 0.475000 0.044194
v -0.044194 0.525000 0.044194
v -0.062500 0.475000 -0.000000
v -0.062500 0.525000 -0.000000
v -0.044194 0.475000 -0.044194
v -0.044194 0.525000 -0.044194
vt 0.610389 0.766502
vt 0.766501 0.610389
vt 0.929679 0.773566
vt 0.766501 0.389611
vt 0.997269 0.389611
vt 0.610388 0.233498
vt 0.773565 0.070321
vt 0.389611 0.233499
vt 0.389611 0.002731
vt 0.233498 0.389612
vt 0.070321 0.226435
vt 0.233498 0.610389
vt 0.002731 0.610389
vt 0.389611 0.766502
vt 0.610388 0.997269
vt 0.226434 0.929679
vt 0.773566 0.929679
vt 0.997269 0.610388
vt 0.929678 0.226434
vt 0.610388 0.002731
vt 0.226434 0.070322
vt 0.002731 0.389612
vt 0.389611 0.997269
vt 0.070321 0.773566
vn 0.382700 0.000000 -0.923900
vn 0.923900 0.000000 -0.382700
vn 0.923900 0.000000 0.382700
vn 0.382700 0.000000 0.923900
vn -0.382700 0.000000 0.923900
vn -0.923900 0.000000 0.382700
vn 0.000000 1.000000 0.000000
vn -0.382700 0.000000 -0.923900
vn -0.923900 0.000000 -0.382700
s off
f 2/1/1 4/2/1 3/3/1
f 4/2/2 6/4/2 5/5/2
f 6/4/3 8/6/3 7/7/3
f 8/6/4 10/8/4 9/9/4
f 10/8/5 12/10/5 11/11/5
f 12/10/6 14/12/6 13/13/6
f 14/12/7 10/8/7 2/1/7
f 16/14/8 2/1/8 1/15/8
f 14/12/9 16/14/9 15/16/9
f 1/17/1 2/1/1 3/3/1
f 3/18/2 4/2/2 5/5/2
f 5/19/3 6/4/3 7/7/3
f 7/20/4 8/6/4 9/9/4
f 9/21/5 10/8/5 11/11/5
f 11/22/6 12/10/6 13/13/6
f 6/4/7 4/2/7 2/1/7
f 2/1/7 16/14/7 14/12/7
f 14/12/7 12/10/7 10/8/7
f 10/8/7 8/6/7 6/4/7
f 6/4/7 2/1/7 10/8/7
f 15/23/8 16/14/8 1/15/8
f 13/24/9 14/12/9 15/16/9

View File

@ -1,75 +0,0 @@
# Blender v2.76 (sub 0) OBJ File: 'n45_rod.blend'
# www.blender.org
o Cylinder.001
v 0.000000 0.512500 -0.031000
v 0.000000 0.887500 -0.031000
v 0.021920 0.512500 -0.021920
v 0.021920 0.887500 -0.021920
v 0.031000 0.512500 0.000000
v 0.031000 0.887500 0.000000
v 0.021920 0.512500 0.021920
v 0.021920 0.887500 0.021920
v -0.000000 0.512500 0.031000
v -0.000000 0.887500 0.031000
v -0.021920 0.512500 0.021920
v -0.021920 0.887500 0.021920
v -0.031000 0.512500 0.000000
v -0.031000 0.887500 0.000000
v -0.021920 0.512500 -0.021920
v -0.021920 0.887500 -0.021920
vt 0.423308 0.866102
vt 0.368629 0.866102
vt 0.368629 0.001892
vt 0.313950 0.866102
vt 0.313950 0.001892
vt 0.259271 0.866102
vt 0.259272 0.001892
vt 0.204592 0.866102
vt 0.204593 0.001892
vt 0.149913 0.866102
vt 0.149914 0.001891
vt 0.095234 0.866102
vt 0.095236 0.001891
vt 0.095234 0.998109
vt 0.040555 0.998108
vt 0.477987 0.866102
vt 0.423308 0.001892
vt 0.040555 0.866102
vt 0.040557 0.001891
vt 0.001891 0.959445
vt 0.001891 0.904766
vt 0.133898 0.904766
vt 0.133898 0.959445
vt 0.477986 0.001892
vn 0.382700 0.000000 -0.923900
vn 0.923900 0.000000 -0.382700
vn 0.923900 0.000000 0.382700
vn 0.382700 0.000000 0.923900
vn -0.382700 0.000000 0.923900
vn -0.923900 0.000000 0.382700
vn 0.000000 1.000000 0.000000
vn -0.382700 0.000000 -0.923900
vn -0.923900 0.000000 -0.382700
s off
f 2/1/1 4/2/1 3/3/1
f 4/2/2 6/4/2 5/5/2
f 6/4/3 8/6/3 7/7/3
f 8/6/4 10/8/4 9/9/4
f 10/8/5 12/10/5 11/11/5
f 12/10/6 14/12/6 13/13/6
f 14/12/7 8/14/7 6/15/7
f 16/16/8 2/1/8 1/17/8
f 14/12/9 16/18/9 15/19/9
f 1/17/1 2/1/1 3/3/1
f 3/3/2 4/2/2 5/5/2
f 5/5/3 6/4/3 7/7/3
f 7/7/4 8/6/4 9/9/4
f 9/9/5 10/8/5 11/11/5
f 11/11/6 12/10/6 13/13/6
f 6/15/7 4/20/7 14/12/7
f 2/21/7 16/18/7 14/12/7
f 14/12/7 12/22/7 10/23/7
f 10/23/7 8/14/7 14/12/7
f 4/20/7 2/21/7 14/12/7
f 15/24/8 16/16/8 1/17/8
f 13/13/9 14/12/9 15/19/9

View File

@ -1,166 +0,0 @@
# Blender v2.76 (sub 0) OBJ File: 'n45_stand.blend'
# www.blender.org
o Icosphere.001
v 0.000000 0.100000 -0.125000
v 0.000000 0.525000 -0.125000
v 0.088388 0.100000 -0.088388
v 0.088388 0.525000 -0.088388
v 0.125000 0.100000 0.000000
v 0.125000 0.525000 0.000000
v 0.088388 0.100000 0.088388
v 0.088388 0.525000 0.088388
v -0.000000 0.100000 0.125000
v -0.000000 0.525000 0.125000
v -0.088388 0.100000 0.088388
v -0.088388 0.525000 0.088388
v -0.125000 0.100000 -0.000000
v -0.125000 0.525000 -0.000000
v -0.088388 0.100000 -0.088388
v -0.088388 0.525000 -0.088388
v 0.000000 0.100000 -0.250000
v 0.176777 0.100000 -0.176777
v 0.250000 0.100000 0.000000
v 0.176777 0.100000 0.176777
v -0.000000 0.100000 0.250000
v -0.176777 0.100000 0.176777
v -0.250000 0.100000 -0.000000
v -0.176777 0.100000 -0.176777
v -0.000000 0.000000 -0.375000
v 0.265165 0.000000 -0.265165
v 0.375000 0.000000 0.000000
v 0.265165 0.000000 0.265165
v -0.000000 0.000000 0.375000
v -0.265165 0.000000 0.265165
v -0.375000 0.000000 -0.000000
v -0.265165 0.000000 -0.265165
vt 0.590034 0.983303
vt 0.536822 0.983303
vt 0.536822 0.746920
vt 0.483611 0.983303
vt 0.483611 0.746920
vt 0.430399 0.983303
vt 0.430399 0.746920
vt 0.377187 0.983303
vt 0.377187 0.746920
vt 0.323976 0.983303
vt 0.323976 0.746920
vt 0.270764 0.983303
vt 0.270764 0.746920
vt 0.643246 0.983303
vt 0.590034 0.746920
vt 0.696457 0.983303
vt 0.643246 0.746920
vt 0.807223 0.505400
vt 0.737698 0.505400
vt 0.778425 0.407078
vt 0.346117 0.113818
vt 0.444439 0.073092
vt 0.501535 0.141409
vt 0.175484 0.456239
vt 0.224645 0.407078
vt 0.265371 0.505400
vt 0.607792 0.676034
vt 0.558631 0.626872
vt 0.656953 0.586146
vt 0.195847 0.194564
vt 0.265371 0.194564
vt 0.224645 0.292886
vt 0.827586 0.243725
vt 0.778425 0.292886
vt 0.737698 0.194564
vt 0.346117 0.655670
vt 0.346117 0.586146
vt 0.444439 0.626872
vt 0.395278 0.023931
vt 0.656953 0.044294
vt 0.656953 0.113818
vt 0.558631 0.073092
vt 0.649018 0.497465
vt 0.354051 0.497465
vt 0.354052 0.202499
vt 0.292962 0.349982
vt 0.501535 0.558555
vt 0.710108 0.349982
vt 0.649018 0.202499
vt 0.696457 0.746920
vt 0.827586 0.456239
vt 0.195847 0.505400
vt 0.656953 0.655670
vt 0.175484 0.243725
vt 0.807223 0.194564
vt 0.395278 0.676034
vt 0.346117 0.044294
vt 0.607792 0.023931
vn 0.382700 0.000000 -0.923900
vn 0.923900 0.000000 -0.382700
vn 0.923900 0.000000 0.382700
vn 0.382700 0.000000 0.923900
vn -0.382700 0.000000 0.923900
vn -0.923900 0.000000 0.382700
vn -0.382700 0.000000 -0.923900
vn -0.923900 0.000000 -0.382700
vn -0.000000 1.000000 -0.000000
vn -0.250500 0.756000 -0.604800
vn 0.000000 -1.000000 0.000000
vn -0.604800 0.756000 0.250500
vn 0.250500 0.756000 0.604800
vn 0.604800 0.756000 -0.250500
vn -0.604800 0.756000 -0.250500
vn -0.250500 0.756000 0.604800
vn 0.604800 0.756000 0.250500
vn 0.250500 0.756000 -0.604800
s off
f 2/1/1 4/2/1 3/3/1
f 4/2/2 6/4/2 5/5/2
f 6/4/3 8/6/3 7/7/3
f 8/6/4 10/8/4 9/9/4
f 10/8/5 12/10/5 11/11/5
f 12/10/6 14/12/6 13/13/6
f 16/14/7 2/1/7 1/15/7
f 14/16/8 16/14/8 15/17/8
f 7/18/9 20/19/9 19/20/9
f 24/21/10 17/22/10 25/23/10
f 13/24/9 23/25/9 22/26/9
f 9/27/9 21/28/9 20/29/9
f 15/30/9 24/31/9 23/32/9
f 5/33/9 19/34/9 18/35/9
f 11/36/9 22/37/9 21/38/9
f 1/39/9 17/22/9 24/21/9
f 3/40/9 18/41/9 17/42/9
f 28/43/11 30/44/11 32/45/11
f 23/25/12 31/46/12 30/44/12
f 21/28/13 29/47/13 28/43/13
f 19/34/14 27/48/14 26/49/14
f 24/31/15 32/45/15 31/46/15
f 22/37/16 30/44/16 29/47/16
f 19/20/17 20/19/17 28/43/17
f 17/42/18 18/41/18 26/49/18
f 1/15/1 2/1/1 3/3/1
f 3/3/2 4/2/2 5/5/2
f 5/5/3 6/4/3 7/7/3
f 7/7/4 8/6/4 9/9/4
f 9/9/5 10/8/5 11/11/5
f 11/11/6 12/10/6 13/13/6
f 15/17/7 16/14/7 1/15/7
f 13/50/8 14/16/8 15/17/8
f 5/51/9 7/18/9 19/20/9
f 32/45/10 24/21/10 25/23/10
f 11/52/9 13/24/9 22/26/9
f 7/53/9 9/27/9 20/29/9
f 13/54/9 15/30/9 23/32/9
f 3/55/9 5/33/9 18/35/9
f 9/56/9 11/36/9 21/38/9
f 15/57/9 1/39/9 24/21/9
f 1/58/9 3/40/9 17/42/9
f 32/45/11 25/23/11 26/49/11
f 26/49/11 27/48/11 28/43/11
f 28/43/11 29/47/11 30/44/11
f 30/44/11 31/46/11 32/45/11
f 32/45/11 26/49/11 28/43/11
f 22/26/12 23/25/12 30/44/12
f 20/29/13 21/28/13 28/43/13
f 18/35/14 19/34/14 26/49/14
f 23/32/15 24/31/15 31/46/15
f 21/38/16 22/37/16 29/47/16
f 27/48/17 19/20/17 28/43/17
f 25/23/18 17/42/18 26/49/18

Binary file not shown.

After

Width:  |  Height:  |  Size: 446 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 576 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 568 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 497 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 553 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 390 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB