diff --git a/src/main/java/com/hbm/blocks/machine/FoundryCastingBase.java b/src/main/java/com/hbm/blocks/machine/FoundryCastingBase.java index 8295df32b..1ced99e75 100644 --- a/src/main/java/com/hbm/blocks/machine/FoundryCastingBase.java +++ b/src/main/java/com/hbm/blocks/machine/FoundryCastingBase.java @@ -133,10 +133,12 @@ public abstract class FoundryCastingBase extends BlockContainer implements ICruc public void breakBlock(World world, int x, int y, int z, Block b, int i) { TileEntityFoundryCastingBase cast = (TileEntityFoundryCastingBase) world.getTileEntity(x, y, z); - ItemStack scrap = ItemScraps.create(new MaterialStack(cast.type, cast.amount)); - EntityItem item = new EntityItem(world, x + 0.5, y + this.maxY, z + 0.5, scrap); - world.spawnEntityInWorld(item); - cast.amount = 0; //just for safety + if(cast.amount > 0) { + ItemStack scrap = ItemScraps.create(new MaterialStack(cast.type, cast.amount)); + EntityItem item = new EntityItem(world, x + 0.5, y + this.maxY, z + 0.5, scrap); + world.spawnEntityInWorld(item); + cast.amount = 0; //just for safety + } for(ItemStack stack : cast.slots) { if(stack != null) { diff --git a/src/main/java/com/hbm/items/machine/ItemScraps.java b/src/main/java/com/hbm/items/machine/ItemScraps.java index 3e2a0f45e..dad82669d 100644 --- a/src/main/java/com/hbm/items/machine/ItemScraps.java +++ b/src/main/java/com/hbm/items/machine/ItemScraps.java @@ -68,6 +68,8 @@ public class ItemScraps extends Item { } public static ItemStack create(MaterialStack stack) { + if(stack.material == null) + return new ItemStack(ModItems.nothing); //why do i bother adding checks for fucking everything when they don't work ItemStack scrap = new ItemStack(ModItems.scraps, 1, stack.material.id); scrap.stackTagCompound = new NBTTagCompound(); scrap.stackTagCompound.setInteger("amount", stack.amount); diff --git a/src/main/java/com/hbm/render/block/RenderFoundryBasin.java b/src/main/java/com/hbm/render/block/RenderFoundryBasin.java index 3cc464284..17917603a 100644 --- a/src/main/java/com/hbm/render/block/RenderFoundryBasin.java +++ b/src/main/java/com/hbm/render/block/RenderFoundryBasin.java @@ -59,6 +59,9 @@ public class RenderFoundryBasin implements ISimpleBlockRenderingHandler { float mulZ = 0.8F; float mulX = 0.6F; + int brightness = block.getMixedBrightnessForBlock(world, x, y, z); + tessellator.setBrightness(brightness); + if(EntityRenderer.anaglyphEnable) { float aR = (r * 30.0F + g * 59.0F + b * 11.0F) / 100.0F; float aG = (r * 30.0F + g * 70.0F) / 100.0F; diff --git a/src/main/java/com/hbm/render/block/RenderFoundryMold.java b/src/main/java/com/hbm/render/block/RenderFoundryMold.java index fb29141a4..248b98c58 100644 --- a/src/main/java/com/hbm/render/block/RenderFoundryMold.java +++ b/src/main/java/com/hbm/render/block/RenderFoundryMold.java @@ -59,6 +59,9 @@ public class RenderFoundryMold implements ISimpleBlockRenderingHandler { float mulZ = 0.8F; float mulX = 0.6F; + int brightness = block.getMixedBrightnessForBlock(world, x, y, z); + tessellator.setBrightness(brightness); + if(EntityRenderer.anaglyphEnable) { float aR = (r * 30.0F + g * 59.0F + b * 11.0F) / 100.0F; float aG = (r * 30.0F + g * 70.0F) / 100.0F; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCore.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCore.java index 02ae5ab5c..9df3a1fb7 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCore.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCore.java @@ -27,6 +27,7 @@ public class TileEntityCore extends TileEntityMachineBase { public int heat; public int color; public FluidTank[] tanks; + private boolean lastTickValid = false; public TileEntityCore() { super(3); @@ -45,7 +46,15 @@ public class TileEntityCore extends TileEntityMachineBase { if(!worldObj.isRemote) { - if(heat > 0 && heat >= field) { + int chunkX = xCoord << 4; + int chunkZ = zCoord << 4; + + lastTickValid = worldObj.getChunkProvider().chunkExists(chunkX + 1, chunkZ + 1) && + worldObj.getChunkProvider().chunkExists(chunkX + 1, chunkZ - 1) && + worldObj.getChunkProvider().chunkExists(chunkX - 1, chunkZ + 1) && + worldObj.getChunkProvider().chunkExists(chunkX - 1, chunkZ - 1); + + if(lastTickValid && heat > 0 && heat >= field) { int fill = tanks[0].getFill() + tanks[1].getFill(); int max = tanks[0].getMaxFill() + tanks[1].getMaxFill(); @@ -87,7 +96,11 @@ public class TileEntityCore extends TileEntityMachineBase { networkPack(data, 250); heat = 0; - field = 0; + + if(lastTickValid && field > 0) { + field -= 1; + } + this.markDirty(); } else { @@ -139,6 +152,9 @@ public class TileEntityCore extends TileEntityMachineBase { public boolean isReady() { + if(!lastTickValid) + return false; + if(getCore() == 0) return false; @@ -241,6 +257,7 @@ public class TileEntityCore extends TileEntityMachineBase { tanks[0].readFromNBT(nbt, "fuel1"); tanks[1].readFromNBT(nbt, "fuel2"); + this.field = nbt.getInteger("field"); } @Override @@ -249,6 +266,7 @@ public class TileEntityCore extends TileEntityMachineBase { tanks[0].writeToNBT(nbt, "fuel1"); tanks[1].writeToNBT(nbt, "fuel2"); + nbt.setInteger("field", this.field); } AxisAlignedBB bb = null; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java index 1ec967d45..d66736845 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java @@ -65,7 +65,7 @@ public class TileEntityCoreStabilizer extends TileEntityMachineBase implements I if(te instanceof TileEntityCore) { TileEntityCore core = (TileEntityCore)te; - core.field = watts; + core.field = Math.max(core.field, watts); this.power -= demand; beam = i; diff --git a/src/main/resources/assets/hbm/textures/blocks/conveyor.png b/src/main/resources/assets/hbm/textures/blocks/conveyor.png index 07cda57ee..c9bd51ea5 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/conveyor.png and b/src/main/resources/assets/hbm/textures/blocks/conveyor.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/conveyor_curve_left.png b/src/main/resources/assets/hbm/textures/blocks/conveyor_curve_left.png index b643de427..05cf8986e 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/conveyor_curve_left.png and b/src/main/resources/assets/hbm/textures/blocks/conveyor_curve_left.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/conveyor_curve_right.png b/src/main/resources/assets/hbm/textures/blocks/conveyor_curve_right.png index ae86f3266..9142a44aa 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/conveyor_curve_right.png and b/src/main/resources/assets/hbm/textures/blocks/conveyor_curve_right.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/conveyor_double.png b/src/main/resources/assets/hbm/textures/blocks/conveyor_double.png index 4b8ccb039..aa49e18c8 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/conveyor_double.png and b/src/main/resources/assets/hbm/textures/blocks/conveyor_double.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/conveyor_double_curve_left.png b/src/main/resources/assets/hbm/textures/blocks/conveyor_double_curve_left.png index 7a3063b9e..f5f4c4a8c 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/conveyor_double_curve_left.png and b/src/main/resources/assets/hbm/textures/blocks/conveyor_double_curve_left.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/conveyor_double_curve_right.png b/src/main/resources/assets/hbm/textures/blocks/conveyor_double_curve_right.png index 7630b8dee..fafd8b190 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/conveyor_double_curve_right.png and b/src/main/resources/assets/hbm/textures/blocks/conveyor_double_curve_right.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/conveyor_triple.png b/src/main/resources/assets/hbm/textures/blocks/conveyor_triple.png index a3bd44cac..cb948832b 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/conveyor_triple.png and b/src/main/resources/assets/hbm/textures/blocks/conveyor_triple.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/conveyor_triple_curve_left.png b/src/main/resources/assets/hbm/textures/blocks/conveyor_triple_curve_left.png index 81857523b..f6411e3c5 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/conveyor_triple_curve_left.png and b/src/main/resources/assets/hbm/textures/blocks/conveyor_triple_curve_left.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/conveyor_triple_curve_right.png b/src/main/resources/assets/hbm/textures/blocks/conveyor_triple_curve_right.png index 148987fd2..4c32e96e5 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/conveyor_triple_curve_right.png and b/src/main/resources/assets/hbm/textures/blocks/conveyor_triple_curve_right.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bandaid.png b/src/main/resources/assets/hbm/textures/items/bandaid.png index fbf2effb9..7f687357c 100644 Binary files a/src/main/resources/assets/hbm/textures/items/bandaid.png and b/src/main/resources/assets/hbm/textures/items/bandaid.png differ