From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Mon, 19 Oct 2020 15:14:01 -0500 Subject: [PATCH] Infinite fuel furnace diff --git a/src/main/java/net/minecraft/server/TileEntityFurnace.java b/src/main/java/net/minecraft/server/TileEntityFurnace.java index 1d3c2dd936..1a47f0ae48 100644 --- a/src/main/java/net/minecraft/server/TileEntityFurnace.java +++ b/src/main/java/net/minecraft/server/TileEntityFurnace.java @@ -266,6 +266,22 @@ public abstract class TileEntityFurnace extends TileEntityContainer implements I if (!this.world.isClientSide) { ItemStack itemstack = (ItemStack) this.items.get(1); + // Purpur start + boolean infiniteFuel = false; + if (world.purpurConfig.furnaceInfiniteFuel && !isBurning() && itemstack.isEmpty() && !items.get(0).isEmpty() && world.getTime() % 20 == 0) { + BlockPosition pos = getPosition().down(); + IBlockData iblockdata = world.getTypeIfLoaded(pos); + if (iblockdata != null && iblockdata.equals(Blocks.LAVA)) { + Fluid fluid = iblockdata.getFluid(); + if (fluid != null && fluid.isSource()) { + world.setTypeAndData(pos, Blocks.AIR.getBlockData(), 3); + itemstack = Items.LAVA_BUCKET.createItemStack(); + infiniteFuel = true; + } + } + } + // Purpur end + if (!this.isBurning() && (itemstack.isEmpty() || ((ItemStack) this.items.get(0)).isEmpty())) { if (!this.isBurning() && this.cookTime > 0) { this.cookTime = MathHelper.clamp(this.cookTime - 2, 0, this.cookTimeTotal); @@ -319,6 +335,8 @@ public abstract class TileEntityFurnace extends TileEntityContainer implements I flag1 = true; this.world.setTypeAndData(this.position, (IBlockData) this.world.getType(this.position).set(BlockFurnace.LIT, this.isBurning()), 3); } + + if (infiniteFuel) this.items.set(1, ItemStack.NULL_ITEM); // Purpur } if (flag1) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java index 79e554a05e..6adcce6174 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -340,6 +340,11 @@ public class PurpurWorldConfig { farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow); } + public boolean furnaceInfiniteFuel = false; + private void furnaceSettings() { + furnaceInfiniteFuel = getBoolean("blocks.furnace.infinite-fuel", furnaceInfiniteFuel); + } + public boolean lavaInfinite = false; public int lavaInfiniteRequiredSources = 2; public int lavaSpeedNether = 10;