Further optimise hoppers
This commit is contained in:
parent
ac93a5cb00
commit
d334865466
2 changed files with 43 additions and 2 deletions
|
@ -5,6 +5,7 @@ Subject: [PATCH] Improve Minecraft Hopper Performance
|
||||||
|
|
||||||
Removes unnecessary extra calls to .update() that are very expensive
|
Removes unnecessary extra calls to .update() that are very expensive
|
||||||
Also reset cooldown each hopper tick that a hopper is full.
|
Also reset cooldown each hopper tick that a hopper is full.
|
||||||
|
Also don't constantly clone ItemStacks without merit
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/TileEntity.java b/src/main/java/net/minecraft/server/TileEntity.java
|
diff --git a/src/main/java/net/minecraft/server/TileEntity.java b/src/main/java/net/minecraft/server/TileEntity.java
|
||||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
|
@ -30,6 +31,42 @@ diff --git a/src/main/java/net/minecraft/server/TileEntityHopper.java b/src/main
|
||||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
--- a/src/main/java/net/minecraft/server/TileEntityHopper.java
|
--- a/src/main/java/net/minecraft/server/TileEntityHopper.java
|
||||||
+++ b/src/main/java/net/minecraft/server/TileEntityHopper.java
|
+++ b/src/main/java/net/minecraft/server/TileEntityHopper.java
|
||||||
|
@@ -0,0 +0,0 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi
|
||||||
|
this.setCooldown(world.spigotConfig.hopperTransfer); // Spigot
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
- int origCount = event.getItem().getAmount(); // Spigot
|
||||||
|
- ItemStack itemstack1 = addItem(this, iinventory, CraftItemStack.asNMSCopy(event.getItem()), enumdirection);
|
||||||
|
-
|
||||||
|
+ // Paper start
|
||||||
|
+ org.bukkit.inventory.ItemStack eventStack = event.getItem();
|
||||||
|
+ int origCount = eventStack.getAmount(); // Spigot
|
||||||
|
+ ItemStack itemstack1 = addItem(this, iinventory, CraftItemStack.asNMSCopy(eventStack), enumdirection);
|
||||||
|
+ // Paper end
|
||||||
|
if (itemstack1.isEmpty()) {
|
||||||
|
- if (event.getItem().equals(oitemstack)) {
|
||||||
|
+ if (eventStack.equals(oitemstack)) { // Paper
|
||||||
|
iinventory.update();
|
||||||
|
} else {
|
||||||
|
this.setItem(i, itemstack);
|
||||||
|
@@ -0,0 +0,0 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
- int origCount = event.getItem().getAmount(); // Spigot
|
||||||
|
- ItemStack itemstack2 = addItem(iinventory, ihopper, CraftItemStack.asNMSCopy(event.getItem()), null);
|
||||||
|
-
|
||||||
|
+ // Paper start
|
||||||
|
+ org.bukkit.inventory.ItemStack eventStack = event.getItem();
|
||||||
|
+ int origCount = eventStack.getAmount(); // Spigot
|
||||||
|
+ ItemStack itemstack2 = addItem(iinventory, ihopper, CraftItemStack.asNMSCopy(eventStack), null);
|
||||||
|
+ // Paper end
|
||||||
|
if (itemstack2.isEmpty()) {
|
||||||
|
- if (event.getItem().equals(oitemstack)) {
|
||||||
|
+ if (eventStack.equals(oitemstack)) { // Paper
|
||||||
|
iinventory.update();
|
||||||
|
} else {
|
||||||
|
iinventory.setItem(i, itemstack1);
|
||||||
@@ -0,0 +0,0 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi
|
@@ -0,0 +0,0 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi
|
||||||
boolean flag1 = iinventory1.w_();
|
boolean flag1 = iinventory1.w_();
|
||||||
|
|
||||||
|
@ -48,4 +85,6 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
private boolean J() {
|
private boolean J() {
|
||||||
return this.f > 0;
|
return this.f > 0;
|
||||||
}
|
}
|
||||||
--
|
--
|
||||||
|
2.9.3 (Apple Git-75)
|
||||||
|
|
||||||
|
|
|
@ -389,4 +389,6 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
List list = world.getEntities((Entity) null, new AxisAlignedBB(d0 - 0.5D, d1 - 0.5D, d2 - 0.5D, d0 + 0.5D, d1 + 0.5D, d2 + 0.5D), IEntitySelector.c);
|
List list = world.getEntities((Entity) null, new AxisAlignedBB(d0 - 0.5D, d1 - 0.5D, d2 - 0.5D, d0 + 0.5D, d1 + 0.5D, d2 + 0.5D), IEntitySelector.c);
|
||||||
|
|
||||||
if (!list.isEmpty()) {
|
if (!list.isEmpty()) {
|
||||||
--
|
--
|
||||||
|
2.9.3 (Apple Git-75)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue