summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPersson-dev <66266021+Persson-dev@users.noreply.github.com>2021-12-19 20:58:55 +0100
committerGitHub <noreply@github.com>2021-12-19 20:58:55 +0100
commit640fbbbd927d096c704cdf8512d7bdfc5f5782b4 (patch)
tree4441637bc75c1d80f42583b2059ba918e5dc263d /src
parentApply tigerw's suggestion. (diff)
downloadcuberite-640fbbbd927d096c704cdf8512d7bdfc5f5782b4.tar
cuberite-640fbbbd927d096c704cdf8512d7bdfc5f5782b4.tar.gz
cuberite-640fbbbd927d096c704cdf8512d7bdfc5f5782b4.tar.bz2
cuberite-640fbbbd927d096c704cdf8512d7bdfc5f5782b4.tar.lz
cuberite-640fbbbd927d096c704cdf8512d7bdfc5f5782b4.tar.xz
cuberite-640fbbbd927d096c704cdf8512d7bdfc5f5782b4.tar.zst
cuberite-640fbbbd927d096c704cdf8512d7bdfc5f5782b4.zip
Diffstat (limited to '')
-rw-r--r--src/Entities/ArrowEntity.cpp4
-rw-r--r--src/Entities/ArrowEntity.h2
2 files changed, 6 insertions, 0 deletions
diff --git a/src/Entities/ArrowEntity.cpp b/src/Entities/ArrowEntity.cpp
index c7c088361..c21f2a7f3 100644
--- a/src/Entities/ArrowEntity.cpp
+++ b/src/Entities/ArrowEntity.cpp
@@ -194,6 +194,10 @@ void cArrowEntity::Tick(std::chrono::milliseconds a_Dt, cChunk & a_Chunk)
m_IsInGround = false; // Yes, begin simulating physics again
}
}
+ else if (IsInWater()) // Arrow in water?
+ {
+ ApplyFriction(m_Speed, ARROW_WATER_FRICTION, static_cast<float>(a_Dt.count())); // Yes, slow down arrow
+ }
}
diff --git a/src/Entities/ArrowEntity.h b/src/Entities/ArrowEntity.h
index 2ddc43617..793e09401 100644
--- a/src/Entities/ArrowEntity.h
+++ b/src/Entities/ArrowEntity.h
@@ -39,6 +39,8 @@ public:
// tolua_end
+ static constexpr float ARROW_WATER_FRICTION = 50.0f; ///< Value used to calculate arrow speed in water
+
CLASS_PROTODEF(cArrowEntity)
/** Creates a new arrow with psNoPickup state and default damage modifier coeff */