mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 16:37:43 +01:00
drop no random tick block list
This commit is contained in:
@@ -1,70 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
|
||||
Date: Fri, 7 Aug 2020 12:53:36 -0500
|
||||
Subject: [PATCH] Add no-random-tick block list
|
||||
|
||||
block predicated removed - i'm sure they put it somewhere
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
index 168caca104d6ee4b4cca6dde973166d8e47a29ba..2acd254df2f16c4f8d95cb240d62033e9ebc67bf 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
@@ -482,7 +482,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
this.players = Lists.newArrayList();
|
||||
this.entityTickList = new EntityTickList();
|
||||
Predicate<Block> predicate = (block) -> { // CraftBukkit - decompile eror
|
||||
- return block == null || block.defaultBlockState().isAir();
|
||||
+ return block == null || block.defaultBlockState().isAir() || purpurConfig.noRandomTickBlocks.contains(block); // Purpur
|
||||
};
|
||||
DefaultedRegistry registryblocks = Registry.BLOCK;
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
|
||||
index 8a6fdccb7db4234d9557f3b63f7761feb15bbed7..a2a4145b2ec826e09ad359700031583297d6612d 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
|
||||
@@ -914,10 +914,12 @@ public abstract class BlockBehaviour {
|
||||
}
|
||||
|
||||
public void tick(ServerLevel world, BlockPos pos, Random random) {
|
||||
+ if (world.purpurConfig.noRandomTickBlocks.contains(getBlock())) return; // Purpur
|
||||
this.getBlock().tick(this.asState(), world, pos, random);
|
||||
}
|
||||
|
||||
public void randomTick(ServerLevel world, BlockPos pos, Random random) {
|
||||
+ if (world.purpurConfig.noRandomTickBlocks.contains(getBlock())) return; // Purpur
|
||||
this.getBlock().randomTick(this.asState(), world, pos, random);
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
index 730abc3bc780ccbd22b9e8c33a2ea894f53f13ee..56b5ddbab362d2c6bd9402211d30e01b94b2e891 100644
|
||||
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
@@ -301,6 +301,28 @@ public class PurpurWorldConfig {
|
||||
voidDamageDealt = getDouble("gameplay-mechanics.void-damage-dealt", voidDamageDealt);
|
||||
}
|
||||
|
||||
+ public Set<Block> noRandomTickBlocks = new HashSet<>();
|
||||
+ private void noRandomTickBlocks() {
|
||||
+ if (PurpurConfig.version < 11) {
|
||||
+ List<String> oldList = PurpurConfig.config.getStringList("world-settings." + worldName + ".blocks.no-tick");
|
||||
+ if (!oldList.isEmpty()) {
|
||||
+ PurpurConfig.config.set("world-settings." + worldName + ".blocks.no-random-tick", oldList);
|
||||
+ PurpurConfig.config.set("world-settings." + worldName + ".blocks.no-tick", null);
|
||||
+ }
|
||||
+ oldList = PurpurConfig.config.getStringList("world-settings.default.blocks.no-tick");
|
||||
+ if (!oldList.isEmpty()) {
|
||||
+ PurpurConfig.config.set("world-settings.default.blocks.no-random-tick", oldList);
|
||||
+ PurpurConfig.config.set("world-settings.default.blocks.no-tick", null);
|
||||
+ }
|
||||
+ }
|
||||
+ getList("blocks.no-random-tick", new ArrayList<>()).forEach(key -> {
|
||||
+ Block block = Registry.BLOCK.get(new ResourceLocation(key.toString()));
|
||||
+ if (!block.defaultBlockState().isAir()) {
|
||||
+ noRandomTickBlocks.add(block);
|
||||
+ }
|
||||
+ });
|
||||
+ }
|
||||
+
|
||||
public boolean anvilAllowColors = false;
|
||||
private void anvilSettings() {
|
||||
anvilAllowColors = getBoolean("blocks.anvil.allow-colors", anvilAllowColors);
|
||||
Reference in New Issue
Block a user