mirror of
https://github.com/PaperMC/Paper.git
synced 2024-09-12 15:08:27 +02:00
* Optimise random block ticking Massive performance improvement for random block ticking. The performance increase comes from the fact that the vast majority of attempted block ticks (~95% in my testing) fail because the randomly selected block is not tickable. Now only tickable blocks are targeted, however this means that the maximum number of block ticks occurs per chunk. However, not all chunks are going to be targeted. The percent chance of a chunk being targeted is based on how many tickable blocks are in the chunk. This means that while block ticks are spread out less, the total number of blocks ticked per world tick remains the same. Therefore, the chance of a random tickable block being ticked remains the same.
33 lines
1.5 KiB
Diff
33 lines
1.5 KiB
Diff
From c89b88e0373f8d8238ea8fe2dd8d050d0b773381 Mon Sep 17 00:00:00 2001
|
|
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
|
Date: Sun, 9 Feb 2020 00:19:05 -0600
|
|
Subject: [PATCH] Add ThrownEggHatchEvent
|
|
|
|
Adds a new event similar to PlayerEggThrowEvent, but without the Player requirement
|
|
(dispensers can throw eggs to hatch them, too).
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/EntityEgg.java b/src/main/java/net/minecraft/server/EntityEgg.java
|
|
index 970f9109d9..bdd82d052a 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityEgg.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityEgg.java
|
|
@@ -52,6 +52,16 @@ public class EntityEgg extends EntityProjectileThrowable {
|
|
hatchingType = event.getHatchingType();
|
|
}
|
|
|
|
+ // Paper start
|
|
+ com.destroystokyo.paper.event.entity.ThrownEggHatchEvent event = new com.destroystokyo.paper.event.entity.ThrownEggHatchEvent((org.bukkit.entity.Egg) getBukkitEntity(), hatching, b0, hatchingType);
|
|
+ event.callEvent();
|
|
+
|
|
+ b0 = event.getNumHatches();
|
|
+ hatching = event.isHatching();
|
|
+ hatchingType = event.getHatchingType();
|
|
+ // Paper end
|
|
+
|
|
+
|
|
if (hatching) {
|
|
for (int i = 0; i < b0; ++i) {
|
|
Entity entity = world.getWorld().createEntity(new org.bukkit.Location(world.getWorld(), this.locX(), this.locY(), this.locZ(), this.yaw, 0.0F), hatchingType.getEntityClass());
|
|
--
|
|
2.25.0
|
|
|