Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKae <80987908+Novaenia@users.noreply.github.com>2025-02-01 13:40:48 +1100
committerKae <80987908+Novaenia@users.noreply.github.com>2025-02-01 13:40:48 +1100
commita424c3cfe8580a2d17f47d614897cca87f95a02e (patch)
tree9619149dd52778858435d4a67db27f4f60e60cdc
parent574c62bc32a99891295ecdcf671c7e3145c7aab2 (diff)
add command to disable head rotation per-char
-rw-r--r--assets/opensb/scripts/opensb/player/commands.lua11
-rw-r--r--source/game/StarPlayer.cpp2
-rw-r--r--source/game/StarStatusController.cpp5
3 files changed, 16 insertions, 2 deletions
diff --git a/assets/opensb/scripts/opensb/player/commands.lua b/assets/opensb/scripts/opensb/player/commands.lua
index 9696e0d..2d83106 100644
--- a/assets/opensb/scripts/opensb/player/commands.lua
+++ b/assets/opensb/scripts/opensb/player/commands.lua
@@ -36,4 +36,15 @@ register("run", function(src)
end
end)
+register("headrotation", function(arg)
+ local key = "disableHeadRotation"
+ if status.statusProperty(key) == true then
+ status.setStatusProperty(key, nil)
+ return "Head rotation is now enabled for this character"
+ else
+ status.setStatusProperty(key, true)
+ return "Head rotation is now disabled for this character"
+ end
+end)
+
module.register = register \ No newline at end of file
diff --git a/source/game/StarPlayer.cpp b/source/game/StarPlayer.cpp
index c094bbb..af85cce 100644
--- a/source/game/StarPlayer.cpp
+++ b/source/game/StarPlayer.cpp
@@ -1086,7 +1086,7 @@ void Player::update(float dt, uint64_t) {
}
if (calculateHeadRotation) { // master or not an OpenStarbound player
float headRotation = 0.f;
- if (m_humanoid->primaryHandHoldingItem() || m_humanoid->altHandHoldingItem() || m_humanoid->dance()) {
+ if (Humanoid::globalHeadRotation() && (m_humanoid->primaryHandHoldingItem() || m_humanoid->altHandHoldingItem() || m_humanoid->dance())) {
auto primary = m_tools->primaryHandItem();
auto alt = m_tools->altHandItem();
String const disableFlag = "disableHeadRotation";
diff --git a/source/game/StarStatusController.cpp b/source/game/StarStatusController.cpp
index 26c83d0..d6635b6 100644
--- a/source/game/StarStatusController.cpp
+++ b/source/game/StarStatusController.cpp
@@ -132,7 +132,10 @@ Json StatusController::statusProperty(String const& name, Json const& def) const
}
void StatusController::setStatusProperty(String const& name, Json value) {
- m_statusProperties.set(name, value);
+ if (value.isNull())
+ m_statusProperties.remove(name);
+ else
+ m_statusProperties.set(name, value);
}
StringList StatusController::statNames() const {