mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 08:27:43 +01:00
Big dripleaf tilt delay
Makes the tilt delays configurable. There are only 3 types of tilts used by this setting. When an entity steps on a big_dripleaf with no tilt it will immediately change to an UNSTABLE tilt. Each change after that is on a tick timer: UNSTABLE: big_dripleaf with UNSTABLE tilt will change to PARTIAL tilt after 10 ticks PARTIAL: big_dripleaf with PARTIAL tilt will change to FULL tilt after 10 ticks UNSTABLE: big_dripleaf with FULL tilt will change back to no tilt after 100 ticks
This commit is contained in:
committed by
granny
parent
137ef963b1
commit
03b4271d72
@@ -1,52 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
|
||||||
Date: Fri, 16 Jul 2021 22:47:29 -0500
|
|
||||||
Subject: [PATCH] Big dripleaf tilt delay
|
|
||||||
|
|
||||||
Makes the tilt delays configurable. There are only 3 types of tilts used by this setting. When an entity steps on a
|
|
||||||
big_dripleaf with no tilt it will immediately change to an UNSTABLE tilt. Each change after that is on a tick timer:
|
|
||||||
|
|
||||||
UNSTABLE: big_dripleaf with UNSTABLE tilt will change to PARTIAL tilt after 10 ticks
|
|
||||||
PARTIAL: big_dripleaf with PARTIAL tilt will change to FULL tilt after 10 ticks
|
|
||||||
UNSTABLE: big_dripleaf with FULL tilt will change back to no tilt after 100 ticks
|
|
||||||
|
|
||||||
diff --git a/net/minecraft/world/level/block/BigDripleafBlock.java b/net/minecraft/world/level/block/BigDripleafBlock.java
|
|
||||||
index 9e3f1441d62128535112621bf259c24f1a90595b..2535e6d71b690f8dfde41a7d9cb76b6f010f5aa7 100644
|
|
||||||
--- a/net/minecraft/world/level/block/BigDripleafBlock.java
|
|
||||||
+++ b/net/minecraft/world/level/block/BigDripleafBlock.java
|
|
||||||
@@ -246,7 +246,7 @@ public class BigDripleafBlock extends HorizontalDirectionalBlock implements Bone
|
|
||||||
BigDripleafBlock.playTiltSound(world, blockposition, soundeffect);
|
|
||||||
}
|
|
||||||
|
|
||||||
- int i = BigDripleafBlock.DELAY_UNTIL_NEXT_TILT_STATE.getInt(tilt);
|
|
||||||
+ int i = world.purpurConfig.bigDripleafTiltDelay.getOrDefault(tilt, -1); // Purpur
|
|
||||||
|
|
||||||
if (i != -1) {
|
|
||||||
world.scheduleTick(blockposition, (Block) this, i);
|
|
||||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
|
||||||
index f62de466c50287ecbe364f74bd715cbdf02808ea..20d4021d6222c58e97062756cf8c66b4f819d666 100644
|
|
||||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
|
||||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
|
||||||
@@ -787,6 +787,22 @@ public class PurpurWorldConfig {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+ public Map<Tilt, Integer> bigDripleafTiltDelay = new HashMap<>();
|
|
||||||
+ private void bigDripleafSettings() {
|
|
||||||
+ bigDripleafTiltDelay.clear();
|
|
||||||
+ getMap("blocks.big_dripleaf.tilt-delay", Map.ofEntries(
|
|
||||||
+ Map.entry("UNSTABLE", 10),
|
|
||||||
+ Map.entry("PARTIAL", 10),
|
|
||||||
+ Map.entry("FULL", 100))
|
|
||||||
+ ).forEach((tilt, delay) -> {
|
|
||||||
+ try {
|
|
||||||
+ bigDripleafTiltDelay.put(Tilt.valueOf(tilt), (int) delay);
|
|
||||||
+ } catch (IllegalArgumentException e) {
|
|
||||||
+ PurpurConfig.log(Level.SEVERE, "Invalid big_dripleaf tilt key: " + tilt);
|
|
||||||
+ }
|
|
||||||
+ });
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
public boolean chestOpenWithBlockOnTop = false;
|
|
||||||
private void chestSettings() {
|
|
||||||
chestOpenWithBlockOnTop = getBoolean("blocks.chest.open-with-solid-block-on-top", chestOpenWithBlockOnTop);
|
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
--- a/net/minecraft/world/level/block/BigDripleafBlock.java
|
||||||
|
+++ b/net/minecraft/world/level/block/BigDripleafBlock.java
|
||||||
|
@@ -261,7 +_,7 @@
|
||||||
|
playTiltSound(level, pos, sound);
|
||||||
|
}
|
||||||
|
|
||||||
|
- int _int = DELAY_UNTIL_NEXT_TILT_STATE.getInt(tilt);
|
||||||
|
+ int _int = level.purpurConfig.bigDripleafTiltDelay.getOrDefault(tilt, -1); // Purpur - Big dripleaf tilt delay
|
||||||
|
if (_int != -1) {
|
||||||
|
level.scheduleTick(pos, this, _int);
|
||||||
|
}
|
||||||
@@ -13,6 +13,7 @@ import net.minecraft.world.item.Item;
|
|||||||
import net.minecraft.world.item.Items;
|
import net.minecraft.world.item.Items;
|
||||||
import net.minecraft.world.level.block.Block;
|
import net.minecraft.world.level.block.Block;
|
||||||
import net.minecraft.world.level.block.Blocks;
|
import net.minecraft.world.level.block.Blocks;
|
||||||
|
import net.minecraft.world.level.block.state.properties.Tilt;
|
||||||
import org.apache.commons.lang.BooleanUtils;
|
import org.apache.commons.lang.BooleanUtils;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
@@ -785,6 +786,22 @@ public class PurpurWorldConfig {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Map<Tilt, Integer> bigDripleafTiltDelay = new HashMap<>();
|
||||||
|
private void bigDripleafSettings() {
|
||||||
|
bigDripleafTiltDelay.clear();
|
||||||
|
getMap("blocks.big_dripleaf.tilt-delay", Map.ofEntries(
|
||||||
|
Map.entry("UNSTABLE", 10),
|
||||||
|
Map.entry("PARTIAL", 10),
|
||||||
|
Map.entry("FULL", 100))
|
||||||
|
).forEach((tilt, delay) -> {
|
||||||
|
try {
|
||||||
|
bigDripleafTiltDelay.put(Tilt.valueOf(tilt), (int) delay);
|
||||||
|
} catch (IllegalArgumentException e) {
|
||||||
|
PurpurConfig.log(Level.SEVERE, "Invalid big_dripleaf tilt key: " + tilt);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
public boolean chestOpenWithBlockOnTop = false;
|
public boolean chestOpenWithBlockOnTop = false;
|
||||||
private void chestSettings() {
|
private void chestSettings() {
|
||||||
chestOpenWithBlockOnTop = getBoolean("blocks.chest.open-with-solid-block-on-top", chestOpenWithBlockOnTop);
|
chestOpenWithBlockOnTop = getBoolean("blocks.chest.open-with-solid-block-on-top", chestOpenWithBlockOnTop);
|
||||||
|
|||||||
Reference in New Issue
Block a user