mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 16:37:43 +01:00
Add attribute clamping and armor limit config (#1172)
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Owen1212055 <23108066+Owen1212055@users.noreply.github.com>
|
||||
Date: Thu, 27 Oct 2022 23:12:45 -0400
|
||||
Subject: [PATCH] Add attribute clamping and armor limit config
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/damagesource/CombatRules.java b/src/main/java/net/minecraft/world/damagesource/CombatRules.java
|
||||
index ccbfcef3e83b1bef364447657bfd08a92d615cf6..aa2331c6df4e79d4bb0add071a0b11d2a3a08b88 100644
|
||||
--- a/src/main/java/net/minecraft/world/damagesource/CombatRules.java
|
||||
+++ b/src/main/java/net/minecraft/world/damagesource/CombatRules.java
|
||||
@@ -11,12 +11,12 @@ public class CombatRules {
|
||||
|
||||
public static float getDamageAfterAbsorb(float damage, float armor, float armorToughness) {
|
||||
float f = 2.0F + armorToughness / 4.0F;
|
||||
- float g = Mth.clamp(armor - damage / f, armor * 0.2F, 20.0F);
|
||||
+ float g = Mth.clamp(armor - damage / f, armor * 0.2F, org.purpurmc.purpur.PurpurConfig.limitArmor ? 20F : Float.MAX_VALUE); // Purpur
|
||||
return damage * (1.0F - g / 25.0F);
|
||||
}
|
||||
|
||||
public static float getDamageAfterMagicAbsorb(float damageDealt, float protection) {
|
||||
- float f = Mth.clamp(protection, 0.0F, 20.0F);
|
||||
+ float f = Mth.clamp(protection, 0.0F, org.purpurmc.purpur.PurpurConfig.limitArmor ? 20F : Float.MAX_VALUE); // Purpur
|
||||
return damageDealt * (1.0F - f / 25.0F);
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/ai/attributes/RangedAttribute.java b/src/main/java/net/minecraft/world/entity/ai/attributes/RangedAttribute.java
|
||||
index f0703302e7dbbda88de8c648d20d87c55ed9b1e0..a913ebabaa5f443afa987b972355a8f8d1723c78 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/ai/attributes/RangedAttribute.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/ai/attributes/RangedAttribute.java
|
||||
@@ -29,6 +29,7 @@ public class RangedAttribute extends Attribute {
|
||||
|
||||
@Override
|
||||
public double sanitizeValue(double value) {
|
||||
+ if (!org.purpurmc.purpur.PurpurConfig.clampAttributes) return Double.isNaN(value) ? this.minValue : value; // Purpur
|
||||
return Double.isNaN(value) ? this.minValue : Mth.clamp(value, this.minValue, this.maxValue);
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
||||
index 76cbfb7e900bf2698776f54cfe498f4b42965221..80770fdd6ed27cdabc79296875f03ac3b8018b39 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
||||
@@ -577,6 +577,16 @@ public class PurpurConfig {
|
||||
fixProjectileLootingTransfer = getBoolean("settings.fix-projectile-looting-transfer", fixProjectileLootingTransfer);
|
||||
}
|
||||
|
||||
+ public static boolean clampAttributes = true;
|
||||
+ private static void clampAttributes() {
|
||||
+ clampAttributes = getBoolean("settings.clamp-attributes", clampAttributes);
|
||||
+ }
|
||||
+
|
||||
+ public static boolean limitArmor = true;
|
||||
+ private static void limitArmor() {
|
||||
+ limitArmor = getBoolean("settings.limit-armor", limitArmor);
|
||||
+ }
|
||||
+
|
||||
private static void blastResistanceSettings() {
|
||||
getMap("settings.blast-resistance-overrides", Collections.emptyMap()).forEach((blockId, value) -> {
|
||||
Block block = BuiltInRegistries.BLOCK.get(new ResourceLocation(blockId));
|
||||
Reference in New Issue
Block a user