This commit is contained in:
BillyGalbreath
2021-06-17 15:30:00 -05:00
parent 02377a8ecd
commit 321c252f05
20 changed files with 2166 additions and 193 deletions

View File

@@ -5,36 +5,14 @@ Subject: [PATCH] Breedable Polar Bears
diff --git a/src/main/java/net/minecraft/world/entity/animal/PolarBear.java b/src/main/java/net/minecraft/world/entity/animal/PolarBear.java
index 0694cd0b994ee595adca43c988485e6dc13c7244..583bb80059b9351d27d15859b1687dd817ba165e 100644
index dc6bc8f10d147cb1d0e5c69b6f6df63b0e8d4531..652e8a43af5830a9bc5a6bdd00ebec5a6e07dc3c 100644
--- a/src/main/java/net/minecraft/world/entity/animal/PolarBear.java
+++ b/src/main/java/net/minecraft/world/entity/animal/PolarBear.java
@@ -32,6 +32,7 @@ import net.minecraft.world.entity.Pose;
import net.minecraft.world.entity.SpawnGroupData;
import net.minecraft.world.entity.ai.attributes.AttributeSupplier;
import net.minecraft.world.entity.ai.attributes.Attributes;
+import net.minecraft.world.entity.ai.goal.BreedGoal;
import net.minecraft.world.entity.ai.goal.FloatGoal;
import net.minecraft.world.entity.ai.goal.FollowParentGoal;
import net.minecraft.world.entity.ai.goal.LookAtPlayerGoal;
@@ -39,11 +40,13 @@ import net.minecraft.world.entity.ai.goal.MeleeAttackGoal;
import net.minecraft.world.entity.ai.goal.PanicGoal;
import net.minecraft.world.entity.ai.goal.RandomLookAroundGoal;
import net.minecraft.world.entity.ai.goal.RandomStrollGoal;
+import net.minecraft.world.entity.ai.goal.TemptGoal;
import net.minecraft.world.entity.ai.goal.target.HurtByTargetGoal;
import net.minecraft.world.entity.ai.goal.target.NearestAttackableTargetGoal;
import net.minecraft.world.entity.ai.goal.target.ResetUniversalAngerTargetGoal;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
+import net.minecraft.world.item.crafting.Ingredient;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.LevelAccessor;
import net.minecraft.world.level.ServerLevelAccessor;
@@ -66,6 +69,30 @@ public class PolarBear extends Animal implements NeutralMob {
super(type, world);
@@ -88,6 +88,28 @@ public class PolarBear extends Animal implements NeutralMob {
}
return false;
}
+ // Purpur start
+
+ @Override
+ public boolean canMate(Animal other) {
+ if (other == this) {
@@ -56,35 +34,33 @@ index 0694cd0b994ee595adca43c988485e6dc13c7244..583bb80059b9351d27d15859b1687dd8
+ return this.isInLove() && bear.isInLove();
+ }
+ }
+ // Purpur end
+
// Purpur end
@Override
public AgeableMob getBreedOffspring(ServerLevel world, AgeableMob entity) {
return EntityType.POLAR_BEAR.create(world);
@@ -73,7 +100,7 @@ public class PolarBear extends Animal implements NeutralMob {
@@ -97,7 +119,7 @@ public class PolarBear extends Animal implements NeutralMob {
@Override
public boolean isFood(ItemStack stack) {
- return false;
+ return level.purpurConfig.polarBearBreedableItem != null && stack.getItem() == level.purpurConfig.polarBearBreedableItem; // Purpur;
+ return level.purpurConfig.polarBearBreedableItem != null && stack.getItem() == level.purpurConfig.polarBearBreedableItem; // Purpur
}
@Override
@@ -82,6 +109,12 @@ public class PolarBear extends Animal implements NeutralMob {
this.goalSelector.addGoal(0, new FloatGoal(this));
@@ -107,6 +129,12 @@ public class PolarBear extends Animal implements NeutralMob {
this.goalSelector.addGoal(0, new net.pl3x.purpur.entity.ai.HasRider(this)); // Purpur
this.goalSelector.addGoal(1, new PolarBear.PolarBearMeleeAttackGoal());
this.goalSelector.addGoal(1, new PolarBear.PolarBearPanicGoal());
+ // Purpur start
+ if (level.purpurConfig.polarBearBreedableItem != null) {
+ this.goalSelector.addGoal(2, new BreedGoal(this, 1.0D));
+ this.goalSelector.addGoal(3, new TemptGoal(this, 1.0D, Ingredient.of(level.purpurConfig.polarBearBreedableItem), false));
+ this.goalSelector.addGoal(2, new net.minecraft.world.entity.ai.goal.BreedGoal(this, 1.0D));
+ this.goalSelector.addGoal(3, new net.minecraft.world.entity.ai.goal.TemptGoal(this, 1.0D, net.minecraft.world.item.crafting.Ingredient.of(level.purpurConfig.polarBearBreedableItem), false));
+ }
+ // Purpur end
this.goalSelector.addGoal(4, new FollowParentGoal(this, 1.25D));
this.goalSelector.addGoal(5, new RandomStrollGoal(this, 1.0D));
this.goalSelector.addGoal(6, new LookAtPlayerGoal(this, Player.class, 6.0F));
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index ce147273c7debd993af91df176cfe639ae95dfdc..32b37da32b6cb2bb0a76a1759eacd28b8e32ece1 100644
index b949480d139ce6eb923c3efe788ac7a547f90c96..3981e492b61d552735433fae05e13d1fe87637db 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -446,9 +446,14 @@ public class PurpurWorldConfig {