mirror of
https://github.com/Winds-Studio/Leaf.git
synced 2025-12-31 12:56:29 +00:00
66 lines
3.6 KiB
Diff
66 lines
3.6 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: peaches94 <peachescu94@gmail.com>
|
|
Date: Sun, 10 Jul 2022 15:44:38 -0500
|
|
Subject: [PATCH] Petal: Reduce sensor work
|
|
|
|
Original license: GPL v3
|
|
Original project: https://github.com/Bloom-host/Petal
|
|
|
|
this patch is focused around the sensors used for ai
|
|
delete the line of sight cache less often and use a faster nearby comparison
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
|
index 89a2e52dd1d93a9521d48218711f92305b0d7848..44248144491354b8ae0ebfede1de3091c06aa8f8 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
|
@@ -1019,20 +1019,21 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
|
}
|
|
|
|
if (entity != null) {
|
|
- ItemStack itemstack = this.getItemBySlot(EquipmentSlot.HEAD);
|
|
+ // petal start - only do itemstack lookup if we need to
|
|
+ //ItemStack itemstack = this.getItemBySlot(EquipmentSlot.HEAD);
|
|
EntityType<?> entitytypes = entity.getType();
|
|
|
|
// Purpur start
|
|
- if (entitytypes == EntityType.SKELETON && itemstack.is(Items.SKELETON_SKULL)) {
|
|
+ if (entitytypes == EntityType.SKELETON && this.getItemBySlot(EquipmentSlot.HEAD).is(Items.SKELETON_SKULL)) {
|
|
d0 *= entity.level.purpurConfig.skeletonHeadVisibilityPercent;
|
|
}
|
|
- else if (entitytypes == EntityType.ZOMBIE && itemstack.is(Items.ZOMBIE_HEAD)) {
|
|
+ else if (entitytypes == EntityType.ZOMBIE && this.getItemBySlot(EquipmentSlot.HEAD).is(Items.ZOMBIE_HEAD)) {
|
|
d0 *= entity.level.purpurConfig.zombieHeadVisibilityPercent;
|
|
}
|
|
- else if (entitytypes == EntityType.CREEPER && itemstack.is(Items.CREEPER_HEAD)) {
|
|
+ else if (entitytypes == EntityType.CREEPER && this.getItemBySlot(EquipmentSlot.HEAD).is(Items.CREEPER_HEAD)) {
|
|
d0 *= entity.level.purpurConfig.creeperHeadVisibilityPercent;
|
|
}
|
|
- else if ((entitytypes == EntityType.PIGLIN || entitytypes == EntityType.PIGLIN_BRUTE) && itemstack.is(Items.PIGLIN_HEAD)) {
|
|
+ else if ((entitytypes == EntityType.PIGLIN || entitytypes == EntityType.PIGLIN_BRUTE) && this.getItemBySlot(EquipmentSlot.HEAD).is(Items.PIGLIN_HEAD)) {
|
|
d0 *= entity.level.purpurConfig.piglinHeadVisibilityPercent;
|
|
}
|
|
// Purpur end
|
|
@@ -1047,6 +1048,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
|
}
|
|
}
|
|
// Purpur end
|
|
+ // petal end
|
|
}
|
|
|
|
return d0;
|
|
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
|
|
index ad56f2ecd8bb74d94974fdd05f4550b48e6b8d9e..2f2b0c7a2ed23b956668cb1aa15eda9747a70afe 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/Mob.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
|
|
@@ -928,8 +928,8 @@ public abstract class Mob extends LivingEntity implements Targeting {
|
|
return;
|
|
}
|
|
// Paper end
|
|
- this.sensing.tick();
|
|
- int i = this.level.getServer().getTickCount() + this.getId();
|
|
+ int i = this.level.getServer().getTickCount() + this.getId(); // petal - move up
|
|
+ if (i % 10 == 0) this.sensing.tick(); // petal - only refresh line of sight cache every half second
|
|
|
|
if (i % 2 != 0 && this.tickCount > 1) {
|
|
if (this.targetSelector.inactiveTick(this.activatedPriority, false)) // Pufferfish - use this to alternate ticking
|