From 1b3640b42d14135889457fa14111e9c78fc89cf8 Mon Sep 17 00:00:00 2001 From: ChampionAsh5357 Date: Wed, 12 Oct 2022 15:51:13 -0400 Subject: [PATCH] Fix minecart speed with water (#9076) --- .../world/entity/vehicle/AbstractMinecart.java.patch | 4 ++-- .../minecraftforge/common/extensions/IForgeBaseRailBlock.java | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/patches/minecraft/net/minecraft/world/entity/vehicle/AbstractMinecart.java.patch b/patches/minecraft/net/minecraft/world/entity/vehicle/AbstractMinecart.java.patch index 7171d771bc..efffcdbe11 100644 --- a/patches/minecraft/net/minecraft/world/entity/vehicle/AbstractMinecart.java.patch +++ b/patches/minecraft/net/minecraft/world/entity/vehicle/AbstractMinecart.java.patch @@ -221,8 +221,8 @@ + private float currentSpeedCapOnRail = getMaxCartSpeedOnRail(); + @Override public float getCurrentCartSpeedCapOnRail() { return currentSpeedCapOnRail; } + @Override public void setCurrentCartSpeedCapOnRail(float value) { currentSpeedCapOnRail = Math.min(value, getMaxCartSpeedOnRail()); } -+ private float maxSpeedAirLateral = DEFAULT_MAX_SPEED_AIR_LATERAL; -+ @Override public float getMaxSpeedAirLateral() { return maxSpeedAirLateral; } ++ @org.jetbrains.annotations.Nullable private Float maxSpeedAirLateral = null; ++ @Override public float getMaxSpeedAirLateral() { return maxSpeedAirLateral == null ? (float) this.m_7097_() : maxSpeedAirLateral; } + @Override public void setMaxSpeedAirLateral(float value) { maxSpeedAirLateral = value; } + private float maxSpeedAirVertical = DEFAULT_MAX_SPEED_AIR_VERTICAL; + @Override public float getMaxSpeedAirVertical() { return maxSpeedAirVertical; } diff --git a/src/main/java/net/minecraftforge/common/extensions/IForgeBaseRailBlock.java b/src/main/java/net/minecraftforge/common/extensions/IForgeBaseRailBlock.java index cd7c8372dd..2aeab53b58 100644 --- a/src/main/java/net/minecraftforge/common/extensions/IForgeBaseRailBlock.java +++ b/src/main/java/net/minecraftforge/common/extensions/IForgeBaseRailBlock.java @@ -5,6 +5,7 @@ package net.minecraftforge.common.extensions; +import net.minecraft.world.entity.vehicle.MinecartFurnace; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.entity.vehicle.AbstractMinecart; import net.minecraft.world.level.block.state.properties.RailShape; @@ -60,7 +61,8 @@ public interface IForgeBaseRailBlock */ default float getRailMaxSpeed(BlockState state, Level level, BlockPos pos, AbstractMinecart cart) { - return 0.4f; + if (cart instanceof MinecartFurnace) return cart.isInWater() ? 0.15f : 0.2f; + else return cart.isInWater() ? 0.2f : 0.4f; } /**