mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-19 17:37:42 +01:00
83 lines
4.5 KiB
Diff
83 lines
4.5 KiB
Diff
From c15b54306d8910756947ed6fa737338b3796ce6d Mon Sep 17 00:00:00 2001
|
|
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
|
Date: Thu, 6 Jun 2019 21:30:49 -0500
|
|
Subject: [PATCH] Campfires burn out in rain
|
|
|
|
---
|
|
src/main/java/net/minecraft/server/Block.java | 2 +-
|
|
.../net/minecraft/server/BlockCampfire.java | 17 ++++++++++++++++-
|
|
.../java/net/pl3x/purpur/PurpurWorldConfig.java | 2 ++
|
|
3 files changed, 19 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/Block.java b/src/main/java/net/minecraft/server/Block.java
|
|
index b29ed1cfa..d7911c342 100644
|
|
--- a/src/main/java/net/minecraft/server/Block.java
|
|
+++ b/src/main/java/net/minecraft/server/Block.java
|
|
@@ -387,7 +387,7 @@ public class Block implements IMaterial {
|
|
PacketDebug.a(world, blockposition);
|
|
}
|
|
|
|
- public int a(IWorldReader iworldreader) {
|
|
+ public int a(IWorldReader world) { return tickRate(world); } public int tickRate(IWorldReader world) { // Purpur - OBFHELPER
|
|
return 10;
|
|
}
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/BlockCampfire.java b/src/main/java/net/minecraft/server/BlockCampfire.java
|
|
index 65f8d803b..3b95dfaaa 100644
|
|
--- a/src/main/java/net/minecraft/server/BlockCampfire.java
|
|
+++ b/src/main/java/net/minecraft/server/BlockCampfire.java
|
|
@@ -7,7 +7,7 @@ import javax.annotation.Nullable;
|
|
public class BlockCampfire extends BlockTileEntity implements IBlockWaterlogged {
|
|
|
|
protected static final VoxelShape a = Block.a(0.0D, 0.0D, 0.0D, 16.0D, 7.0D, 16.0D);
|
|
- public static final BlockStateBoolean b = BlockProperties.r;
|
|
+ public static final BlockStateBoolean b = BlockProperties.r; public static BlockStateBoolean lit() { return b; } // Purpur - OBFHELPER
|
|
public static final BlockStateBoolean c = BlockProperties.y; public static BlockStateBoolean signalFire() { return c; } // Purpur - OBFHELPER
|
|
public static final BlockStateBoolean d = BlockProperties.C;
|
|
public static final BlockStateDirection e = BlockProperties.N;
|
|
@@ -74,6 +74,21 @@ public class BlockCampfire extends BlockTileEntity implements IBlockWaterlogged
|
|
return (IBlockData) ((IBlockData) ((IBlockData) ((IBlockData) this.getBlockData().set(BlockCampfire.d, flag)).set(BlockCampfire.c, this.h(world.getType(blockposition.down())))).set(BlockCampfire.b, !flag)).set(BlockCampfire.e, blockactioncontext.f());
|
|
}
|
|
|
|
+ // Purpur start
|
|
+ @Override
|
|
+ public void tick(IBlockData iblockdata, WorldServer world, BlockPosition pos, Random random) {
|
|
+ if (world.purpurConfig.campfireBurnOutInRain && world.getTime() % 20 == 0L && iblockdata.get(lit()) && world.isRainingAt(pos.shift(EnumDirection.UP))) {
|
|
+ world.setTypeAndData(pos, iblockdata.set(lit(), false), 3);
|
|
+ }
|
|
+ world.getBlockTickList().a(pos, this, tickRate(world));
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public int tickRate(IWorldReader world) {
|
|
+ return 1;
|
|
+ }
|
|
+ // Purpur end
|
|
+
|
|
@Override
|
|
public IBlockData updateState(IBlockData iblockdata, EnumDirection enumdirection, IBlockData iblockdata1, GeneratorAccess generatoraccess, BlockPosition blockposition, BlockPosition blockposition1) {
|
|
if ((Boolean) iblockdata.get(BlockCampfire.d)) {
|
|
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
|
index 7cd02e6b2..bfd9babf2 100644
|
|
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
|
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
|
@@ -81,6 +81,7 @@ public class PurpurWorldConfig {
|
|
public int campfireRegenBoostAmp = 1;
|
|
public boolean campfireRegenBoostRequireLineOfSight = false;
|
|
public boolean campfireRequireRegenPotion = true;
|
|
+ public boolean campfireBurnOutInRain = false;
|
|
private void campfireSettings() {
|
|
campfireRegenInterval = getInt("blocks.campfire.regen.interval", campfireRegenInterval);
|
|
campfireRegenDuration = getInt("blocks.campfire.regen.duration", campfireRegenDuration);
|
|
@@ -92,6 +93,7 @@ public class PurpurWorldConfig {
|
|
campfireRegenBoostAmp = getInt("blocks.campfire.regen.boost-amplifier", campfireRegenBoostAmp);
|
|
campfireRegenBoostRequireLineOfSight = getBoolean("blocks.campfire.regen.boost-require-line-of-sight", campfireRegenBoostRequireLineOfSight);
|
|
campfireRequireRegenPotion = getBoolean("blocks.campfire.regen.requires-potion-to-activate", campfireRequireRegenPotion);
|
|
+ campfireBurnOutInRain = getBoolean("blocks.campfire.burn-out-in-rain", campfireBurnOutInRain);
|
|
}
|
|
|
|
public boolean farmlandGetsMoistFromBelow = false;
|
|
--
|
|
2.24.0
|
|
|