From d01c1b856a7c09b3bb0ae3f41d1d3898090b4408 Mon Sep 17 00:00:00 2001 From: MrPowerGamerBR <9496359+MrPowerGamerBR@users.noreply.github.com> Date: Sat, 2 Dec 2023 22:00:17 -0300 Subject: [PATCH] Configurable Dry and Wet Farmland Tick Rates (#9968) * Configurable Dry and Wet Farm Land Nearby Water Tick Rates * Rebase and squash --------- --- ...urable-random-tick-rates-for-blocks.patch} | 19 ++++++++++++++++++- patches/server/Paper-config-files.patch | 2 ++ 2 files changed, 20 insertions(+), 1 deletion(-) rename patches/server/{Configurable-Grass-Spread-Tick-Rate.patch => Configurable-random-tick-rates-for-blocks.patch} (51%) diff --git a/patches/server/Configurable-Grass-Spread-Tick-Rate.patch b/patches/server/Configurable-random-tick-rates-for-blocks.patch similarity index 51% rename from patches/server/Configurable-Grass-Spread-Tick-Rate.patch rename to patches/server/Configurable-random-tick-rates-for-blocks.patch index c98654ab2..63da2bdd2 100644 --- a/patches/server/Configurable-Grass-Spread-Tick-Rate.patch +++ b/patches/server/Configurable-random-tick-rates-for-blocks.patch @@ -1,9 +1,26 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 3 Apr 2016 16:28:17 -0400 -Subject: [PATCH] Configurable Grass Spread Tick Rate +Subject: [PATCH] Configurable random tick rates for blocks +A general purpose patch that includes config options for the tick rate +of a variety of blocks that are random ticked. +Co-authored-by: MrPowerGamerBR + +diff --git a/src/main/java/net/minecraft/world/level/block/FarmBlock.java b/src/main/java/net/minecraft/world/level/block/FarmBlock.java +index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 +--- a/src/main/java/net/minecraft/world/level/block/FarmBlock.java ++++ b/src/main/java/net/minecraft/world/level/block/FarmBlock.java +@@ -0,0 +0,0 @@ public class FarmBlock extends Block { + @Override + public void randomTick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) { + int i = (Integer) state.getValue(FarmBlock.MOISTURE); ++ if (i > 0 && world.paperConfig().tickRates.wetFarmland != 1 && (world.paperConfig().tickRates.wetFarmland < 1 || (net.minecraft.server.MinecraftServer.currentTick + pos.hashCode()) % world.paperConfig().tickRates.wetFarmland != 0)) { return; } // Paper ++ if (i == 0 && world.paperConfig().tickRates.dryFarmland != 1 && (world.paperConfig().tickRates.dryFarmland < 1 || (net.minecraft.server.MinecraftServer.currentTick + pos.hashCode()) % world.paperConfig().tickRates.dryFarmland != 0)) { return; } // Paper + + if (!FarmBlock.isNearWater(world, pos) && !world.isRainingAt(pos.above())) { + if (i > 0) { diff --git a/src/main/java/net/minecraft/world/level/block/SpreadingSnowyDirtBlock.java b/src/main/java/net/minecraft/world/level/block/SpreadingSnowyDirtBlock.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/world/level/block/SpreadingSnowyDirtBlock.java diff --git a/patches/server/Paper-config-files.patch b/patches/server/Paper-config-files.patch index 745af0c65..cc3285344 100644 --- a/patches/server/Paper-config-files.patch +++ b/patches/server/Paper-config-files.patch @@ -1895,6 +1895,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + public int grassSpread = 1; + public int containerUpdate = 1; + public int mobSpawner = 1; ++ public int wetFarmland = 1; ++ public int dryFarmland = 1; + public Table, String, Integer> sensor = Util.make(HashBasedTable.create(), table -> table.put(EntityType.VILLAGER, "secondarypoisensor", 40)); + public Table, String, Integer> behavior = Util.make(HashBasedTable.create(), table -> table.put(EntityType.VILLAGER, "validatenearbypoi", -1)); + }