mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 16:37:43 +01:00
Add flying mobs to entity activation range settings
This commit is contained in:
@@ -0,0 +1,114 @@
|
||||
From 3f69dbb853814d1248b54ce43569f09109803946 Mon Sep 17 00:00:00 2001
|
||||
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
|
||||
Date: Sun, 8 Mar 2020 20:54:44 -0500
|
||||
Subject: [PATCH] Add flying mobs to entity activation range settings
|
||||
|
||||
---
|
||||
src/main/java/org/spigotmc/ActivationRange.java | 16 +++++++++++++++-
|
||||
.../java/org/spigotmc/SpigotWorldConfig.java | 2 ++
|
||||
2 files changed, 17 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
|
||||
index 11fb146129..c79715b89a 100644
|
||||
--- a/src/main/java/org/spigotmc/ActivationRange.java
|
||||
+++ b/src/main/java/org/spigotmc/ActivationRange.java
|
||||
@@ -9,6 +9,8 @@ import net.minecraft.server.Entity;
|
||||
import net.minecraft.server.EntityAmbient;
|
||||
import net.minecraft.server.EntityAnimal;
|
||||
import net.minecraft.server.EntityArrow;
|
||||
+import net.minecraft.server.EntityBird; // Purpur
|
||||
+import net.minecraft.server.EntityBlaze; // Purpur
|
||||
import net.minecraft.server.EntityComplexPart;
|
||||
import net.minecraft.server.EntityCreature;
|
||||
import net.minecraft.server.EntityCreeper;
|
||||
@@ -17,6 +19,7 @@ import net.minecraft.server.EntityEnderDragon;
|
||||
import net.minecraft.server.EntityFallingBlock; // Paper
|
||||
import net.minecraft.server.EntityFireball;
|
||||
import net.minecraft.server.EntityFireworks;
|
||||
+import net.minecraft.server.EntityFlying; // Purpur
|
||||
import net.minecraft.server.EntityHuman;
|
||||
import net.minecraft.server.EntityLightning;
|
||||
import net.minecraft.server.EntityLiving;
|
||||
@@ -28,6 +31,7 @@ import net.minecraft.server.EntitySlice;
|
||||
import net.minecraft.server.EntitySlime;
|
||||
import net.minecraft.server.EntityTNTPrimed;
|
||||
import net.minecraft.server.EntityThrownTrident;
|
||||
+import net.minecraft.server.EntityVex; // Purpur
|
||||
import net.minecraft.server.EntityVillager;
|
||||
import net.minecraft.server.EntityWither;
|
||||
import net.minecraft.server.MathHelper;
|
||||
@@ -46,6 +50,7 @@ public class ActivationRange
|
||||
|
||||
public enum ActivationType
|
||||
{
|
||||
+ FLYING, // Purpur
|
||||
WATER, // Paper
|
||||
MONSTER,
|
||||
ANIMAL,
|
||||
@@ -66,6 +71,7 @@ public class ActivationRange
|
||||
*/
|
||||
public static ActivationType initializeEntityActivationType(Entity entity)
|
||||
{
|
||||
+ if (isFlyingMob(entity)) { return ActivationType.FLYING; } // Purpur
|
||||
if (entity instanceof EntityWaterAnimal) { return ActivationType.WATER; } // Paper
|
||||
if ( entity instanceof EntityRaider )
|
||||
{
|
||||
@@ -129,6 +135,7 @@ public class ActivationRange
|
||||
final int animalActivationRange = world.spigotConfig.animalActivationRange;
|
||||
final int monsterActivationRange = world.spigotConfig.monsterActivationRange;
|
||||
final int waterActivationRange = world.spigotConfig.waterActivationRange; // Paper
|
||||
+ final int flyingActivationRange = world.spigotConfig.flyingActivationRange; // Purpur
|
||||
|
||||
// Tuinity start - per player view distance
|
||||
int maxRangeTemp = Math.max( monsterActivationRange, animalActivationRange );
|
||||
@@ -149,6 +156,7 @@ public class ActivationRange
|
||||
ActivationType.ANIMAL.boundingBox = player.getBoundingBox().grow( animalActivationRange, 256, animalActivationRange );
|
||||
ActivationType.MONSTER.boundingBox = player.getBoundingBox().grow( monsterActivationRange, 256, monsterActivationRange );
|
||||
ActivationType.WATER.boundingBox = player.getBoundingBox().grow( waterActivationRange, 256, waterActivationRange ); // Paper
|
||||
+ ActivationType.FLYING.boundingBox = player.getBoundingBox().grow( flyingActivationRange, 256, flyingActivationRange ); // Purpur
|
||||
|
||||
|
||||
int i = MathHelper.floor( maxBB.minX / 16.0D );
|
||||
@@ -210,7 +218,7 @@ public class ActivationRange
|
||||
}
|
||||
if ( !( entity instanceof EntityArrow ) )
|
||||
{
|
||||
- if ( !entity.onGround || !entity.passengers.isEmpty() || entity.isPassenger() )
|
||||
+ if ( (!entity.onGround && !isFlyingMob(entity)) || !entity.passengers.isEmpty() || entity.isPassenger() ) // Purpur
|
||||
{
|
||||
return true;
|
||||
}
|
||||
@@ -298,4 +306,10 @@ public class ActivationRange
|
||||
}
|
||||
return isActive;
|
||||
}
|
||||
+
|
||||
+ // Purpur start
|
||||
+ public static boolean isFlyingMob(Entity entity) {
|
||||
+ return entity instanceof EntityAmbient || entity instanceof EntityBird || entity instanceof EntityFlying || entity instanceof EntityBlaze || entity instanceof EntityVex;
|
||||
+ }
|
||||
+ // Purpur end
|
||||
}
|
||||
diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java
|
||||
index 3ceeed3f99..9a3f566a93 100644
|
||||
--- a/src/main/java/org/spigotmc/SpigotWorldConfig.java
|
||||
+++ b/src/main/java/org/spigotmc/SpigotWorldConfig.java
|
||||
@@ -181,6 +181,7 @@ public class SpigotWorldConfig
|
||||
public int raiderActivationRange = 48;
|
||||
public int miscActivationRange = 16;
|
||||
public int waterActivationRange = 16; // Paper
|
||||
+ public int flyingActivationRange = 128; // Purpur
|
||||
public boolean tickInactiveVillagers = true;
|
||||
private void activationRange()
|
||||
{
|
||||
@@ -189,6 +190,7 @@ public class SpigotWorldConfig
|
||||
raiderActivationRange = getInt( "entity-activation-range.raiders", raiderActivationRange );
|
||||
miscActivationRange = getInt( "entity-activation-range.misc", miscActivationRange );
|
||||
waterActivationRange = getInt( "entity-activation-range.water", waterActivationRange ); // Paper
|
||||
+ flyingActivationRange = getInt( "entity-activation-range.flying", flyingActivationRange ); // Purpur
|
||||
tickInactiveVillagers = getBoolean( "entity-activation-range.tick-inactive-villagers", tickInactiveVillagers );
|
||||
log( "Entity Activation Range: An " + animalActivationRange + " / Mo " + monsterActivationRange + " / Ra " + raiderActivationRange + " / Mi " + miscActivationRange + " / Tiv " + tickInactiveVillagers );
|
||||
}
|
||||
--
|
||||
2.24.0
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
From 6ff103bf87a9bca587647b5348519195ed77af6e Mon Sep 17 00:00:00 2001
|
||||
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
|
||||
Date: Sun, 8 Mar 2020 20:54:44 -0500
|
||||
Subject: [PATCH] Flying mobs should not be exempt from activation range
|
||||
onGround check
|
||||
|
||||
---
|
||||
src/main/java/org/spigotmc/ActivationRange.java | 7 ++++++-
|
||||
1 file changed, 6 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
|
||||
index 11fb146129..b876ffaae7 100644
|
||||
--- a/src/main/java/org/spigotmc/ActivationRange.java
|
||||
+++ b/src/main/java/org/spigotmc/ActivationRange.java
|
||||
@@ -9,6 +9,8 @@ import net.minecraft.server.Entity;
|
||||
import net.minecraft.server.EntityAmbient;
|
||||
import net.minecraft.server.EntityAnimal;
|
||||
import net.minecraft.server.EntityArrow;
|
||||
+import net.minecraft.server.EntityBird; // Purpur
|
||||
+import net.minecraft.server.EntityBlaze; // Purpur
|
||||
import net.minecraft.server.EntityComplexPart;
|
||||
import net.minecraft.server.EntityCreature;
|
||||
import net.minecraft.server.EntityCreeper;
|
||||
@@ -17,6 +19,7 @@ import net.minecraft.server.EntityEnderDragon;
|
||||
import net.minecraft.server.EntityFallingBlock; // Paper
|
||||
import net.minecraft.server.EntityFireball;
|
||||
import net.minecraft.server.EntityFireworks;
|
||||
+import net.minecraft.server.EntityFlying; // Purpur
|
||||
import net.minecraft.server.EntityHuman;
|
||||
import net.minecraft.server.EntityLightning;
|
||||
import net.minecraft.server.EntityLiving;
|
||||
@@ -28,6 +31,7 @@ import net.minecraft.server.EntitySlice;
|
||||
import net.minecraft.server.EntitySlime;
|
||||
import net.minecraft.server.EntityTNTPrimed;
|
||||
import net.minecraft.server.EntityThrownTrident;
|
||||
+import net.minecraft.server.EntityVex; // Purpur
|
||||
import net.minecraft.server.EntityVillager;
|
||||
import net.minecraft.server.EntityWither;
|
||||
import net.minecraft.server.MathHelper;
|
||||
@@ -210,7 +214,8 @@ public class ActivationRange
|
||||
}
|
||||
if ( !( entity instanceof EntityArrow ) )
|
||||
{
|
||||
- if ( !entity.onGround || !entity.passengers.isEmpty() || entity.isPassenger() )
|
||||
+ boolean flyingMob = entity instanceof EntityAmbient || entity instanceof EntityBird || entity instanceof EntityFlying || entity instanceof EntityBlaze || entity instanceof EntityVex; // Purpur
|
||||
+ if ( (!entity.onGround && !flyingMob) || !entity.passengers.isEmpty() || entity.isPassenger() ) // Purpur
|
||||
{
|
||||
return true;
|
||||
}
|
||||
--
|
||||
2.24.0
|
||||
|
||||
Reference in New Issue
Block a user