Phantom flames on swoop

This commit is contained in:
William Blake Galbreath
2025-01-10 00:42:06 -08:00
committed by granny
parent 7d788bc149
commit 33fe2966e6
5 changed files with 29 additions and 58 deletions

View File

@@ -681,7 +681,7 @@ index 94244b148533ef026bf5c56abbc2bb5cfa83c938..474240c0fd68dbfe18b8fce7ae6e7634
}
diff --git a/net/minecraft/world/entity/animal/Cat.java b/net/minecraft/world/entity/animal/Cat.java
index 1a7a5c81a260cc740994d1a63c4775c41c238dea..b4cb2312a1948781cf087fa6d2eb8bb96667605e 100644
index 6acb20424597933658b6f99e8e50681a200d84a8..06be2b391bad13165e1e0332053ae4e3e4198dc9 100644
--- a/net/minecraft/world/entity/animal/Cat.java
+++ b/net/minecraft/world/entity/animal/Cat.java
@@ -93,10 +93,36 @@ public class Cat extends TamableAnimal implements VariantHolder<Holder<CatVarian
@@ -729,7 +729,7 @@ index 1a7a5c81a260cc740994d1a63c4775c41c238dea..b4cb2312a1948781cf087fa6d2eb8bb9
this.targetSelector.addGoal(1, new NonTameRandomTargetGoal<>(this, Rabbit.class, false, null));
this.targetSelector.addGoal(1, new NonTameRandomTargetGoal<>(this, Turtle.class, false, Turtle.BABY_ON_LAND_SELECTOR));
}
@@ -352,6 +379,7 @@ public class Cat extends TamableAnimal implements VariantHolder<Holder<CatVarian
@@ -360,6 +387,7 @@ public class Cat extends TamableAnimal implements VariantHolder<Holder<CatVarian
@Override
public InteractionResult mobInteract(Player player, InteractionHand hand) {
@@ -1929,12 +1929,12 @@ index 354ec2b987882d8f40ef4ac5257183d2fda73bb8..98cb91574c8d2bdb6d180256f657ecc6
this.turtle.setDeltaMovement(this.turtle.getDeltaMovement().add(0.0, this.turtle.getSpeed() * d1 * 0.1, 0.0));
}
diff --git a/net/minecraft/world/entity/animal/Wolf.java b/net/minecraft/world/entity/animal/Wolf.java
index 6eea7ecd42c39645b5a37b58ee1ccb830160c6d5..dacaed7a05d8e7105dd945b7708de6f90e7fc83e 100644
index c4cf5f96e42e661ec08954649929d63fc93709b6..90472dc99ed1c77ca134ccb01923d1c47465619d 100644
--- a/net/minecraft/world/entity/animal/Wolf.java
+++ b/net/minecraft/world/entity/animal/Wolf.java
@@ -172,9 +172,32 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
@@ -180,9 +180,32 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
}
// Purpur end - Configurable chance for wolves to spawn rabid
// Purpur end - Configurable default collar color
+ // Purpur start - Ridables
+ @Override
@@ -1965,7 +1965,7 @@ index 6eea7ecd42c39645b5a37b58ee1ccb830160c6d5..dacaed7a05d8e7105dd945b7708de6f9
this.goalSelector.addGoal(1, new TamableAnimal.TamableAnimalPanicGoal(1.5, DamageTypeTags.PANIC_ENVIRONMENTAL_CAUSES));
this.goalSelector.addGoal(2, new SitWhenOrderedToGoal(this));
this.goalSelector.addGoal(3, new Wolf.WolfAvoidEntityGoal<>(this, Llama.class, 24.0F, 1.5, 1.5));
@@ -187,6 +210,7 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
@@ -195,6 +218,7 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
this.goalSelector.addGoal(9, new BegGoal(this, 8.0F));
this.goalSelector.addGoal(10, new LookAtPlayerGoal(this, Player.class, 8.0F));
this.goalSelector.addGoal(10, new RandomLookAroundGoal(this));
@@ -3785,7 +3785,7 @@ index 905ecbd8b22c785ee4ea18004ac50eb1b7005d3f..f10b204c18b88e9110cebf050b60c233
@Override
diff --git a/net/minecraft/world/entity/monster/Phantom.java b/net/minecraft/world/entity/monster/Phantom.java
index a91aba11ecda561d117c9d8db85c92cdcd81887e..f78976646ea03fbddabdc7ed56229e9d05f90027 100644
index a91aba11ecda561d117c9d8db85c92cdcd81887e..3bff5f13ffcaaedecfab071c5ce6b28028aecd62 100644
--- a/net/minecraft/world/entity/monster/Phantom.java
+++ b/net/minecraft/world/entity/monster/Phantom.java
@@ -60,6 +60,64 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -3865,7 +3865,15 @@ index a91aba11ecda561d117c9d8db85c92cdcd81887e..f78976646ea03fbddabdc7ed56229e9d
this.targetSelector.addGoal(1, new Phantom.PhantomAttackPlayerTargetGoal());
}
@@ -147,6 +207,7 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -90,6 +150,7 @@ public class Phantom extends FlyingMob implements Enemy {
private void updatePhantomSizeInfo() {
this.refreshDimensions();
+ if (level().purpurConfig.phantomFlamesOnSwoop && attackPhase == AttackPhase.SWOOP) shoot(); // Purpur - Ridables - Phantom flames on swoop
this.getAttribute(Attributes.ATTACK_DAMAGE).setBaseValue(6 + this.getPhantomSize());
}
@@ -147,6 +208,7 @@ public class Phantom extends FlyingMob implements Enemy {
@Override
public void aiStep() {
if (this.isAlive() && this.shouldBurnInDay && this.isSunBurnTick()) { // Paper - shouldBurnInDay API
@@ -3873,7 +3881,7 @@ index a91aba11ecda561d117c9d8db85c92cdcd81887e..f78976646ea03fbddabdc7ed56229e9d
this.igniteForSeconds(8.0F);
}
@@ -407,25 +468,42 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -407,25 +469,42 @@ public class Phantom extends FlyingMob implements Enemy {
}
}

View File

@@ -89,7 +89,7 @@ index 474240c0fd68dbfe18b8fce7ae6e7634eea65956..bcf554054111f85b095341a5455856ee
public int getRemainingPersistentAngerTime() {
return this.entityData.get(DATA_REMAINING_ANGER_TIME);
diff --git a/net/minecraft/world/entity/animal/Cat.java b/net/minecraft/world/entity/animal/Cat.java
index b4cb2312a1948781cf087fa6d2eb8bb96667605e..54a003df555a3146fe30de1f95fe2469dced9fb0 100644
index 06be2b391bad13165e1e0332053ae4e3e4198dc9..ec56ba8da89cccdf37abb26b75e524ee98a2f29c 100644
--- a/net/minecraft/world/entity/animal/Cat.java
+++ b/net/minecraft/world/entity/animal/Cat.java
@@ -118,6 +118,14 @@ public class Cat extends TamableAnimal implements VariantHolder<Holder<CatVarian
@@ -497,10 +497,10 @@ index 98cb91574c8d2bdb6d180256f657ecc67987a6fe..4f0fbbb2caeda6d1477d3297fd68f802
this.entityData.set(HOME_POS, homePos);
}
diff --git a/net/minecraft/world/entity/animal/Wolf.java b/net/minecraft/world/entity/animal/Wolf.java
index dacaed7a05d8e7105dd945b7708de6f90e7fc83e..589cc82e47300f8e982a3f20a406ce5e031ebc7b 100644
index 90472dc99ed1c77ca134ccb01923d1c47465619d..710d37dc7623738ce8d8310eaecec8e3a1bc63f0 100644
--- a/net/minecraft/world/entity/animal/Wolf.java
+++ b/net/minecraft/world/entity/animal/Wolf.java
@@ -194,6 +194,14 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
@@ -202,6 +202,14 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
}
// Purpur end - Ridables
@@ -1242,23 +1242,22 @@ index f10b204c18b88e9110cebf050b60c23367ea3aa0..2c6b0fd46d9ed6a8d1ca7e90ebf596dd
return Monster.createMonsterAttributes().add(Attributes.MOVEMENT_SPEED, 0.2F);
}
diff --git a/net/minecraft/world/entity/monster/Phantom.java b/net/minecraft/world/entity/monster/Phantom.java
index f78976646ea03fbddabdc7ed56229e9d05f90027..21ec49ac173b9eac990b63a00f5efab4e7ccfac0 100644
index 3bff5f13ffcaaedecfab071c5ce6b28028aecd62..ada1fc67934fac742d9693b90af429d0e2f507b1 100644
--- a/net/minecraft/world/entity/monster/Phantom.java
+++ b/net/minecraft/world/entity/monster/Phantom.java
@@ -150,7 +150,11 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -151,7 +151,10 @@ public class Phantom extends FlyingMob implements Enemy {
private void updatePhantomSizeInfo() {
this.refreshDimensions();
if (level().purpurConfig.phantomFlamesOnSwoop && attackPhase == AttackPhase.SWOOP) shoot(); // Purpur - Ridables - Phantom flames on swoop
- this.getAttribute(Attributes.ATTACK_DAMAGE).setBaseValue(6 + this.getPhantomSize());
+ // Purpur start - Configurable entity base attributes
+ this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(getFromCache(() -> this.level().purpurConfig.phantomMaxHealth, () -> this.level().purpurConfig.phantomMaxHealthCache, () -> 20.0D));
+ this.getAttribute(Attributes.ATTACK_DAMAGE).setBaseValue(getFromCache(() -> this.level().purpurConfig.phantomAttackDamage, () -> this.level().purpurConfig.phantomAttackDamageCache, () -> (double) (6 + this.getPhantomSize())));
+ // Purpur end - Configurable entity base attributes
+
}
public int getPhantomSize() {
@@ -175,6 +179,23 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -176,6 +179,23 @@ public class Phantom extends FlyingMob implements Enemy {
return true;
}

View File

@@ -65,7 +65,7 @@ index bcf554054111f85b095341a5455856ee79f3ade6..62fbaed0f81b900730ab22b969ffd48d
public int getRemainingPersistentAngerTime() {
return this.entityData.get(DATA_REMAINING_ANGER_TIME);
diff --git a/net/minecraft/world/entity/animal/Cat.java b/net/minecraft/world/entity/animal/Cat.java
index 54a003df555a3146fe30de1f95fe2469dced9fb0..7a9792542a8bc4e142bb82e2cd75c6f7fbec8f8b 100644
index ec56ba8da89cccdf37abb26b75e524ee98a2f29c..f0b7025e5a0d9f2aeb42dec388c1c532a46ece35 100644
--- a/net/minecraft/world/entity/animal/Cat.java
+++ b/net/minecraft/world/entity/animal/Cat.java
@@ -126,6 +126,13 @@ public class Cat extends TamableAnimal implements VariantHolder<Holder<CatVarian
@@ -312,10 +312,10 @@ index 4f0fbbb2caeda6d1477d3297fd68f802e4f3a9ca..edbccb7ca27aa8a1917eb8b35b3ba860
this.entityData.set(HOME_POS, homePos);
}
diff --git a/net/minecraft/world/entity/animal/Wolf.java b/net/minecraft/world/entity/animal/Wolf.java
index 589cc82e47300f8e982a3f20a406ce5e031ebc7b..5e236dcab31cefb893bba3569a0ca0a70560c066 100644
index 710d37dc7623738ce8d8310eaecec8e3a1bc63f0..3e1cb63c1658dccc3bee53ed82ff5b5b7f321afd 100644
--- a/net/minecraft/world/entity/animal/Wolf.java
+++ b/net/minecraft/world/entity/animal/Wolf.java
@@ -202,6 +202,13 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
@@ -210,6 +210,13 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
}
// Purpur end - Configurable entity base attributes

View File

@@ -1353,6 +1353,7 @@ public class PurpurWorldConfig {
public int phantomBurnInLight = 0;
public boolean phantomIgnorePlayersWithTorch = false;
public boolean phantomBurnInDaylight = true;
public boolean phantomFlamesOnSwoop = false;
private void phantomSettings() {
phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable);
phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater);
@@ -1386,6 +1387,7 @@ public class PurpurWorldConfig {
phantomBurnInLight = getInt("mobs.phantom.burn-in-light", phantomBurnInLight);
phantomBurnInDaylight = getBoolean("mobs.phantom.burn-in-daylight", phantomBurnInDaylight);
phantomIgnorePlayersWithTorch = getBoolean("mobs.phantom.ignore-players-with-torch", phantomIgnorePlayersWithTorch);
phantomFlamesOnSwoop = getBoolean("mobs.phantom.flames-on-swoop", phantomFlamesOnSwoop);
}
public boolean pigRidable = false;