From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Callum Seabrook Date: Fri, 14 May 2021 21:22:57 +0100 Subject: [PATCH] Configurable powered rail boost modifier diff --git a/src/main/java/net/minecraft/world/entity/vehicle/NewMinecartBehavior.java b/src/main/java/net/minecraft/world/entity/vehicle/NewMinecartBehavior.java index a8718ee94cd6b9a20bd1e9a49d58d39e6f3f2a7a..4b2c3e30a440ab8d035a48fdd612b61a29143836 100644 --- a/src/main/java/net/minecraft/world/entity/vehicle/NewMinecartBehavior.java +++ b/src/main/java/net/minecraft/world/entity/vehicle/NewMinecartBehavior.java @@ -426,7 +426,7 @@ public class NewMinecartBehavior extends MinecartBehavior { private Vec3 calculateBoostTrackSpeed(Vec3 velocity, BlockPos railPos, BlockState railState) { if (railState.is(Blocks.POWERED_RAIL) && (Boolean) railState.getValue(PoweredRailBlock.POWERED)) { if (velocity.length() > 0.01D) { - return velocity.normalize().scale(velocity.length() + 0.06D); + return velocity.normalize().scale(velocity.length() + this.level().purpurConfig.poweredRailBoostModifier); // Purpur } else { Vec3 vec3d1 = this.minecart.getRedstoneDirection(railPos); diff --git a/src/main/java/net/minecraft/world/entity/vehicle/OldMinecartBehavior.java b/src/main/java/net/minecraft/world/entity/vehicle/OldMinecartBehavior.java index 23cbafcc12f6e5f5755215a72879a6cab306ad18..ca6883d0f0c2cc8f843c59476dbcf46a62cbd550 100644 --- a/src/main/java/net/minecraft/world/entity/vehicle/OldMinecartBehavior.java +++ b/src/main/java/net/minecraft/world/entity/vehicle/OldMinecartBehavior.java @@ -310,9 +310,9 @@ public class OldMinecartBehavior extends MinecartBehavior { vec3d5 = this.getDeltaMovement(); d17 = vec3d5.horizontalDistance(); if (d17 > 0.01D) { - double d19 = 0.06D; + double d19 = world.purpurConfig.poweredRailBoostModifier; // Purpur - this.setDeltaMovement(vec3d5.add(vec3d5.x / d17 * 0.06D, 0.0D, vec3d5.z / d17 * 0.06D)); + this.setDeltaMovement(vec3d5.add(vec3d5.x / d17 * world.purpurConfig.poweredRailBoostModifier, 0.0D, vec3d5.z / d17 * world.purpurConfig.poweredRailBoostModifier)); // Purpur } else { Vec3 vec3d6 = this.getDeltaMovement(); double d20 = vec3d6.x; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java index 9049750b5213eecf5086db9032403e1fa21bf3bd..d109f26e7b0c248f51f16fa940c2d770bf79fd20 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -268,6 +268,7 @@ public class PurpurWorldConfig { public boolean minecartControllableFallDamage = true; public double minecartControllableBaseSpeed = 0.1D; public Map minecartControllableBlockSpeeds = new HashMap<>(); + public double poweredRailBoostModifier = 0.06; private void minecartSettings() { if (PurpurConfig.version < 12) { boolean oldBool = getBoolean("gameplay-mechanics.controllable-minecarts.place-anywhere", minecartPlaceAnywhere); @@ -320,6 +321,7 @@ public class PurpurWorldConfig { set("gameplay-mechanics.minecart.controllable.block-speed.grass_block", 0.3D); set("gameplay-mechanics.minecart.controllable.block-speed.stone", 0.5D); } + poweredRailBoostModifier = getDouble("gameplay-mechanics.minecart.powered-rail.boost-modifier", poweredRailBoostModifier); } public boolean catSpawning;