mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-06-21 09:47:45 +02:00
1373 lines
66 KiB
Diff
1373 lines
66 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: YouHaveTrouble <garrenpolska@gmail.com>
|
|
Date: Fri, 5 Feb 2021 01:11:22 +0100
|
|
Subject: [PATCH] Toggle for water sensitive mob damage
|
|
|
|
|
|
diff --git a/net/minecraft/world/entity/ambient/Bat.java b/net/minecraft/world/entity/ambient/Bat.java
|
|
index cb242c69be97e0927dd62714f1a9b112c0dec84b..626463a20f49c807eae86b30fe38c514311abd88 100644
|
|
--- a/net/minecraft/world/entity/ambient/Bat.java
|
|
+++ b/net/minecraft/world/entity/ambient/Bat.java
|
|
@@ -109,6 +109,13 @@ public class Bat extends AmbientCreature {
|
|
}
|
|
// Purpur end - Configurable entity base attributes
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.batTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
public boolean isFlapping() {
|
|
return !this.isResting() && this.tickCount % 10.0F == 0.0F;
|
|
diff --git a/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/net/minecraft/world/entity/animal/axolotl/Axolotl.java
|
|
index 3f1c56981c5da00bf7d07c9faf80d3386442723c..72583935d49eb513e1e3211863865f154e742aeb 100644
|
|
--- a/net/minecraft/world/entity/animal/axolotl/Axolotl.java
|
|
+++ b/net/minecraft/world/entity/animal/axolotl/Axolotl.java
|
|
@@ -149,6 +149,13 @@ public class Axolotl extends Animal implements Bucketable {
|
|
}
|
|
// Purpur end - Make entity breeding times configurable
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.axolotlTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
public float getWalkTargetValue(final BlockPos pos, final LevelReader level) {
|
|
return 0.0F;
|
|
diff --git a/net/minecraft/world/entity/animal/bee/Bee.java b/net/minecraft/world/entity/animal/bee/Bee.java
|
|
index 0a06e8df6e111ba65269365f3d021b57d7f87e60..df53953b532ebb4cdc78ea1e1cab0b0ed48ce960 100644
|
|
--- a/net/minecraft/world/entity/animal/bee/Bee.java
|
|
+++ b/net/minecraft/world/entity/animal/bee/Bee.java
|
|
@@ -185,7 +185,7 @@ public class Bee extends Animal implements FlyingAnimal, NeutralMob {
|
|
// Paper end - Fix MC-167279
|
|
this.lookControl = new Bee.BeeLookControl(this);
|
|
this.setPathfindingMalus(PathType.FIRE_IN_NEIGHBOR, -1.0F);
|
|
- if (this.level().purpurConfig.beeCanInstantlyStartDrowning) this.setPathfindingMalus(PathType.WATER, -1.0F); // Purpur - bee can instantly start drowning in water option
|
|
+ if (this.level().purpurConfig.beeCanInstantlyStartDrowning || isSensitiveToWater()) this.setPathfindingMalus(PathType.WATER, -1.0F); // Purpur - bee can instantly start drowning in water option // Purpur - Toggle for water sensitive mob damage
|
|
this.setPathfindingMalus(PathType.WATER_BORDER, 16.0F);
|
|
this.setPathfindingMalus(PathType.COCOA, -1.0F);
|
|
this.setPathfindingMalus(PathType.FENCE, -1.0F);
|
|
@@ -494,6 +494,13 @@ public class Bee extends Animal implements FlyingAnimal, NeutralMob {
|
|
}
|
|
// Purpur end - Make entity breeding times configurable
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.beeTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
public long getPersistentAngerEndTime() {
|
|
return this.entityData.get(DATA_ANGER_END_TIME);
|
|
diff --git a/net/minecraft/world/entity/animal/chicken/Chicken.java b/net/minecraft/world/entity/animal/chicken/Chicken.java
|
|
index ccf7c4630e08d9be54a4634c642a4cd1cd542a82..4a59e133fc6c68f3b3d495c62bb965718643f6b8 100644
|
|
--- a/net/minecraft/world/entity/animal/chicken/Chicken.java
|
|
+++ b/net/minecraft/world/entity/animal/chicken/Chicken.java
|
|
@@ -113,6 +113,13 @@ public class Chicken extends Animal {
|
|
}
|
|
// Purpur end - Make entity breeding times configurable
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.chickenTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
protected void registerGoals() {
|
|
this.goalSelector.addGoal(0, new FloatGoal(this));
|
|
diff --git a/net/minecraft/world/entity/animal/cow/Cow.java b/net/minecraft/world/entity/animal/cow/Cow.java
|
|
index 7981f60f10c44ab2459933cb15ee961103922364..7d3853d693a87e5225a16285631e0e2057685c1b 100644
|
|
--- a/net/minecraft/world/entity/animal/cow/Cow.java
|
|
+++ b/net/minecraft/world/entity/animal/cow/Cow.java
|
|
@@ -66,6 +66,13 @@ public class Cow extends AbstractCow {
|
|
}
|
|
// Purpur end - Make entity breeding times configurable
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.cowTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
protected void defineSynchedData(final SynchedEntityData.Builder entityData) {
|
|
super.defineSynchedData(entityData);
|
|
diff --git a/net/minecraft/world/entity/animal/cow/MushroomCow.java b/net/minecraft/world/entity/animal/cow/MushroomCow.java
|
|
index 88ac1974f09b9213f124550b1873d28d8c926083..9bdc0bb89e554957c70d97e6ca60f1c4aa1ef91b 100644
|
|
--- a/net/minecraft/world/entity/animal/cow/MushroomCow.java
|
|
+++ b/net/minecraft/world/entity/animal/cow/MushroomCow.java
|
|
@@ -92,6 +92,13 @@ public class MushroomCow extends AbstractCow implements Shearable {
|
|
}
|
|
// Purpur end - Make entity breeding times configurable
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.mooshroomTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
public float getWalkTargetValue(final BlockPos pos, final LevelReader level) {
|
|
return level.getBlockState(pos.below()).is(Blocks.MYCELIUM) ? 10.0F : level.getPathfindingCostFromLightLevels(pos);
|
|
diff --git a/net/minecraft/world/entity/animal/dolphin/Dolphin.java b/net/minecraft/world/entity/animal/dolphin/Dolphin.java
|
|
index f8e155393b0c2a69018da88556116b4eeb416d83..58ce1ab82ab9883853eeffd103a1b72053c59798 100644
|
|
--- a/net/minecraft/world/entity/animal/dolphin/Dolphin.java
|
|
+++ b/net/minecraft/world/entity/animal/dolphin/Dolphin.java
|
|
@@ -162,6 +162,13 @@ public class Dolphin extends AgeableWaterCreature {
|
|
}
|
|
// Purpur end - Configurable entity base attributes
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.dolphinTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
public @Nullable SpawnGroupData finalizeSpawn(
|
|
final ServerLevelAccessor level, final DifficultyInstance difficulty, final EntitySpawnReason spawnReason, final @Nullable SpawnGroupData groupData
|
|
diff --git a/net/minecraft/world/entity/animal/equine/Donkey.java b/net/minecraft/world/entity/animal/equine/Donkey.java
|
|
index 8c3d3f0f24e6f5a9b8aa9bf58f3c8b679896017d..5e0846fcaccfab5edbeb90bc61c2360cecf7a0c4 100644
|
|
--- a/net/minecraft/world/entity/animal/equine/Donkey.java
|
|
+++ b/net/minecraft/world/entity/animal/equine/Donkey.java
|
|
@@ -47,6 +47,13 @@ public class Donkey extends AbstractChestedHorse {
|
|
}
|
|
// Purpur end - Make entity breeding times configurable
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.donkeyTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
public SoundEvent getAmbientSound() {
|
|
return SoundEvents.DONKEY_AMBIENT;
|
|
diff --git a/net/minecraft/world/entity/animal/equine/Horse.java b/net/minecraft/world/entity/animal/equine/Horse.java
|
|
index dbb586058f38b6c4f81e2f6567b7ae8ebbaff5a2..64603ad973bdb697ca75642e8e42e7052efd4191 100644
|
|
--- a/net/minecraft/world/entity/animal/equine/Horse.java
|
|
+++ b/net/minecraft/world/entity/animal/equine/Horse.java
|
|
@@ -79,6 +79,13 @@ public class Horse extends AbstractHorse {
|
|
}
|
|
// Purpur end - Make entity breeding times configurable
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.horseTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
protected void randomizeAttributes(final RandomSource random) {
|
|
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(generateMaxHealth(random::nextInt));
|
|
diff --git a/net/minecraft/world/entity/animal/equine/Llama.java b/net/minecraft/world/entity/animal/equine/Llama.java
|
|
index 08dcee8ef18818ad6963762198b9e60e9c7d4d04..4b7a9c76df89cb0494db9375940bc219093f04c1 100644
|
|
--- a/net/minecraft/world/entity/animal/equine/Llama.java
|
|
+++ b/net/minecraft/world/entity/animal/equine/Llama.java
|
|
@@ -158,6 +158,13 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
|
|
}
|
|
// Purpur end - Make entity breeding times configurable
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.llamaTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
public boolean isTraderLlama() {
|
|
return false;
|
|
}
|
|
diff --git a/net/minecraft/world/entity/animal/equine/Mule.java b/net/minecraft/world/entity/animal/equine/Mule.java
|
|
index cf0f3c9d5f8ff348e6fb76db823da4cadce4fc5b..291176b409097d15c2afff7fe8deb17ba07dbc12 100644
|
|
--- a/net/minecraft/world/entity/animal/equine/Mule.java
|
|
+++ b/net/minecraft/world/entity/animal/equine/Mule.java
|
|
@@ -46,6 +46,13 @@ public class Mule extends AbstractChestedHorse {
|
|
}
|
|
// Purpur end - Make entity breeding times configurable
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.muleTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
public SoundEvent getAmbientSound() {
|
|
return SoundEvents.MULE_AMBIENT;
|
|
diff --git a/net/minecraft/world/entity/animal/equine/SkeletonHorse.java b/net/minecraft/world/entity/animal/equine/SkeletonHorse.java
|
|
index cfce6db53e670b39a0db7f6a17857dda0ad160f6..02aa9a838e0cbd62bc0a2e0f30e0cfc9a3995a41 100644
|
|
--- a/net/minecraft/world/entity/animal/equine/SkeletonHorse.java
|
|
+++ b/net/minecraft/world/entity/animal/equine/SkeletonHorse.java
|
|
@@ -74,6 +74,13 @@ public class SkeletonHorse extends AbstractHorse {
|
|
}
|
|
// Purpur end - Make entity breeding times configurable
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.skeletonHorseTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
public static AttributeSupplier.Builder createAttributes() {
|
|
return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 15.0).add(Attributes.MOVEMENT_SPEED, 0.2F);
|
|
}
|
|
diff --git a/net/minecraft/world/entity/animal/equine/TraderLlama.java b/net/minecraft/world/entity/animal/equine/TraderLlama.java
|
|
index 7c41aecd2699725211babbac0350cb241f31ca41..a9fcf7827e6a6b061c2a861d1e59bca80117699b 100644
|
|
--- a/net/minecraft/world/entity/animal/equine/TraderLlama.java
|
|
+++ b/net/minecraft/world/entity/animal/equine/TraderLlama.java
|
|
@@ -77,6 +77,13 @@ public class TraderLlama extends Llama {
|
|
}
|
|
// Purpur end - Make entity breeding times configurable
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.traderLlamaTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
public boolean isTraderLlama() {
|
|
return true;
|
|
diff --git a/net/minecraft/world/entity/animal/equine/ZombieHorse.java b/net/minecraft/world/entity/animal/equine/ZombieHorse.java
|
|
index 4be11663154a870a21832ddba05764a897ce90bd..586151b916a5e21c36578aa04cab9d71994dcf43 100644
|
|
--- a/net/minecraft/world/entity/animal/equine/ZombieHorse.java
|
|
+++ b/net/minecraft/world/entity/animal/equine/ZombieHorse.java
|
|
@@ -85,6 +85,13 @@ public class ZombieHorse extends AbstractHorse {
|
|
}
|
|
// Purpur end - Make entity breeding times configurable
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.zombieHorseTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
public static AttributeSupplier.Builder createAttributes() {
|
|
return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 25.0);
|
|
}
|
|
diff --git a/net/minecraft/world/entity/animal/feline/Cat.java b/net/minecraft/world/entity/animal/feline/Cat.java
|
|
index 51a587af3507415dad42f764d8fe72c5856cb6a7..609cf964f5020728321da2e08ccd94dc925cc4c7 100644
|
|
--- a/net/minecraft/world/entity/animal/feline/Cat.java
|
|
+++ b/net/minecraft/world/entity/animal/feline/Cat.java
|
|
@@ -135,6 +135,13 @@ public class Cat extends TamableAnimal {
|
|
}
|
|
// Purpur end - Make entity breeding times configurable
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.catTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
protected void registerGoals() {
|
|
this.temptGoal = new Cat.CatTemptGoal(this, 0.6, i -> i.is(ItemTags.CAT_FOOD), true);
|
|
diff --git a/net/minecraft/world/entity/animal/feline/Ocelot.java b/net/minecraft/world/entity/animal/feline/Ocelot.java
|
|
index 2accf49e8dd907c8a482e5317d07b28fc5492a1e..9a582b789d3b3037c510c063a07f99f92ac58a1c 100644
|
|
--- a/net/minecraft/world/entity/animal/feline/Ocelot.java
|
|
+++ b/net/minecraft/world/entity/animal/feline/Ocelot.java
|
|
@@ -98,6 +98,13 @@ public class Ocelot extends Animal {
|
|
}
|
|
// Purpur end - Make entity breeding times configurable
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.ocelotTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
public boolean isTrusting() {
|
|
return this.entityData.get(DATA_TRUSTING);
|
|
}
|
|
diff --git a/net/minecraft/world/entity/animal/fish/Cod.java b/net/minecraft/world/entity/animal/fish/Cod.java
|
|
index 948d6a8e3465fd5985e91ca7eaa5f02258ad9625..f44214eaa47c2021f7ca9c84a7b89be15fecb5bc 100644
|
|
--- a/net/minecraft/world/entity/animal/fish/Cod.java
|
|
+++ b/net/minecraft/world/entity/animal/fish/Cod.java
|
|
@@ -32,6 +32,13 @@ public class Cod extends AbstractSchoolingFish {
|
|
}
|
|
// Purpur end - Configurable entity base attributes
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.codTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
public ItemStack getBucketItemStack() {
|
|
return new ItemStack(Items.COD_BUCKET);
|
|
diff --git a/net/minecraft/world/entity/animal/fish/Pufferfish.java b/net/minecraft/world/entity/animal/fish/Pufferfish.java
|
|
index 26acbeff80d3a4216b69b9842381f3fa48c9862b..a0f1ea76011dc3aa6e8a702528062f5fafe07e01 100644
|
|
--- a/net/minecraft/world/entity/animal/fish/Pufferfish.java
|
|
+++ b/net/minecraft/world/entity/animal/fish/Pufferfish.java
|
|
@@ -66,6 +66,13 @@ public class Pufferfish extends AbstractFish {
|
|
}
|
|
// Purpur end - Configurable entity base attributes
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.pufferfishTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
protected void defineSynchedData(final SynchedEntityData.Builder entityData) {
|
|
super.defineSynchedData(entityData);
|
|
diff --git a/net/minecraft/world/entity/animal/fish/Salmon.java b/net/minecraft/world/entity/animal/fish/Salmon.java
|
|
index 9bce191fbc3b68a051f50e85674b8cfd42832a85..ddf23647e17bdb04babae1832486efb52ab9f81a 100644
|
|
--- a/net/minecraft/world/entity/animal/fish/Salmon.java
|
|
+++ b/net/minecraft/world/entity/animal/fish/Salmon.java
|
|
@@ -60,6 +60,13 @@ public class Salmon extends AbstractSchoolingFish {
|
|
}
|
|
// Purpur end - Configurable entity base attributes
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.salmonTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
public int getMaxSchoolSize() {
|
|
return 5;
|
|
diff --git a/net/minecraft/world/entity/animal/fish/TropicalFish.java b/net/minecraft/world/entity/animal/fish/TropicalFish.java
|
|
index e9692aacca5f32c4280b16b4eabecf87c2ed5aeb..dc2800dd2f4c9f71c79d9f012be17398263d033d 100644
|
|
--- a/net/minecraft/world/entity/animal/fish/TropicalFish.java
|
|
+++ b/net/minecraft/world/entity/animal/fish/TropicalFish.java
|
|
@@ -96,6 +96,13 @@ public class TropicalFish extends AbstractSchoolingFish {
|
|
}
|
|
// Purpur end - Configurable entity base attributes
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.tropicalFishTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
public static String getPredefinedName(final int index) {
|
|
return "entity.minecraft.tropical_fish.predefined." + index;
|
|
}
|
|
diff --git a/net/minecraft/world/entity/animal/fox/Fox.java b/net/minecraft/world/entity/animal/fox/Fox.java
|
|
index ed481b0d7c7787ef01797ef553b85b1bac6027c9..e74adaebbf28247e8bc85671ca294c9d9843ca08 100644
|
|
--- a/net/minecraft/world/entity/animal/fox/Fox.java
|
|
+++ b/net/minecraft/world/entity/animal/fox/Fox.java
|
|
@@ -207,6 +207,13 @@ public class Fox extends Animal {
|
|
}
|
|
// Purpur end - Make entity breeding times configurable
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.foxTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
protected void defineSynchedData(final SynchedEntityData.Builder entityData) {
|
|
super.defineSynchedData(entityData);
|
|
diff --git a/net/minecraft/world/entity/animal/goat/Goat.java b/net/minecraft/world/entity/animal/goat/Goat.java
|
|
index 8651caf56331d78f80982b9be1fa24cb963a78a4..ea0aace589356cb2719925d5287bc5672eb45993 100644
|
|
--- a/net/minecraft/world/entity/animal/goat/Goat.java
|
|
+++ b/net/minecraft/world/entity/animal/goat/Goat.java
|
|
@@ -124,6 +124,13 @@ public class Goat extends Animal {
|
|
}
|
|
// Purpur end - Make entity breeding times configurable
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.goatTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
protected Brain<Goat> makeBrain(final Brain.Packed packedBrain) {
|
|
return BRAIN_PROVIDER.makeBrain(this, packedBrain);
|
|
diff --git a/net/minecraft/world/entity/animal/golem/CopperGolem.java b/net/minecraft/world/entity/animal/golem/CopperGolem.java
|
|
index 00877102ad4261ecd7191e402cf4e381dd6e40b3..ac416c47f86b2ec4c8c58a24491b81504e3a8212 100644
|
|
--- a/net/minecraft/world/entity/animal/golem/CopperGolem.java
|
|
+++ b/net/minecraft/world/entity/animal/golem/CopperGolem.java
|
|
@@ -144,6 +144,13 @@ public class CopperGolem extends AbstractGolem implements ContainerUser, Shearab
|
|
}
|
|
// Purpur end - Configurable entity base attributes
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.copperGolemTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
public static AttributeSupplier.Builder createAttributes() {
|
|
return Mob.createMobAttributes().add(Attributes.MOVEMENT_SPEED, 0.2F).add(Attributes.STEP_HEIGHT, 1.0).add(Attributes.MAX_HEALTH, 12.0);
|
|
}
|
|
diff --git a/net/minecraft/world/entity/animal/golem/IronGolem.java b/net/minecraft/world/entity/animal/golem/IronGolem.java
|
|
index cd68a06abb509dbdbcf909d3f3e142c7a1f896cf..305b6b9b5575c9351990d36f3bd2e9721a00dc2b 100644
|
|
--- a/net/minecraft/world/entity/animal/golem/IronGolem.java
|
|
+++ b/net/minecraft/world/entity/animal/golem/IronGolem.java
|
|
@@ -99,6 +99,13 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
|
|
}
|
|
// Purpur end - Configurable entity base attributes
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.ironGolemTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
protected void registerGoals() {
|
|
if (this.level().purpurConfig.ironGolemPoppyCalm) this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.ReceiveFlower(this)); // Purpur - Iron golem calm anger options
|
|
diff --git a/net/minecraft/world/entity/animal/golem/SnowGolem.java b/net/minecraft/world/entity/animal/golem/SnowGolem.java
|
|
index 7091f5bc2ecb9d4b86162fe364447df65d8e9348..2d3127f6846ff9eda1a0b89764dc837da6e7e0c7 100644
|
|
--- a/net/minecraft/world/entity/animal/golem/SnowGolem.java
|
|
+++ b/net/minecraft/world/entity/animal/golem/SnowGolem.java
|
|
@@ -124,7 +124,7 @@ public class SnowGolem extends AbstractGolem implements RangedAttackMob, Shearab
|
|
|
|
@Override
|
|
public boolean isSensitiveToWater() {
|
|
- return true;
|
|
+ return this.level().purpurConfig.snowGolemTakeDamageFromWater; // Purpur - Toggle for water sensitive mob damage
|
|
}
|
|
|
|
@Override
|
|
diff --git a/net/minecraft/world/entity/animal/happyghast/HappyGhast.java b/net/minecraft/world/entity/animal/happyghast/HappyGhast.java
|
|
index cc3ecc13bfcd367f8c6aeb55380bf509e525d85b..2ab9e28e84193ea76e09008a230fbdeb5acbf4c1 100644
|
|
--- a/net/minecraft/world/entity/animal/happyghast/HappyGhast.java
|
|
+++ b/net/minecraft/world/entity/animal/happyghast/HappyGhast.java
|
|
@@ -160,6 +160,13 @@ public class HappyGhast extends Animal {
|
|
}
|
|
// Purpur end - Make entity breeding times configurable
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.happyGhastTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
protected void ageBoundaryReached() {
|
|
if (this.isBaby()) {
|
|
diff --git a/net/minecraft/world/entity/animal/panda/Panda.java b/net/minecraft/world/entity/animal/panda/Panda.java
|
|
index 25232dc02916a0d7189d925c858d88ab71ea5677..4249aff88a1768f2f2184a09efe730752545b164 100644
|
|
--- a/net/minecraft/world/entity/animal/panda/Panda.java
|
|
+++ b/net/minecraft/world/entity/animal/panda/Panda.java
|
|
@@ -152,6 +152,13 @@ public class Panda extends Animal {
|
|
}
|
|
// Purpur end - Make entity breeding times configurable
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.pandaTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
protected boolean canDispenserEquipIntoSlot(final EquipmentSlot slot) {
|
|
return slot == EquipmentSlot.MAINHAND && this.canPickUpLoot();
|
|
diff --git a/net/minecraft/world/entity/animal/parrot/Parrot.java b/net/minecraft/world/entity/animal/parrot/Parrot.java
|
|
index 346cc1fa117229b95eef86b1bf2e9fe3a84970cf..0f5da739a7bed82a1ccef173d379a78981f37939 100644
|
|
--- a/net/minecraft/world/entity/animal/parrot/Parrot.java
|
|
+++ b/net/minecraft/world/entity/animal/parrot/Parrot.java
|
|
@@ -214,6 +214,13 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
|
|
}
|
|
// Purpur end - Make entity breeding times configurable
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.parrotTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
public @Nullable SpawnGroupData finalizeSpawn(
|
|
final ServerLevelAccessor level, final DifficultyInstance difficulty, final EntitySpawnReason spawnReason, @Nullable SpawnGroupData groupData
|
|
diff --git a/net/minecraft/world/entity/animal/pig/Pig.java b/net/minecraft/world/entity/animal/pig/Pig.java
|
|
index 14696e16da919a78d0098ad07a911b82ed6b60da..5413851446237e7984c8da4172c31b0dd9affc60 100644
|
|
--- a/net/minecraft/world/entity/animal/pig/Pig.java
|
|
+++ b/net/minecraft/world/entity/animal/pig/Pig.java
|
|
@@ -100,6 +100,13 @@ public class Pig extends Animal implements ItemSteerable {
|
|
}
|
|
// Purpur end - Make entity breeding times configurable
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.pigTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
protected void registerGoals() {
|
|
this.goalSelector.addGoal(0, new FloatGoal(this));
|
|
diff --git a/net/minecraft/world/entity/animal/polarbear/PolarBear.java b/net/minecraft/world/entity/animal/polarbear/PolarBear.java
|
|
index 38d4e31ddd9bd169dd30b6dee456f0d3f10f106d..a9e64a4053755050099cdcaef870a0099a867575 100644
|
|
--- a/net/minecraft/world/entity/animal/polarbear/PolarBear.java
|
|
+++ b/net/minecraft/world/entity/animal/polarbear/PolarBear.java
|
|
@@ -133,6 +133,13 @@ public class PolarBear extends Animal implements NeutralMob {
|
|
}
|
|
// Purpur end - Make entity breeding times configurable
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.polarBearTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
public @Nullable AgeableMob getBreedOffspring(final ServerLevel level, final AgeableMob partner) {
|
|
return EntityType.POLAR_BEAR.create(level, EntitySpawnReason.BREEDING);
|
|
diff --git a/net/minecraft/world/entity/animal/rabbit/Rabbit.java b/net/minecraft/world/entity/animal/rabbit/Rabbit.java
|
|
index 07db369d748df1e870339eb06032146d6fba8d35..9116e659fff5daf09257739f6c04e32d1dfc70ca 100644
|
|
--- a/net/minecraft/world/entity/animal/rabbit/Rabbit.java
|
|
+++ b/net/minecraft/world/entity/animal/rabbit/Rabbit.java
|
|
@@ -177,6 +177,13 @@ public class Rabbit extends Animal {
|
|
}
|
|
// Purpur end - Make entity breeding times configurable
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.rabbitTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
public void registerGoals() {
|
|
this.goalSelector.addGoal(1, new FloatGoal(this));
|
|
diff --git a/net/minecraft/world/entity/animal/sheep/Sheep.java b/net/minecraft/world/entity/animal/sheep/Sheep.java
|
|
index e83fe71b4f63f8f7fa1976f7d2165c36bbb184bf..49389028a34971bbd1c480ba91e2b53d3c26513c 100644
|
|
--- a/net/minecraft/world/entity/animal/sheep/Sheep.java
|
|
+++ b/net/minecraft/world/entity/animal/sheep/Sheep.java
|
|
@@ -95,6 +95,13 @@ public class Sheep extends Animal implements Shearable {
|
|
}
|
|
// Purpur end - Make entity breeding times configurable
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.sheepTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
protected void registerGoals() {
|
|
this.eatBlockGoal = new EatBlockGoal(this);
|
|
diff --git a/net/minecraft/world/entity/animal/squid/GlowSquid.java b/net/minecraft/world/entity/animal/squid/GlowSquid.java
|
|
index cb3d0bd838473af87af74c7d1bab38593a6c8f6d..1fa3d614dd1c45ec42caffbe92e3f8db02b399b1 100644
|
|
--- a/net/minecraft/world/entity/animal/squid/GlowSquid.java
|
|
+++ b/net/minecraft/world/entity/animal/squid/GlowSquid.java
|
|
@@ -57,6 +57,13 @@ public class GlowSquid extends Squid {
|
|
}
|
|
// Purpur end - Configurable entity base attributes
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.glowSquidTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
protected ParticleOptions getInkParticle() {
|
|
return ParticleTypes.GLOW_SQUID_INK;
|
|
diff --git a/net/minecraft/world/entity/animal/squid/Squid.java b/net/minecraft/world/entity/animal/squid/Squid.java
|
|
index da8e8d817f959ffcbc0a84a40af854ecfc939ef2..2b2272122a7ebaed6a995d09dab7a3db3ee0c594 100644
|
|
--- a/net/minecraft/world/entity/animal/squid/Squid.java
|
|
+++ b/net/minecraft/world/entity/animal/squid/Squid.java
|
|
@@ -104,6 +104,13 @@ public class Squid extends AgeableWaterCreature {
|
|
}
|
|
// Purpur end - Configurable entity base attributes
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.squidTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
protected void registerGoals() {
|
|
this.goalSelector.addGoal(0, new Squid.SquidRandomMovementGoal(this));
|
|
diff --git a/net/minecraft/world/entity/animal/turtle/Turtle.java b/net/minecraft/world/entity/animal/turtle/Turtle.java
|
|
index 62d9fce83cc44165c5356049a12bf6081c925857..6d09c0de38f2c91d2a0ab6dd0b694ab42b48a981 100644
|
|
--- a/net/minecraft/world/entity/animal/turtle/Turtle.java
|
|
+++ b/net/minecraft/world/entity/animal/turtle/Turtle.java
|
|
@@ -119,6 +119,13 @@ public class Turtle extends Animal {
|
|
}
|
|
// Purpur end - Make entity breeding times configurable
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.turtleTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
public void setHomePos(final BlockPos pos) {
|
|
this.homePos = pos;
|
|
}
|
|
diff --git a/net/minecraft/world/entity/animal/wolf/Wolf.java b/net/minecraft/world/entity/animal/wolf/Wolf.java
|
|
index f84b35919e49c1a86cbc4bdec1f9f81f2dac633d..1587bcafa4b338a98e60743faab0b2ce9b923444 100644
|
|
--- a/net/minecraft/world/entity/animal/wolf/Wolf.java
|
|
+++ b/net/minecraft/world/entity/animal/wolf/Wolf.java
|
|
@@ -219,6 +219,13 @@ public class Wolf extends TamableAnimal implements NeutralMob {
|
|
}
|
|
// Purpur end - Make entity breeding times configurable
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.wolfTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
protected void registerGoals() {
|
|
this.goalSelector.addGoal(1, new FloatGoal(this));
|
|
diff --git a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
|
index 9cdbb284c190f2130824c881000880958994013f..994939ffe86f9986b6879c5cf9f982f8e9535e37 100644
|
|
--- a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
|
+++ b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
|
@@ -170,6 +170,13 @@ public class EnderDragon extends Mob implements Enemy {
|
|
}
|
|
// Purpur end - Configurable entity base attributes
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.enderDragonTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
public static AttributeSupplier.Builder createAttributes() {
|
|
return Mob.createMobAttributes().add(Attributes.MAX_HEALTH, 200.0).add(Attributes.CAMERA_DISTANCE, 16.0);
|
|
}
|
|
diff --git a/net/minecraft/world/entity/boss/wither/WitherBoss.java b/net/minecraft/world/entity/boss/wither/WitherBoss.java
|
|
index 06f09cf81d1ad42beda79dbd5087c2d7264a9612..2a88f051740bba72bb48e7f23cbd12d216a2eb86 100644
|
|
--- a/net/minecraft/world/entity/boss/wither/WitherBoss.java
|
|
+++ b/net/minecraft/world/entity/boss/wither/WitherBoss.java
|
|
@@ -221,6 +221,13 @@ public class WitherBoss extends Monster implements RangedAttackMob {
|
|
}
|
|
// Purpur end - Configurable entity base attributes
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.witherTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
protected PathNavigation createNavigation(final Level level) {
|
|
FlyingPathNavigation flyingPathNavigation = new FlyingPathNavigation(this, level);
|
|
diff --git a/net/minecraft/world/entity/monster/Blaze.java b/net/minecraft/world/entity/monster/Blaze.java
|
|
index b553c6dd60bd23fba7ee3df9886561fc7640f104..7f0e76437798f1bab7956722382e1517f8f71121 100644
|
|
--- a/net/minecraft/world/entity/monster/Blaze.java
|
|
+++ b/net/minecraft/world/entity/monster/Blaze.java
|
|
@@ -35,7 +35,7 @@ public class Blaze extends Monster {
|
|
public Blaze(final EntityType<? extends Blaze> blaze, final Level level) {
|
|
super(blaze, level);
|
|
this.moveControl = new org.purpurmc.purpur.controller.FlyingWithSpacebarMoveControllerWASD(this, 0.3F); // Purpur - Ridables
|
|
- this.setPathfindingMalus(PathType.WATER, -1.0F);
|
|
+ if (isSensitiveToWater()) this.setPathfindingMalus(PathType.WATER, -1.0F); // Purpur - Toggle for water sensitive mob damage
|
|
this.setPathfindingMalus(PathType.LAVA, 8.0F);
|
|
this.setPathfindingMalus(PathType.FIRE_IN_NEIGHBOR, 0.0F);
|
|
this.setPathfindingMalus(PathType.FIRE, 0.0F);
|
|
@@ -158,7 +158,7 @@ public class Blaze extends Monster {
|
|
|
|
@Override
|
|
public boolean isSensitiveToWater() {
|
|
- return true;
|
|
+ return this.level().purpurConfig.blazeTakeDamageFromWater; // Purpur - Toggle for water sensitive mob damage
|
|
}
|
|
|
|
@Override
|
|
diff --git a/net/minecraft/world/entity/monster/Creeper.java b/net/minecraft/world/entity/monster/Creeper.java
|
|
index 01c722932aaed2221badaa6231d8a20d005b087b..2d60c5e6426097302464e04bcfdd60abd08b96b9 100644
|
|
--- a/net/minecraft/world/entity/monster/Creeper.java
|
|
+++ b/net/minecraft/world/entity/monster/Creeper.java
|
|
@@ -266,6 +266,13 @@ public class Creeper extends Monster {
|
|
}
|
|
// Purpur end - Config to make Creepers explode on death
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.creeperTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
public SoundEvent getHurtSound(final DamageSource source) {
|
|
return SoundEvents.CREEPER_HURT;
|
|
diff --git a/net/minecraft/world/entity/monster/ElderGuardian.java b/net/minecraft/world/entity/monster/ElderGuardian.java
|
|
index ffcfe02c51f6df1bd238c821a8d6535f4ccf019c..a98967c7a76d8e25da9e31eaa8f2ae0bf0704c9d 100644
|
|
--- a/net/minecraft/world/entity/monster/ElderGuardian.java
|
|
+++ b/net/minecraft/world/entity/monster/ElderGuardian.java
|
|
@@ -51,6 +51,13 @@ public class ElderGuardian extends Guardian {
|
|
}
|
|
// Purpur end - Configurable entity base attributes
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.elderGuardianTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
public static AttributeSupplier.Builder createAttributes() {
|
|
return Guardian.createAttributes().add(Attributes.MOVEMENT_SPEED, 0.3F).add(Attributes.ATTACK_DAMAGE, 8.0).add(Attributes.MAX_HEALTH, 80.0);
|
|
}
|
|
diff --git a/net/minecraft/world/entity/monster/EnderMan.java b/net/minecraft/world/entity/monster/EnderMan.java
|
|
index 3f233ad5cf2514813ec8d3d36a59f716615a8b18..2b02becb39f89ca02e42cf9e3df6cbfa8eba800f 100644
|
|
--- a/net/minecraft/world/entity/monster/EnderMan.java
|
|
+++ b/net/minecraft/world/entity/monster/EnderMan.java
|
|
@@ -86,7 +86,7 @@ public class EnderMan extends Monster implements NeutralMob {
|
|
|
|
public EnderMan(final EntityType<? extends EnderMan> type, final Level level) {
|
|
super(type, level);
|
|
- this.setPathfindingMalus(PathType.WATER, -1.0F);
|
|
+ if (isSensitiveToWater()) this.setPathfindingMalus(PathType.WATER, -1.0F); // Purpur - Toggle for water sensitive mob damage
|
|
}
|
|
|
|
// Purpur start - Ridables
|
|
@@ -285,7 +285,7 @@ public class EnderMan extends Monster implements NeutralMob {
|
|
|
|
@Override
|
|
public boolean isSensitiveToWater() {
|
|
- return true;
|
|
+ return this.level().purpurConfig.endermanTakeDamageFromWater; // Purpur - Toggle for water sensitive mob damage
|
|
}
|
|
|
|
@Override
|
|
diff --git a/net/minecraft/world/entity/monster/Endermite.java b/net/minecraft/world/entity/monster/Endermite.java
|
|
index c10982945974171e478690d2db5080551cb29cdb..099476663f734f00b4979de7c2d0f13da5bf4909 100644
|
|
--- a/net/minecraft/world/entity/monster/Endermite.java
|
|
+++ b/net/minecraft/world/entity/monster/Endermite.java
|
|
@@ -72,6 +72,13 @@ public class Endermite extends Monster {
|
|
}
|
|
// Purpur end - Configurable entity base attributes
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.endermiteTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
protected void registerGoals() {
|
|
this.goalSelector.addGoal(1, new FloatGoal(this));
|
|
diff --git a/net/minecraft/world/entity/monster/Ghast.java b/net/minecraft/world/entity/monster/Ghast.java
|
|
index 5ebb6dc59ee8a845a983de207e763e1df103a4f7..14c5c70853bc8bef677c12f7e1884f472c293609 100644
|
|
--- a/net/minecraft/world/entity/monster/Ghast.java
|
|
+++ b/net/minecraft/world/entity/monster/Ghast.java
|
|
@@ -83,6 +83,13 @@ public class Ghast extends Mob implements Enemy {
|
|
}
|
|
// Purpur end - Configurable entity base attributes
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.ghastTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
protected void registerGoals() {
|
|
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
|
|
diff --git a/net/minecraft/world/entity/monster/Giant.java b/net/minecraft/world/entity/monster/Giant.java
|
|
index c39031e8fdfb0dff7867d9525dbddde110242647..43ebfe06ce2a8c15787d72a8ef54cd6c7cac2bfc 100644
|
|
--- a/net/minecraft/world/entity/monster/Giant.java
|
|
+++ b/net/minecraft/world/entity/monster/Giant.java
|
|
@@ -62,6 +62,13 @@ public class Giant extends Monster {
|
|
}
|
|
// Purpur end - Configurable entity base attributes
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.giantTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
public static AttributeSupplier.Builder createAttributes() {
|
|
return Monster.createMonsterAttributes()
|
|
.add(Attributes.MAX_HEALTH, 100.0)
|
|
diff --git a/net/minecraft/world/entity/monster/Guardian.java b/net/minecraft/world/entity/monster/Guardian.java
|
|
index 2616aab01c6c43fcc259c42c9d5c43fc73794caf..3acf963c26ef5f269a95cdf8fe0da248adf22c83 100644
|
|
--- a/net/minecraft/world/entity/monster/Guardian.java
|
|
+++ b/net/minecraft/world/entity/monster/Guardian.java
|
|
@@ -97,6 +97,13 @@ public class Guardian extends Monster {
|
|
}
|
|
// Purpur end - Configurable entity base attributes
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.guardianTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
protected void registerGoals() {
|
|
MoveTowardsRestrictionGoal goal = new MoveTowardsRestrictionGoal(this, 1.0);
|
|
diff --git a/net/minecraft/world/entity/monster/MagmaCube.java b/net/minecraft/world/entity/monster/MagmaCube.java
|
|
index d40a4daeec1500f2d9865022ee6e3c386ad7533e..fba41f261e57a050d4e24d2611cc27edcbb84ddf 100644
|
|
--- a/net/minecraft/world/entity/monster/MagmaCube.java
|
|
+++ b/net/minecraft/world/entity/monster/MagmaCube.java
|
|
@@ -68,6 +68,13 @@ public class MagmaCube extends Slime {
|
|
}
|
|
// Purpur end - Configurable entity base attributes
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.magmaCubeTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
public static AttributeSupplier.Builder createAttributes() {
|
|
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 03db90080675c879688c37e568dc25603b4972b1..b95449d4de57c42e604428e4f5a74fb1eb44746f 100644
|
|
--- a/net/minecraft/world/entity/monster/Phantom.java
|
|
+++ b/net/minecraft/world/entity/monster/Phantom.java
|
|
@@ -128,6 +128,13 @@ public class Phantom extends Mob implements Enemy {
|
|
}
|
|
// Purpur end - Phantoms attracted to crystals and crystals shoot phantoms
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.phantomTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
public boolean isFlapping() {
|
|
return (this.getUniqueFlapTickOffset() + this.tickCount) % TICKS_PER_FLAP == 0;
|
|
diff --git a/net/minecraft/world/entity/monster/Ravager.java b/net/minecraft/world/entity/monster/Ravager.java
|
|
index 01e09b39ac5385e7cbfa8a38df94884c17f8f8c0..3e0403635cb9ce3d0894705db6727d9a7cc4d628 100644
|
|
--- a/net/minecraft/world/entity/monster/Ravager.java
|
|
+++ b/net/minecraft/world/entity/monster/Ravager.java
|
|
@@ -101,6 +101,13 @@ public class Ravager extends Raider {
|
|
}
|
|
// Purpur end - Configurable entity base attributes
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.ravagerTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
protected void registerGoals() {
|
|
super.registerGoals();
|
|
diff --git a/net/minecraft/world/entity/monster/Shulker.java b/net/minecraft/world/entity/monster/Shulker.java
|
|
index b07dd45cf3ee07d8e51aa9473ee22fab577809c6..8e33c702bf4b6a2ad2af8e730f9fecef579ab2ad 100644
|
|
--- a/net/minecraft/world/entity/monster/Shulker.java
|
|
+++ b/net/minecraft/world/entity/monster/Shulker.java
|
|
@@ -134,6 +134,13 @@ public class Shulker extends AbstractGolem implements Enemy {
|
|
}
|
|
// Purpur end - Configurable entity base attributes
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.shulkerTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
protected void registerGoals() {
|
|
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
|
|
diff --git a/net/minecraft/world/entity/monster/Silverfish.java b/net/minecraft/world/entity/monster/Silverfish.java
|
|
index 34bb4c573f72b32931e47e5502a342a8d2283a6c..e6bc3451f2f5921c5f8773749962b4334328ac88 100644
|
|
--- a/net/minecraft/world/entity/monster/Silverfish.java
|
|
+++ b/net/minecraft/world/entity/monster/Silverfish.java
|
|
@@ -65,6 +65,13 @@ public class Silverfish extends Monster {
|
|
}
|
|
// Purpur end - Configurable entity base attributes
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.silverfishTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
protected void registerGoals() {
|
|
this.friendsGoal = new Silverfish.SilverfishWakeUpFriendsGoal(this);
|
|
diff --git a/net/minecraft/world/entity/monster/Slime.java b/net/minecraft/world/entity/monster/Slime.java
|
|
index f541ccef625ab0d560f4781c28ad7ae3b67196d6..834125d0ded28a1d7a39a3e5fcf6a5bb967c7f91 100644
|
|
--- a/net/minecraft/world/entity/monster/Slime.java
|
|
+++ b/net/minecraft/world/entity/monster/Slime.java
|
|
@@ -135,6 +135,13 @@ public class Slime extends Mob implements Enemy {
|
|
}
|
|
// Purpur end - Configurable entity base attributes
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.slimeTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
protected void registerGoals() {
|
|
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
|
|
diff --git a/net/minecraft/world/entity/monster/Strider.java b/net/minecraft/world/entity/monster/Strider.java
|
|
index b6c20ce23cc1c97c337c5df6e03ad79a51c08702..eacbaa4a9c9eb30a29eade20b31860f9ec6e1a69 100644
|
|
--- a/net/minecraft/world/entity/monster/Strider.java
|
|
+++ b/net/minecraft/world/entity/monster/Strider.java
|
|
@@ -87,7 +87,7 @@ public class Strider extends Animal implements ItemSteerable {
|
|
public Strider(final EntityType<? extends Strider> strider, final Level level) {
|
|
super(strider, level);
|
|
this.blocksBuilding = true;
|
|
- this.setPathfindingMalus(PathType.WATER, -1.0F);
|
|
+ if (isSensitiveToWater()) this.setPathfindingMalus(PathType.WATER, -1.0F); // Purpur - Toggle for water sensitive mob damage
|
|
this.setPathfindingMalus(PathType.LAVA, 0.0F);
|
|
this.setPathfindingMalus(PathType.FIRE_IN_NEIGHBOR, 0.0F);
|
|
this.setPathfindingMalus(PathType.FIRE, 0.0F);
|
|
@@ -398,7 +398,7 @@ public class Strider extends Animal implements ItemSteerable {
|
|
|
|
@Override
|
|
public boolean isSensitiveToWater() {
|
|
- return true;
|
|
+ return this.level().purpurConfig.striderTakeDamageFromWater; // Purpur - Toggle for water sensitive mob damage
|
|
}
|
|
|
|
@Override
|
|
diff --git a/net/minecraft/world/entity/monster/Vex.java b/net/minecraft/world/entity/monster/Vex.java
|
|
index 4b5aade3de8ff29943b58741db5e310851a33561..838edcb5267268fadfc913ea71f3fb4adbe94209 100644
|
|
--- a/net/minecraft/world/entity/monster/Vex.java
|
|
+++ b/net/minecraft/world/entity/monster/Vex.java
|
|
@@ -110,6 +110,13 @@ public class Vex extends Monster implements TraceableEntity {
|
|
}
|
|
// Purpur end - Configurable entity base attributes
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.vexTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
public boolean isFlapping() {
|
|
return this.tickCount % TICKS_PER_FLAP == 0;
|
|
diff --git a/net/minecraft/world/entity/monster/Witch.java b/net/minecraft/world/entity/monster/Witch.java
|
|
index 6b17c2135397f349670a7180e88db4794d3902a8..bfa222c9b61bc2d20927fdf08e8baa5fda4fdbdc 100644
|
|
--- a/net/minecraft/world/entity/monster/Witch.java
|
|
+++ b/net/minecraft/world/entity/monster/Witch.java
|
|
@@ -82,6 +82,13 @@ public class Witch extends Raider implements RangedAttackMob {
|
|
}
|
|
// Purpur end - Configurable entity base attributes
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.witchTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
protected void registerGoals() {
|
|
super.registerGoals();
|
|
diff --git a/net/minecraft/world/entity/monster/Zoglin.java b/net/minecraft/world/entity/monster/Zoglin.java
|
|
index 4d4593f89e20e8e72a979cc2dee54566ef380462..15e5e3c63ec9bddaf19636e27dd21d12df9318ce 100644
|
|
--- a/net/minecraft/world/entity/monster/Zoglin.java
|
|
+++ b/net/minecraft/world/entity/monster/Zoglin.java
|
|
@@ -101,6 +101,13 @@ public class Zoglin extends Monster implements HoglinBase {
|
|
}
|
|
// Purpur end - Configurable entity base attributes
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.zoglinTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
protected Brain<Zoglin> makeBrain(final Brain.Packed packedBrain) {
|
|
return BRAIN_PROVIDER.makeBrain(this, packedBrain);
|
|
diff --git a/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/net/minecraft/world/entity/monster/hoglin/Hoglin.java
|
|
index d158807f22a0a08614b2d7054663ef2782a519e3..d001cf955dba66435079eb2cc30e05aec963d2c6 100644
|
|
--- a/net/minecraft/world/entity/monster/hoglin/Hoglin.java
|
|
+++ b/net/minecraft/world/entity/monster/hoglin/Hoglin.java
|
|
@@ -105,6 +105,13 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
|
|
}
|
|
// Purpur end - Make entity breeding times configurable
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.hoglinTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@VisibleForTesting
|
|
public void setTimeInOverworld(final int timeInOverworld) {
|
|
this.timeInOverworld = timeInOverworld;
|
|
diff --git a/net/minecraft/world/entity/monster/illager/Evoker.java b/net/minecraft/world/entity/monster/illager/Evoker.java
|
|
index 40fb26c7b0f5975a58d218d799fa391661e1c748..fe67813da3b3be09dad8f99a68685448b33fa5a9 100644
|
|
--- a/net/minecraft/world/entity/monster/illager/Evoker.java
|
|
+++ b/net/minecraft/world/entity/monster/illager/Evoker.java
|
|
@@ -74,6 +74,13 @@ public class Evoker extends SpellcasterIllager {
|
|
}
|
|
// Purpur end - Configurable entity base attributes
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.evokerTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
protected void registerGoals() {
|
|
super.registerGoals();
|
|
diff --git a/net/minecraft/world/entity/monster/illager/Illusioner.java b/net/minecraft/world/entity/monster/illager/Illusioner.java
|
|
index 0150ebdcbb681bcf8128eec34fd6e3fbfb85a79f..bfd1a61d43fcc1293592a6199d7bab0346f40c7f 100644
|
|
--- a/net/minecraft/world/entity/monster/illager/Illusioner.java
|
|
+++ b/net/minecraft/world/entity/monster/illager/Illusioner.java
|
|
@@ -86,6 +86,13 @@ public class Illusioner extends SpellcasterIllager implements RangedAttackMob {
|
|
}
|
|
// Purpur end - Configurable entity base attributes
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.illusionerTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
protected void registerGoals() {
|
|
super.registerGoals();
|
|
diff --git a/net/minecraft/world/entity/monster/illager/Pillager.java b/net/minecraft/world/entity/monster/illager/Pillager.java
|
|
index 134650a5866459881c1dca4b77b47110fd67420a..bd9092a0fecef475bde06d94bc2f6726f21404fd 100644
|
|
--- a/net/minecraft/world/entity/monster/illager/Pillager.java
|
|
+++ b/net/minecraft/world/entity/monster/illager/Pillager.java
|
|
@@ -90,6 +90,13 @@ public class Pillager extends AbstractIllager implements CrossbowAttackMob, Inve
|
|
}
|
|
// Purpur end - Configurable entity base attributes
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.pillagerTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
protected void registerGoals() {
|
|
super.registerGoals();
|
|
diff --git a/net/minecraft/world/entity/monster/illager/Vindicator.java b/net/minecraft/world/entity/monster/illager/Vindicator.java
|
|
index 865395b9ceddfaac4fc88701878a1cf349556fe1..aab0bd86da31ca73efc4988fa34c906886139ec3 100644
|
|
--- a/net/minecraft/world/entity/monster/illager/Vindicator.java
|
|
+++ b/net/minecraft/world/entity/monster/illager/Vindicator.java
|
|
@@ -82,6 +82,13 @@ public class Vindicator extends AbstractIllager {
|
|
}
|
|
// Purpur end - Configurable entity base attributes
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.vindicatorTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
protected void registerGoals() {
|
|
super.registerGoals();
|
|
diff --git a/net/minecraft/world/entity/monster/piglin/Piglin.java b/net/minecraft/world/entity/monster/piglin/Piglin.java
|
|
index d00490669c66343e37d2a54a051f02995e686c84..21674f5ee9bd89bfbcf36f43ba728a692934a886 100644
|
|
--- a/net/minecraft/world/entity/monster/piglin/Piglin.java
|
|
+++ b/net/minecraft/world/entity/monster/piglin/Piglin.java
|
|
@@ -133,6 +133,13 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
|
|
}
|
|
// Purpur end - Configurable entity base attributes
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.piglinTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
protected void addAdditionalSaveData(final ValueOutput output) {
|
|
super.addAdditionalSaveData(output);
|
|
diff --git a/net/minecraft/world/entity/monster/piglin/PiglinBrute.java b/net/minecraft/world/entity/monster/piglin/PiglinBrute.java
|
|
index 4d82bf4283cb3ff26d5a9c367a28b4debed6cb0d..79e084304cec441966a22f0028e021d19e49bfd3 100644
|
|
--- a/net/minecraft/world/entity/monster/piglin/PiglinBrute.java
|
|
+++ b/net/minecraft/world/entity/monster/piglin/PiglinBrute.java
|
|
@@ -75,6 +75,13 @@ public class PiglinBrute extends AbstractPiglin {
|
|
}
|
|
// Purpur end - Configurable entity base attributes
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.piglinBruteTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
public static AttributeSupplier.Builder createAttributes() {
|
|
return Monster.createMonsterAttributes()
|
|
.add(Attributes.MAX_HEALTH, 50.0)
|
|
diff --git a/net/minecraft/world/entity/monster/skeleton/Skeleton.java b/net/minecraft/world/entity/monster/skeleton/Skeleton.java
|
|
index 76b16400085d237194ed646b04210c8eca8398d3..a2fc1cf5fa77c1cc78610ce0b4bbd35a371878a0 100644
|
|
--- a/net/minecraft/world/entity/monster/skeleton/Skeleton.java
|
|
+++ b/net/minecraft/world/entity/monster/skeleton/Skeleton.java
|
|
@@ -50,6 +50,13 @@ public class Skeleton extends AbstractSkeleton {
|
|
}
|
|
// Purpur end - Configurable entity base attributes
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.skeletonTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
protected void defineSynchedData(final SynchedEntityData.Builder entityData) {
|
|
super.defineSynchedData(entityData);
|
|
diff --git a/net/minecraft/world/entity/monster/skeleton/Stray.java b/net/minecraft/world/entity/monster/skeleton/Stray.java
|
|
index ce9364040d6e856fd1fa42baa75b403098e6813f..64dc2a04bb2ae4dc63083a24c48f671bfc8ff8ea 100644
|
|
--- a/net/minecraft/world/entity/monster/skeleton/Stray.java
|
|
+++ b/net/minecraft/world/entity/monster/skeleton/Stray.java
|
|
@@ -47,6 +47,13 @@ public class Stray extends AbstractSkeleton {
|
|
}
|
|
// Purpur end - Configurable entity base attributes
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.strayTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
public static boolean checkStraySpawnRules(
|
|
final EntityType<Stray> type, final ServerLevelAccessor level, final EntitySpawnReason spawnReason, final BlockPos pos, final RandomSource random
|
|
) {
|
|
diff --git a/net/minecraft/world/entity/monster/skeleton/WitherSkeleton.java b/net/minecraft/world/entity/monster/skeleton/WitherSkeleton.java
|
|
index 0d370f992e5ef601d8032230c927164d760a95e1..2f3ff6eeae3103248512afb8cfd745f3e08c3eaf 100644
|
|
--- a/net/minecraft/world/entity/monster/skeleton/WitherSkeleton.java
|
|
+++ b/net/minecraft/world/entity/monster/skeleton/WitherSkeleton.java
|
|
@@ -59,6 +59,13 @@ public class WitherSkeleton extends AbstractSkeleton {
|
|
}
|
|
// Purpur end - Configurable entity base attributes
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.witherSkeletonTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
protected void registerGoals() {
|
|
this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, AbstractPiglin.class, true));
|
|
diff --git a/net/minecraft/world/entity/monster/spider/CaveSpider.java b/net/minecraft/world/entity/monster/spider/CaveSpider.java
|
|
index beba154f2a76d3d8f7d9b44c1b45b83c9dc3b86c..cbbfdd2dde1437955f1007618244eeb72768b8fd 100644
|
|
--- a/net/minecraft/world/entity/monster/spider/CaveSpider.java
|
|
+++ b/net/minecraft/world/entity/monster/spider/CaveSpider.java
|
|
@@ -51,6 +51,13 @@ public class CaveSpider extends Spider {
|
|
}
|
|
// Purpur end - Configurable entity base attributes
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.caveSpiderTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
public boolean doHurtTarget(final ServerLevel level, final Entity target) {
|
|
if (super.doHurtTarget(level, target)) {
|
|
diff --git a/net/minecraft/world/entity/monster/spider/Spider.java b/net/minecraft/world/entity/monster/spider/Spider.java
|
|
index 8834ecb96e3a6ec28f8700b23971d00136f26a4d..467ea1fd09b94747a03aaadd28a107d983afeb01 100644
|
|
--- a/net/minecraft/world/entity/monster/spider/Spider.java
|
|
+++ b/net/minecraft/world/entity/monster/spider/Spider.java
|
|
@@ -77,6 +77,13 @@ public class Spider extends Monster {
|
|
}
|
|
// Purpur end - Configurable entity base attributes
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.spiderTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
protected void registerGoals() {
|
|
this.goalSelector.addGoal(1, new FloatGoal(this));
|
|
diff --git a/net/minecraft/world/entity/monster/zombie/Drowned.java b/net/minecraft/world/entity/monster/zombie/Drowned.java
|
|
index 8102352e1b59608b19a68f4e5080180c9a3999b5..3828001bed19114c23e5099c3716837f4d2c2314 100644
|
|
--- a/net/minecraft/world/entity/monster/zombie/Drowned.java
|
|
+++ b/net/minecraft/world/entity/monster/zombie/Drowned.java
|
|
@@ -133,6 +133,13 @@ public class Drowned extends Zombie implements RangedAttackMob {
|
|
}
|
|
// Purpur end - Configurable jockey options
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.drownedTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
protected void addBehaviourGoals() {
|
|
this.goalSelector.addGoal(1, new Drowned.DrownedGoToWaterGoal(this, 1.0));
|
|
diff --git a/net/minecraft/world/entity/monster/zombie/Husk.java b/net/minecraft/world/entity/monster/zombie/Husk.java
|
|
index c3f2d9ab49eb501f26939387624f326227908b81..8d6262e99fb3ad98d3142ee069f07d2370ca0778 100644
|
|
--- a/net/minecraft/world/entity/monster/zombie/Husk.java
|
|
+++ b/net/minecraft/world/entity/monster/zombie/Husk.java
|
|
@@ -83,6 +83,13 @@ public class Husk extends Zombie {
|
|
}
|
|
// Purpur end - Configurable jockey options
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.huskTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
public boolean isSunSensitive() {
|
|
return false;
|
|
diff --git a/net/minecraft/world/entity/monster/zombie/Zombie.java b/net/minecraft/world/entity/monster/zombie/Zombie.java
|
|
index 4b7a00ae57526db73dda9f92a31a95c97b0bc41c..9b34ac54b4b23c826766f2d8b1098487090aac1e 100644
|
|
--- a/net/minecraft/world/entity/monster/zombie/Zombie.java
|
|
+++ b/net/minecraft/world/entity/monster/zombie/Zombie.java
|
|
@@ -151,6 +151,13 @@ public class Zombie extends Monster {
|
|
}
|
|
// Purpur end - Configurable jockey options
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.zombieTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
protected void registerGoals() {
|
|
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
|
|
diff --git a/net/minecraft/world/entity/monster/zombie/ZombieVillager.java b/net/minecraft/world/entity/monster/zombie/ZombieVillager.java
|
|
index 8a5634d2204b9abae560d34a7b0616b3ebdc68ab..ecbac0d55dbe921ac2e185e0acab5691579be512 100644
|
|
--- a/net/minecraft/world/entity/monster/zombie/ZombieVillager.java
|
|
+++ b/net/minecraft/world/entity/monster/zombie/ZombieVillager.java
|
|
@@ -131,6 +131,13 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder {
|
|
}
|
|
// Purpur end - Configurable jockey options
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.zombieVillagerTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
protected void defineSynchedData(final SynchedEntityData.Builder entityData) {
|
|
super.defineSynchedData(entityData);
|
|
diff --git a/net/minecraft/world/entity/monster/zombie/ZombifiedPiglin.java b/net/minecraft/world/entity/monster/zombie/ZombifiedPiglin.java
|
|
index d1edf1f44de1fc6d23bcd8044f8bf4165821790e..6cc4d4729520c60b98d45d5e7dd674e599616505 100644
|
|
--- a/net/minecraft/world/entity/monster/zombie/ZombifiedPiglin.java
|
|
+++ b/net/minecraft/world/entity/monster/zombie/ZombifiedPiglin.java
|
|
@@ -110,6 +110,13 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob {
|
|
}
|
|
// Purpur end - Configurable jockey options
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.zombifiedPiglinTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
protected void addBehaviourGoals() {
|
|
this.goalSelector.addGoal(1, new SpearUseGoal<>(this, 1.0, 1.0, 10.0F, 2.0F));
|
|
diff --git a/net/minecraft/world/entity/npc/villager/Villager.java b/net/minecraft/world/entity/npc/villager/Villager.java
|
|
index 744a7251f0ab9d7cb09ccdc7d1f0bbcd62483da1..fd0b329f56fa78d05be5348b42f3542fff7ebbe4 100644
|
|
--- a/net/minecraft/world/entity/npc/villager/Villager.java
|
|
+++ b/net/minecraft/world/entity/npc/villager/Villager.java
|
|
@@ -284,6 +284,13 @@ public class Villager extends AbstractVillager implements VillagerDataHolder, Re
|
|
}
|
|
// Purpur end - Configurable entity base attributes
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.villagerTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
public Brain<Villager> getBrain() {
|
|
return (Brain<Villager>) super.getBrain();
|
|
diff --git a/net/minecraft/world/entity/npc/wanderingtrader/WanderingTrader.java b/net/minecraft/world/entity/npc/wanderingtrader/WanderingTrader.java
|
|
index 292980e7445d969475332d18b158a0092ad847fe..b6e16bcfff9a74fdd2109d4a442344c07692c3d1 100644
|
|
--- a/net/minecraft/world/entity/npc/wanderingtrader/WanderingTrader.java
|
|
+++ b/net/minecraft/world/entity/npc/wanderingtrader/WanderingTrader.java
|
|
@@ -98,6 +98,13 @@ public class WanderingTrader extends AbstractVillager implements Consumable.Over
|
|
}
|
|
// Purpur end - Villagers follow emerald blocks
|
|
|
|
+ // Purpur start - Toggle for water sensitive mob damage
|
|
+ @Override
|
|
+ public boolean isSensitiveToWater() {
|
|
+ return this.level().purpurConfig.wanderingTraderTakeDamageFromWater;
|
|
+ }
|
|
+ // Purpur end - Toggle for water sensitive mob damage
|
|
+
|
|
@Override
|
|
protected void registerGoals() {
|
|
this.goalSelector.addGoal(0, new FloatGoal(this));
|