big smoke

This commit is contained in:
Bob 2023-07-01 19:19:09 +02:00
parent fcfa725f0b
commit 8bc1f73075
19 changed files with 43 additions and 23 deletions

View File

@ -6,9 +6,9 @@
* Can be grilled * Can be grilled
* Fluid valves * Fluid valves
* come in manual and restone variants * come in manual and restone variants
* Chimney * Smokestack
* Most polluting machines can now be connected to a chimney with exhaust pipes * Most polluting machines can now be connected to a smokestack with exhaust pipes
* The chimney will vent the pollution created by the machines, reducing it by 75% * The smokestack will vent the pollution created by the machines, reducing it by 75%
* Compatible with soot, heavy metal and poison pollution * Compatible with soot, heavy metal and poison pollution
## Changed ## Changed

View File

@ -417,6 +417,13 @@ public class AnvilRecipes {
}, },
new AnvilOutput(new ItemStack(ModBlocks.substation))).setTier(2)); new AnvilOutput(new ItemStack(ModBlocks.substation))).setTier(2));
constructionRecipes.add(new AnvilConstructionRecipe(
new AStack[] {
new OreDictStack(STEEL.plate(), 4),
new ComparableStack(Blocks.brick_block, 16)
},
new AnvilOutput(new ItemStack(ModBlocks.chimney_brick))).setTier(2));
constructionRecipes.add(new AnvilConstructionRecipe( constructionRecipes.add(new AnvilConstructionRecipe(
new AStack[] { new AStack[] {
new ComparableStack(ModItems.tank_steel, 1), new ComparableStack(ModItems.tank_steel, 1),

View File

@ -34,9 +34,9 @@ public class ItemPollutionDetector extends Item {
heavymetal = ((int) (heavymetal * 100)) / 100F; heavymetal = ((int) (heavymetal * 100)) / 100F;
fallout = ((int) (fallout * 100)) / 100F; fallout = ((int) (fallout * 100)) / 100F;
PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Soot: " + soot).color(EnumChatFormatting.YELLOW).flush(), 100, 2000), (EntityPlayerMP) entity); PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Soot: " + soot).color(EnumChatFormatting.YELLOW).flush(), 100, 4000), (EntityPlayerMP) entity);
PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Poison: " + poison).color(EnumChatFormatting.YELLOW).flush(), 101, 2000), (EntityPlayerMP) entity); PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Poison: " + poison).color(EnumChatFormatting.YELLOW).flush(), 101, 4000), (EntityPlayerMP) entity);
PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Heavy metal: " + heavymetal).color(EnumChatFormatting.YELLOW).flush(), 102, 2000), (EntityPlayerMP) entity); PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Heavy metal: " + heavymetal).color(EnumChatFormatting.YELLOW).flush(), 102, 4000), (EntityPlayerMP) entity);
PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Fallout: " + fallout).color(EnumChatFormatting.YELLOW).flush(), 103, 2000), (EntityPlayerMP) entity); PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Fallout: " + fallout).color(EnumChatFormatting.YELLOW).flush(), 103, 4000), (EntityPlayerMP) entity);
} }
} }

View File

@ -25,13 +25,15 @@ public abstract class TileEntityMachinePolluting extends TileEntityMachineBase i
public void pollute(PollutionType type, float amount) { public void pollute(PollutionType type, float amount) {
FluidTank tank = type == PollutionType.SOOT ? smoke : type == PollutionType.HEAVYMETAL ? smoke_leaded : smoke_poison; FluidTank tank = type == PollutionType.SOOT ? smoke : type == PollutionType.HEAVYMETAL ? smoke_leaded : smoke_poison;
int fluidAmount = (int) Math.ceil(amount * 40); int fluidAmount = (int) Math.ceil(amount * 100);
tank.setFill(tank.getFill() + fluidAmount); tank.setFill(tank.getFill() + fluidAmount);
if(tank.getFill() > tank.getMaxFill()) { if(tank.getFill() > tank.getMaxFill()) {
int overflow = tank.getFill() - tank.getMaxFill(); int overflow = tank.getFill() - tank.getMaxFill();
tank.setFill(tank.getMaxFill()); tank.setFill(tank.getMaxFill());
PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, type, overflow / 40F); PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, type, overflow / 100F);
if(worldObj.rand.nextInt(3) == 0) worldObj.playSoundEffect(xCoord, yCoord, zCoord, "random.fizz", 0.1F, 1.5F);
} }
} }

View File

@ -40,9 +40,12 @@ public class TileEntityChimneyBrick extends TileEntityLoadedBase implements IFlu
NBTTagCompound data = new NBTTagCompound(); NBTTagCompound data = new NBTTagCompound();
data.setInteger("onTicks", onTicks); data.setInteger("onTicks", onTicks);
INBTPacketReceiver.networkPack(this, data, 150); INBTPacketReceiver.networkPack(this, data, 150);
if(onTicks > 0) onTicks--;
} else { } else {
if(onTicks < 0) { if(onTicks > 0) {
if(worldObj.getTotalWorldTime() % 2 == 0) { if(worldObj.getTotalWorldTime() % 2 == 0) {
NBTTagCompound fx = new NBTTagCompound(); NBTTagCompound fx = new NBTTagCompound();
@ -77,9 +80,9 @@ public class TileEntityChimneyBrick extends TileEntityLoadedBase implements IFlu
fluid *= 0.25; fluid *= 0.25;
if(type == Fluids.SMOKE) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, fluid / 40F); if(type == Fluids.SMOKE) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, fluid / 100F);
if(type == Fluids.SMOKE_LEADED) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.HEAVYMETAL, fluid / 40F); if(type == Fluids.SMOKE_LEADED) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.HEAVYMETAL, fluid / 100F);
if(type == Fluids.SMOKE_POISON) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.POISON, fluid / 40F); if(type == Fluids.SMOKE_POISON) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.POISON, fluid / 100F);
return 0; return 0;
} }

View File

@ -40,7 +40,7 @@ public class TileEntityDiFurnace extends TileEntityMachinePolluting implements I
public byte sideLower = 1; public byte sideLower = 1;
public TileEntityDiFurnace() { public TileEntityDiFurnace() {
super(4, 1200); super(4, 50);
} }
@Override @Override

View File

@ -34,7 +34,7 @@ public abstract class TileEntityFireboxBase extends TileEntityMachinePolluting i
public TileEntityFireboxBase() { public TileEntityFireboxBase() {
super(2, 1_200); super(2, 50);
} }
@Override @Override

View File

@ -42,7 +42,7 @@ public class TileEntityFurnaceCombination extends TileEntityMachinePolluting imp
public FluidTank tank; public FluidTank tank;
public TileEntityFurnaceCombination() { public TileEntityFurnaceCombination() {
super(4, 1_200); super(4, 50);
this.tank = new FluidTank(Fluids.NONE, 24_000); this.tank = new FluidTank(Fluids.NONE, 24_000);
} }

View File

@ -35,7 +35,7 @@ public class TileEntityHeaterOilburner extends TileEntityMachinePolluting implem
public static final int maxHeatEnergy = 100_000; public static final int maxHeatEnergy = 100_000;
public TileEntityHeaterOilburner() { public TileEntityHeaterOilburner() {
super(3, 2_000); super(3, 100);
tank = new FluidTank(Fluids.HEATINGOIL, 16000); tank = new FluidTank(Fluids.HEATINGOIL, 16000);
} }

View File

@ -51,7 +51,7 @@ public class TileEntityMachineCoal extends TileEntityMachinePolluting implements
public static double fuelMod = 0.5D; public static double fuelMod = 0.5D;
public TileEntityMachineCoal() { public TileEntityMachineCoal() {
super(4, 120); super(4, 50);
tank = new FluidTank(Fluids.WATER, waterCap, 0); tank = new FluidTank(Fluids.WATER, waterCap, 0);
} }

View File

@ -52,7 +52,7 @@ public class TileEntityMachineCombustionEngine extends TileEntityMachinePollutin
public int tenth = 0; public int tenth = 0;
public TileEntityMachineCombustionEngine() { public TileEntityMachineCombustionEngine() {
super(5, 1_200); super(5, 50);
this.tank = new FluidTank(Fluids.DIESEL, 24_000, 0); this.tank = new FluidTank(Fluids.DIESEL, 24_000, 0);
} }

View File

@ -61,7 +61,7 @@ public class TileEntityMachineDiesel extends TileEntityMachinePolluting implemen
private static final int[] slots_side = new int[] { 2 }; private static final int[] slots_side = new int[] { 2 };
public TileEntityMachineDiesel() { public TileEntityMachineDiesel() {
super(5, 200); super(5, 100);
tank = new FluidTank(Fluids.DIESEL, 4_000, 0); tank = new FluidTank(Fluids.DIESEL, 4_000, 0);
} }
@ -323,6 +323,6 @@ public class TileEntityMachineDiesel extends TileEntityMachinePolluting implemen
@Override @Override
public FluidTank[] getSendingTanks() { public FluidTank[] getSendingTanks() {
return null; return this.getSmokeTanks();
} }
} }

View File

@ -69,7 +69,7 @@ public class TileEntityMachineTurbineGas extends TileEntityMachinePolluting impl
//TODO particles from heat exchanger maybe? maybe in a future //TODO particles from heat exchanger maybe? maybe in a future
public TileEntityMachineTurbineGas() { public TileEntityMachineTurbineGas() {
super(2, 5_000); super(2, 200);
this.tanks = new FluidTank[4]; this.tanks = new FluidTank[4];
tanks[0] = new FluidTank(Fluids.GAS, 100000); tanks[0] = new FluidTank(Fluids.GAS, 100000);
tanks[1] = new FluidTank(Fluids.LUBRICANT, 16000); tanks[1] = new FluidTank(Fluids.LUBRICANT, 16000);

View File

@ -64,7 +64,7 @@ public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implem
private AudioWrapper audio; private AudioWrapper audio;
public TileEntityMachineTurbofan() { public TileEntityMachineTurbofan() {
super(5, 4_000); super(5, 150);
tank = new FluidTank(Fluids.KEROSENE, 24000); tank = new FluidTank(Fluids.KEROSENE, 24000);
blood = new FluidTank(Fluids.BLOOD, 24000); blood = new FluidTank(Fluids.BLOOD, 24000);
} }

View File

@ -707,6 +707,9 @@ hbmfluid.sas3=Schrabidiumtrisulfat
hbmfluid.schrabidic=Schrabidische Säure hbmfluid.schrabidic=Schrabidische Säure
hbmfluid.seedslurry=Saatgemisch hbmfluid.seedslurry=Saatgemisch
hbmfluid.smear=Industrieöl hbmfluid.smear=Industrieöl
hbmfluid.smoke=Abgas
hbmfluid.smoke_leaded=Bleiabgas
hbmfluid.smoke_poison=Giftige Abgase
hbmfluid.solvent=Lösungsmittel hbmfluid.solvent=Lösungsmittel
hbmfluid.sourgas=Saures Gas hbmfluid.sourgas=Saures Gas
hbmfluid.spentsteam=Niedrigdruckdampf hbmfluid.spentsteam=Niedrigdruckdampf
@ -3624,6 +3627,7 @@ tile.charge_semtex.name=Semtex-Bergbauladung
tile.charger.name=Ladestation tile.charger.name=Ladestation
tile.cheater_virus.name=Geliertes Euphemium tile.cheater_virus.name=Geliertes Euphemium
tile.cheater_virus_seed.name=Instabiler Euphemiumschrabid-Block tile.cheater_virus_seed.name=Instabiler Euphemiumschrabid-Block
tile.chimney_brick.name=Schornstein
tile.chlorine_gas.name=Chlorgas tile.chlorine_gas.name=Chlorgas
tile.cluster_aluminium.name=Aluminiumerzcluster tile.cluster_aluminium.name=Aluminiumerzcluster
tile.cluster_copper.name=Kupfererzcluster tile.cluster_copper.name=Kupfererzcluster

View File

@ -1324,6 +1324,9 @@ hbmfluid.sas3=Schrabidium Trisulfide
hbmfluid.schrabidic=Schrabidic Acid hbmfluid.schrabidic=Schrabidic Acid
hbmfluid.seedslurry=Seeding Slurry hbmfluid.seedslurry=Seeding Slurry
hbmfluid.smear=Industrial Oil hbmfluid.smear=Industrial Oil
hbmfluid.smoke=Smoke
hbmfluid.smoke_leaded=Leaded Smoke
hbmfluid.smoke_poison=Poison Smoke
hbmfluid.solvent=Solvent hbmfluid.solvent=Solvent
hbmfluid.sourgas=Sour Gas hbmfluid.sourgas=Sour Gas
hbmfluid.spentsteam=Low-Pressure Steam hbmfluid.spentsteam=Low-Pressure Steam
@ -4487,6 +4490,7 @@ tile.charge_semtex.name=Semtex Mining Charge
tile.charger.name=Charging Station tile.charger.name=Charging Station
tile.cheater_virus.name=Gelid Euphemium tile.cheater_virus.name=Gelid Euphemium
tile.cheater_virus_seed.name=Unstable Euphemium Schrabide Block tile.cheater_virus_seed.name=Unstable Euphemium Schrabide Block
tile.chimney_brick.name=Smokestack
tile.chlorine_gas.name=Chlorine Gas tile.chlorine_gas.name=Chlorine Gas
tile.cluster_aluminium.name=Aluminium Ore Cluster tile.cluster_aluminium.name=Aluminium Ore Cluster
tile.cluster_copper.name=Copper Ore Cluster tile.cluster_copper.name=Copper Ore Cluster

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB