Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
--- a/net/minecraft/world/entity/npc/villager/Villager.java
+++ b/net/minecraft/world/entity/npc/villager/Villager.java
@@ -688,7 +_,9 @@

@Override
public boolean canBreed() {
- return this.foodLevel + this.countFoodPointsInInventory() >= 12 && !this.isSleeping() && this.getAge() == 0;
+ // Gale start - Local code optimization - skip inventory scan if food level sufficient
+ return (this.foodLevel >= 12 || this.foodLevel + this.countFoodPointsInInventory() >= 12) && !this.isSleeping() && this.getAge() == 0;
+ // Gale end - Local code optimization - skip inventory scan if food level sufficient
}

private boolean hungry() {
@@ -843,8 +_,20 @@
}

private int countFoodPointsInInventory() {
+ // Gale start - Local code optimization - single pass food point count
SimpleContainer inventory = this.getInventory();
- return FOOD_POINTS.entrySet().stream().mapToInt(entry -> inventory.countItem(entry.getKey()) * entry.getValue()).sum();
+ int total = 0;
+ for (int slot = 0; slot < inventory.getContainerSize(); slot++) {
+ ItemStack itemStack = inventory.getItem(slot);
+ if (!itemStack.isEmpty()) {
+ Integer points = FOOD_POINTS.get(itemStack.getItem());
+ if (points != null) {
+ total += points * itemStack.getCount();
+ }
+ }
+ }
+ return total;
+ // Gale end - Local code optimization - single pass food point count
}

public boolean hasFarmSeeds() {
Loading