diff --git a/changelog b/changelog index f40cf352c..be9868a23 100644 --- a/changelog +++ b/changelog @@ -47,6 +47,7 @@ * Fallout rain now uses the same variable length code that the MK5 uses for optimal tick utilization, making it a lot faster * Lighter sellafite variants should no longer replace darker ones in overlapping craters, making bombed-out landscapes look more natural * Fallout's range-based effects now have a more natural gradient instead of creating smooth rings +* Fallout has been made significantly darker and less saturated to blend in with the crater more ## Fixed * Fixed dupe caused by shift-clicking ashes out of the bricked furnace diff --git a/src/main/java/api/hbm/fluid/IFluidConnector.java b/src/main/java/api/hbm/fluid/IFluidConnector.java index a47b56def..a51bcdeb2 100644 --- a/src/main/java/api/hbm/fluid/IFluidConnector.java +++ b/src/main/java/api/hbm/fluid/IFluidConnector.java @@ -4,13 +4,14 @@ import com.hbm.inventory.fluid.FluidType; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import api.hbm.energy.ILoadedTile; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public interface IFluidConnector { +public interface IFluidConnector extends ILoadedTile { /** * Returns the amount of fluid that remains diff --git a/src/main/java/api/hbm/fluid/PipeNet.java b/src/main/java/api/hbm/fluid/PipeNet.java index cab1fd29f..3dacf2f0b 100644 --- a/src/main/java/api/hbm/fluid/PipeNet.java +++ b/src/main/java/api/hbm/fluid/PipeNet.java @@ -90,9 +90,9 @@ public class PipeNet implements IPipeNet { @Override public long transferFluid(long fill, int pressure) { - - this.subscribers.removeIf(x -> - x == null || !(x instanceof TileEntity) || ((TileEntity)x).isInvalid() + + subscribers.removeIf(x -> + x == null || !(x instanceof TileEntity) || ((TileEntity)x).isInvalid() || !x.isLoaded() ); if(this.subscribers.isEmpty()) diff --git a/src/main/java/com/hbm/blocks/machine/BlockPWR.java b/src/main/java/com/hbm/blocks/machine/BlockPWR.java index eeecb464a..06b650798 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockPWR.java +++ b/src/main/java/com/hbm/blocks/machine/BlockPWR.java @@ -316,5 +316,18 @@ public class BlockPWR extends BlockContainer implements IBlockCT { return false; } + + public boolean isLoaded = true; + + @Override + public boolean isLoaded() { + return isLoaded; + } + + @Override + public void onChunkUnload() { + super.onChunkUnload(); + this.isLoaded = false; + } } } diff --git a/src/main/java/com/hbm/blocks/machine/Spotlight.java b/src/main/java/com/hbm/blocks/machine/Spotlight.java index 035405b0f..b5f7b0c56 100644 --- a/src/main/java/com/hbm/blocks/machine/Spotlight.java +++ b/src/main/java/com/hbm/blocks/machine/Spotlight.java @@ -38,6 +38,8 @@ public class Spotlight extends Block implements ISpotlight { this.beamLength = beamLength; this.type = type; this.isOn = isOn; + + this.setHardness(1F); if(isOn) setLightLevel(1.0F); } @@ -291,23 +293,17 @@ public class Spotlight extends Block implements ISpotlight { } protected Block getOff() { - if(this == ModBlocks.spotlight_incandescent) - return ModBlocks.spotlight_incandescent_off; - if(this == ModBlocks.spotlight_fluoro) - return ModBlocks.spotlight_fluoro_off; - if(this == ModBlocks.spotlight_halogen) - return ModBlocks.spotlight_halogen_off; + if(this == ModBlocks.spotlight_incandescent) return ModBlocks.spotlight_incandescent_off; + if(this == ModBlocks.spotlight_fluoro) return ModBlocks.spotlight_fluoro_off; + if(this == ModBlocks.spotlight_halogen) return ModBlocks.spotlight_halogen_off; return this; } protected Block getOn() { - if(this == ModBlocks.spotlight_incandescent_off) - return ModBlocks.spotlight_incandescent; - if(this == ModBlocks.spotlight_fluoro_off) - return ModBlocks.spotlight_fluoro; - if(this == ModBlocks.spotlight_halogen_off) - return ModBlocks.spotlight_halogen; + if(this == ModBlocks.spotlight_incandescent_off) return ModBlocks.spotlight_incandescent; + if(this == ModBlocks.spotlight_fluoro_off) return ModBlocks.spotlight_fluoro; + if(this == ModBlocks.spotlight_halogen_off) return ModBlocks.spotlight_halogen; return this; } diff --git a/src/main/java/com/hbm/sound/AudioWrapperClient.java b/src/main/java/com/hbm/sound/AudioWrapperClient.java index bc259c1dd..ca5d038ba 100644 --- a/src/main/java/com/hbm/sound/AudioWrapperClient.java +++ b/src/main/java/com/hbm/sound/AudioWrapperClient.java @@ -72,8 +72,10 @@ public class AudioWrapperClient extends AudioWrapper { @Override public void stopSound() { - if(sound != null) + if(sound != null) { sound.stop(); + sound.setKeepAlive(0); + } } @Override diff --git a/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java b/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java index 0fb24cdb2..74497304d 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java +++ b/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java @@ -271,7 +271,6 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase implements IAn if(this.state == 1 && state == 2){ // Door transitioning to closed if(audio != null) { audio.stopSound(); - audio.setKeepAlive(0); } if(doorType.getCloseSoundLoop() != null){ @@ -294,12 +293,10 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase implements IAn if(state == 1 || state == 0){ // Door finished any transition if(audio != null){ audio.stopSound(); - audio.setKeepAlive(0); audio = null; } if(audio2 != null){ audio2.stopSound(); - audio.setKeepAlive(0); audio2 = null; } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java index 3e78fb541..23e86b847 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java @@ -325,4 +325,16 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase return bb; } + public boolean isLoaded = true; + + @Override + public boolean isLoaded() { + return isLoaded; + } + + @Override + public void onChunkUnload() { + super.onChunkUnload(); + this.isLoaded = false; + } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityPipeBaseNT.java b/src/main/java/com/hbm/tileentity/network/TileEntityPipeBaseNT.java index c238da297..4db863014 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityPipeBaseNT.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityPipeBaseNT.java @@ -153,4 +153,17 @@ public class TileEntityPipeBaseNT extends TileEntity implements IFluidConductor super.writeToNBT(nbt); nbt.setInteger("type", this.type.getID()); } + + public boolean isLoaded = true; + + @Override + public boolean isLoaded() { + return isLoaded; + } + + @Override + public void onChunkUnload() { + super.onChunkUnload(); + this.isLoaded = false; + } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityPipeExhaust.java b/src/main/java/com/hbm/tileentity/network/TileEntityPipeExhaust.java index 992aca682..5d4ac7d1c 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityPipeExhaust.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityPipeExhaust.java @@ -112,4 +112,17 @@ public class TileEntityPipeExhaust extends TileEntity implements IFluidConductor if(type == Fluids.SMOKE_LEADED) nets[1] = network; if(type == Fluids.SMOKE_POISON) nets[2] = network; } + + public boolean isLoaded = true; + + @Override + public boolean isLoaded() { + return isLoaded; + } + + @Override + public void onChunkUnload() { + super.onChunkUnload(); + this.isLoaded = false; + } } diff --git a/src/main/resources/assets/hbm/textures/blocks/ash.png b/src/main/resources/assets/hbm/textures/blocks/ash.png index a16315628..7ad5b19db 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/ash.png and b/src/main/resources/assets/hbm/textures/blocks/ash.png differ