]> git.lizzy.rs Git - dragonfireclient.git/commitdiff
Fix fallnode rotation of wallmounted nodebox/mesh (#10643)
authorWuzzy <wuzzy2@mail.ru>
Tue, 22 Dec 2020 13:54:27 +0000 (14:54 +0100)
committerGitHub <noreply@github.com>
Tue, 22 Dec 2020 13:54:27 +0000 (14:54 +0100)
builtin/game/falling.lua

index f489ea7026cc90e1468bbf7a556088566d026a34..057d0d0ed963236338a18bc1dcbb254d8da4ee60 100644 (file)
@@ -152,8 +152,8 @@ core.register_entity(":__builtin:falling_node", {
                        else
                                self.object:set_yaw(-math.pi*0.25)
                        end
-               elseif (node.param2 ~= 0 and (def.wield_image == ""
-                               or def.wield_image == nil))
+               elseif ((node.param2 ~= 0 or def.drawtype == "nodebox" or def.drawtype == "mesh")
+                               and (def.wield_image == "" or def.wield_image == nil))
                                or def.drawtype == "signlike"
                                or def.drawtype == "mesh"
                                or def.drawtype == "normal"
@@ -168,16 +168,30 @@ core.register_entity(":__builtin:falling_node", {
                        elseif (def.paramtype2 == "wallmounted" or def.paramtype2 == "colorwallmounted") then
                                local rot = node.param2 % 8
                                local pitch, yaw, roll = 0, 0, 0
-                               if rot == 1 then
-                                       pitch, yaw = math.pi, math.pi
-                               elseif rot == 2 then
-                                       pitch, yaw = math.pi/2, math.pi/2
-                               elseif rot == 3 then
-                                       pitch, yaw = math.pi/2, -math.pi/2
-                               elseif rot == 4 then
-                                       pitch, yaw = math.pi/2, math.pi
-                               elseif rot == 5 then
-                                       pitch, yaw = math.pi/2, 0
+                               if def.drawtype == "nodebox" or def.drawtype == "mesh" then
+                                       if rot == 0 then
+                                               pitch, yaw = math.pi/2, 0
+                                       elseif rot == 1 then
+                                               pitch, yaw = -math.pi/2, math.pi
+                                       elseif rot == 2 then
+                                               pitch, yaw = 0, math.pi/2
+                                       elseif rot == 3 then
+                                               pitch, yaw = 0, -math.pi/2
+                                       elseif rot == 4 then
+                                               pitch, yaw = 0, math.pi
+                                       end
+                               else
+                                       if rot == 1 then
+                                               pitch, yaw = math.pi, math.pi
+                                       elseif rot == 2 then
+                                               pitch, yaw = math.pi/2, math.pi/2
+                                       elseif rot == 3 then
+                                               pitch, yaw = math.pi/2, -math.pi/2
+                                       elseif rot == 4 then
+                                               pitch, yaw = math.pi/2, math.pi
+                                       elseif rot == 5 then
+                                               pitch, yaw = math.pi/2, 0
+                                       end
                                end
                                if def.drawtype == "signlike" then
                                        pitch = pitch - math.pi/2
@@ -186,7 +200,7 @@ core.register_entity(":__builtin:falling_node", {
                                        elseif rot == 1 then
                                                yaw = yaw - math.pi/2
                                        end
-                               elseif def.drawtype == "mesh" or def.drawtype == "normal" then
+                               elseif def.drawtype == "mesh" or def.drawtype == "normal" or def.drawtype == "nodebox" then
                                        if rot >= 0 and rot <= 1 then
                                                roll = roll + math.pi
                                        else