Breedable Polar Bears

This commit is contained in:
William Blake Galbreath
2025-01-05 13:40:05 -08:00
committed by granny
parent fe5fcdab1b
commit ad2831aaba
5 changed files with 74 additions and 96 deletions

View File

@@ -1414,10 +1414,10 @@ index d203d9c63c13f40a913235ad78a24a3bf489a083..70c60499a440aa4ac8bbc14d5fa440d9
this.goalSelector.addGoal(3, new BreedGoal(this, 1.0));
this.goalSelector.addGoal(4, new TemptGoal(this, 1.2, itemStack -> itemStack.is(Items.CARROT_ON_A_STICK), false));
diff --git a/net/minecraft/world/entity/animal/PolarBear.java b/net/minecraft/world/entity/animal/PolarBear.java
index f568c385e1427e183aefb5819013838aca95407b..c0356a2e1e4a5dbefb5f1546869f449e00b76b99 100644
index fbd35f074a3045d483aabd9bc7e1c9c4f10a3167..711ed0d753494a92a003fc683146f289505ed7f6 100644
--- a/net/minecraft/world/entity/animal/PolarBear.java
+++ b/net/minecraft/world/entity/animal/PolarBear.java
@@ -59,11 +59,40 @@ public class PolarBear extends Animal implements NeutralMob {
@@ -59,6 +59,7 @@ public class PolarBear extends Animal implements NeutralMob {
private int remainingPersistentAngerTime;
@Nullable
private UUID persistentAngerTarget;
@@ -1425,7 +1425,9 @@ index f568c385e1427e183aefb5819013838aca95407b..c0356a2e1e4a5dbefb5f1546869f449e
public PolarBear(EntityType<? extends PolarBear> entityType, Level level) {
super(entityType, level);
@@ -87,6 +88,34 @@ public class PolarBear extends Animal implements NeutralMob {
}
// Purpur end - Breedable Polar Bears
+ // Purpur start - Ridables
+ @Override
@@ -1458,14 +1460,15 @@ index f568c385e1427e183aefb5819013838aca95407b..c0356a2e1e4a5dbefb5f1546869f449e
@Nullable
@Override
public AgeableMob getBreedOffspring(ServerLevel level, AgeableMob otherParent) {
@@ -79,12 +108,14 @@ public class PolarBear extends Animal implements NeutralMob {
@@ -102,6 +131,7 @@ public class PolarBear extends Animal implements NeutralMob {
protected void registerGoals() {
super.registerGoals();
this.goalSelector.addGoal(0, new FloatGoal(this));
+ this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
this.goalSelector.addGoal(1, new PolarBear.PolarBearMeleeAttackGoal());
this.goalSelector.addGoal(1, new PanicGoal(this, 2.0, mob -> mob.isBaby() ? DamageTypeTags.PANIC_CAUSES : DamageTypeTags.PANIC_ENVIRONMENTAL_CAUSES));
this.goalSelector.addGoal(4, new FollowParentGoal(this, 1.25));
// Purpur start - Breedable Polar Bears
@@ -114,6 +144,7 @@ public class PolarBear extends Animal implements NeutralMob {
this.goalSelector.addGoal(5, new RandomStrollGoal(this, 1.0));
this.goalSelector.addGoal(6, new LookAtPlayerGoal(this, Player.class, 6.0F));
this.goalSelector.addGoal(7, new RandomLookAroundGoal(this));
@@ -1473,7 +1476,7 @@ index f568c385e1427e183aefb5819013838aca95407b..c0356a2e1e4a5dbefb5f1546869f449e
this.targetSelector.addGoal(1, new PolarBear.PolarBearHurtByTargetGoal());
this.targetSelector.addGoal(2, new PolarBear.PolarBearAttackPlayersGoal());
this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, Player.class, 10, true, false, this::isAngryAt));
@@ -203,6 +234,12 @@ public class PolarBear extends Animal implements NeutralMob {
@@ -232,6 +263,12 @@ public class PolarBear extends Animal implements NeutralMob {
if (!this.level().isClientSide) {
this.updatePersistentAnger((ServerLevel)this.level(), true);
}
@@ -1486,7 +1489,7 @@ index f568c385e1427e183aefb5819013838aca95407b..c0356a2e1e4a5dbefb5f1546869f449e
}
@Override
@@ -222,6 +259,7 @@ public class PolarBear extends Animal implements NeutralMob {
@@ -251,6 +288,7 @@ public class PolarBear extends Animal implements NeutralMob {
public void setStanding(boolean standing) {
this.entityData.set(DATA_STANDING_ID, standing);