mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 08:27:43 +01:00
add copper golem options
This commit is contained in:
@@ -2127,10 +2127,39 @@ index 9ad94aca22a100dddaded5833763f9acd2a0ce56..96c98f032b1b3aec32aba38244ee8b45
|
||||
protected void addAdditionalSaveData(ValueOutput output) {
|
||||
super.addAdditionalSaveData(output);
|
||||
diff --git a/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java b/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java
|
||||
index f9c3a33a7c5efc30a97f1ce74b94f5e6213298fe..82c2ff4ba05921a102d21e8fe547adb82fe9a445 100644
|
||||
index f9c3a33a7c5efc30a97f1ce74b94f5e6213298fe..20d2f081fa2576ea946489d3e717b389092abaef 100644
|
||||
--- a/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java
|
||||
+++ b/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java
|
||||
@@ -199,6 +199,7 @@ public class CopperGolem extends AbstractGolem implements ContainerUser, Shearab
|
||||
@@ -109,6 +109,28 @@ public class CopperGolem extends AbstractGolem implements ContainerUser, Shearab
|
||||
}
|
||||
// Purpur end - Summoner API
|
||||
|
||||
+ // Purpur start - Ridables
|
||||
+ @Override
|
||||
+ public boolean isRidable() {
|
||||
+ return level().purpurConfig.copperGolemRidable;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public boolean dismountsUnderwater() {
|
||||
+ return level().purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level().purpurConfig.copperGolemRidableInWater;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public boolean isControllable() {
|
||||
+ return level().purpurConfig.copperGolemControllable;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ protected void registerGoals() {
|
||||
+ this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this));
|
||||
+ }
|
||||
+ // Purpur end - Ridables
|
||||
+
|
||||
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);
|
||||
}
|
||||
@@ -199,6 +221,7 @@ public class CopperGolem extends AbstractGolem implements ContainerUser, Shearab
|
||||
protected void customServerAiStep(ServerLevel level) {
|
||||
ProfilerFiller profilerFiller = Profiler.get();
|
||||
profilerFiller.push("copperGolemBrain");
|
||||
@@ -2138,6 +2167,24 @@ index f9c3a33a7c5efc30a97f1ce74b94f5e6213298fe..82c2ff4ba05921a102d21e8fe547adb8
|
||||
this.getBrain().tick(level, this);
|
||||
profilerFiller.pop();
|
||||
profilerFiller.push("copperGolemActivityUpdate");
|
||||
@@ -238,7 +261,7 @@ public class CopperGolem extends AbstractGolem implements ContainerUser, Shearab
|
||||
java.util.List<ItemStack> drops = this.generateDefaultDrops(serverLevel, itemInHand);
|
||||
org.bukkit.event.player.PlayerShearEntityEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.handlePlayerShearEntityEvent(player, this, itemInHand, hand, drops);
|
||||
if (event != null) {
|
||||
- if (event.isCancelled()) return InteractionResult.PASS;
|
||||
+ if (event.isCancelled()) return tryRide(player, hand); // Purpur - Ridables
|
||||
drops = org.bukkit.craftbukkit.inventory.CraftItemStack.asNMSCopy(event.getDrops());
|
||||
}
|
||||
this.shear(serverLevel, SoundSource.PLAYERS, itemInHand, drops);
|
||||
@@ -274,6 +297,8 @@ public class CopperGolem extends AbstractGolem implements ContainerUser, Shearab
|
||||
}
|
||||
}
|
||||
|
||||
+ if (level().purpurConfig.villagerRidable && itemInHand.isEmpty()) return tryRide(player, hand); // Purpur - Ridables
|
||||
+
|
||||
return super.mobInteract(player, hand);
|
||||
}
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/animal/frog/Frog.java b/net/minecraft/world/entity/animal/frog/Frog.java
|
||||
index 7d63881ec187f11544947a487fd0445561228247..e451e604b37f078cb94f3204ebb25dbc153d2551 100644
|
||||
--- a/net/minecraft/world/entity/animal/frog/Frog.java
|
||||
|
||||
@@ -595,6 +595,27 @@ index 96c98f032b1b3aec32aba38244ee8b45aca9078c..3a794ff3d68c86b4e5ef93ff8f5cedfa
|
||||
@Override
|
||||
public SoundEvent getAmbientSound() {
|
||||
return SoundEvents.CAMEL_AMBIENT;
|
||||
diff --git a/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java b/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java
|
||||
index 20d2f081fa2576ea946489d3e717b389092abaef..0597de19bcb1dc21cc7d07bb9b69dfb6967bba6f 100644
|
||||
--- a/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java
|
||||
+++ b/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java
|
||||
@@ -131,6 +131,16 @@ public class CopperGolem extends AbstractGolem implements ContainerUser, Shearab
|
||||
}
|
||||
// Purpur end - Ridables
|
||||
|
||||
+ // Purpur start - Configurable entity base attributes
|
||||
+ @Override
|
||||
+ public void initAttributes() {
|
||||
+ this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.copperGolemMaxHealth);
|
||||
+ this.getAttribute(Attributes.STEP_HEIGHT).setBaseValue(this.level().purpurConfig.copperGolemStepHeight);
|
||||
+ this.getAttribute(Attributes.MOVEMENT_SPEED).setBaseValue(this.level().purpurConfig.copperGolemMovementSpeed);
|
||||
+ this.getAttribute(Attributes.SCALE).setBaseValue(this.level().purpurConfig.copperGolemScale);
|
||||
+ }
|
||||
+ // Purpur end - Configurable entity base attributes
|
||||
+
|
||||
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/horse/AbstractHorse.java b/net/minecraft/world/entity/animal/horse/AbstractHorse.java
|
||||
index b528bd7cc2001a3c0ec1cf615a4c306a9cd7e9f1..387f6bb134a766ce7b72cf2d4a56509f51687308 100644
|
||||
--- a/net/minecraft/world/entity/animal/horse/AbstractHorse.java
|
||||
|
||||
@@ -458,6 +458,24 @@ index a6145a24bffc1f56406cb9e57b15631ba82afe6a..4932668448a7346758983b647f4e5080
|
||||
@Override
|
||||
public float getWalkTargetValue(BlockPos pos, LevelReader level) {
|
||||
return 0.0F;
|
||||
diff --git a/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java b/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java
|
||||
index 0597de19bcb1dc21cc7d07bb9b69dfb6967bba6f..19d02efdd82f370d0edc62abdbb7be3a062f8706 100644
|
||||
--- a/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java
|
||||
+++ b/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java
|
||||
@@ -141,6 +141,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/goat/Goat.java b/net/minecraft/world/entity/animal/goat/Goat.java
|
||||
index 0ec325f198d877057a9b497e667d1f3be40e683e..4e93554170d9c91a7d704b161b91ca28b19be73b 100644
|
||||
--- a/net/minecraft/world/entity/animal/goat/Goat.java
|
||||
|
||||
@@ -454,6 +454,24 @@ index 4932668448a7346758983b647f4e508061297ba2..08fb591e860b7b2b93b42bfc7a91d639
|
||||
@Override
|
||||
public float getWalkTargetValue(BlockPos pos, LevelReader level) {
|
||||
return 0.0F;
|
||||
diff --git a/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java b/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java
|
||||
index 19d02efdd82f370d0edc62abdbb7be3a062f8706..eb1074a39d7d1ec8ecf7f2345e5402ef092cf9b1 100644
|
||||
--- a/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java
|
||||
+++ b/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java
|
||||
@@ -148,6 +148,13 @@ public class CopperGolem extends AbstractGolem implements ContainerUser, Shearab
|
||||
}
|
||||
// Purpur end - Toggle for water sensitive mob damage
|
||||
|
||||
+ // Purpur start - Mobs always drop experience
|
||||
+ @Override
|
||||
+ protected boolean isAlwaysExperienceDropper() {
|
||||
+ return this.level().purpurConfig.copperGolemAlwaysDropExp;
|
||||
+ }
|
||||
+ // Purpur end - Mobs always drop experience
|
||||
+
|
||||
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/goat/Goat.java b/net/minecraft/world/entity/animal/goat/Goat.java
|
||||
index 4e93554170d9c91a7d704b161b91ca28b19be73b..99980c9a69b51f81a9cd4429d59fab9497d79656 100644
|
||||
--- a/net/minecraft/world/entity/animal/goat/Goat.java
|
||||
|
||||
@@ -1459,6 +1459,29 @@ public class PurpurWorldConfig {
|
||||
codAlwaysDropExp = getBoolean("mobs.cod.always-drop-exp", codAlwaysDropExp);
|
||||
}
|
||||
|
||||
public boolean copperGolemRidable = false;
|
||||
public boolean copperGolemRidableInWater = true;
|
||||
public boolean copperGolemControllable = true;
|
||||
public boolean copperGolemCanSwim = false;
|
||||
public double copperGolemMaxHealth = 12.0D;
|
||||
public double copperGolemStepHeight = 1.0D;
|
||||
public double copperGolemMovementSpeed = 0.2D;
|
||||
public double copperGolemScale = 1.0D;
|
||||
public boolean copperGolemTakeDamageFromWater = false;
|
||||
public boolean copperGolemAlwaysDropExp = false;
|
||||
private void copperGolemSettings() {
|
||||
copperGolemRidable = getBoolean("mobs.copper_golem.ridable", copperGolemRidable);
|
||||
copperGolemRidableInWater = getBoolean("mobs.copper_golem.ridable-in-water", copperGolemRidableInWater);
|
||||
copperGolemControllable = getBoolean("mobs.copper_golem.controllable", copperGolemControllable);
|
||||
copperGolemCanSwim = getBoolean("mobs.copper_golem.can-swim", copperGolemCanSwim);
|
||||
copperGolemMaxHealth = getDouble("mobs.copper_golem.attributes.max_health", copperGolemMaxHealth);
|
||||
copperGolemStepHeight = getDouble("mobs.copper_golem.attributes.step_height", copperGolemStepHeight);
|
||||
copperGolemMovementSpeed = getDouble("mobs.copper_golem.attributes.movement_speed", copperGolemMovementSpeed);
|
||||
copperGolemScale = Mth.clamp(getDouble("mobs.copper_golem.attributes.scale", copperGolemScale), 0.0625D, 16.0D);
|
||||
copperGolemTakeDamageFromWater = getBoolean("mobs.copper_golem.takes-damage-from-water", copperGolemTakeDamageFromWater);
|
||||
copperGolemAlwaysDropExp = getBoolean("mobs.copper_golem.always-drop-exp", copperGolemAlwaysDropExp);
|
||||
}
|
||||
|
||||
public boolean cowRidable = false;
|
||||
public boolean cowRidableInWater = true;
|
||||
public boolean cowControllable = true;
|
||||
|
||||
Reference in New Issue
Block a user