mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 16:37:43 +01:00
Upstream has released updates that appear to apply and compile correctly Paper Changes: 7232d8f2a EntityLoadCrossbowEvent#shouldConsumeItem 4740bd6c8 Mark PlayerInventory#getItem as nullable bd9ace578 Add a config option to limit the number of entities of each type to load/save in a chunk (#4792) 6bafeb5a9 Move logic from last patch into correct place 9668118fd disable entity ticking flag after watchdog obliteration
59 lines
3.1 KiB
Diff
59 lines
3.1 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
|
|
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 e75e676d196d9f5a3409ec50645fab611b0afdad..76ea1d003b43d822e2b85eec3b8740155efd531a 100644
|
|
--- a/src/main/java/net/minecraft/server/TileEntityFurnace.java
|
|
+++ b/src/main/java/net/minecraft/server/TileEntityFurnace.java
|
|
@@ -278,6 +278,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);
|
|
@@ -331,6 +347,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 bf403f3d02fe63df4e17ec461cc818861cc956a3..07519a988c61b23904f5c70becbc6c525456c39f 100644
|
|
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
|
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
|
@@ -333,6 +333,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;
|