]> git.lizzy.rs Git - Crafter.git/blobdiff - mods/player/player_mechanics.lua
Tune eating particles even further
[Crafter.git] / mods / player / player_mechanics.lua
index d486afa1e4781ac6f94692734a1f780dc4d52cb6..21899e1a62afc3dd689d8c61ce0d10554830123c 100644 (file)
@@ -18,6 +18,8 @@ minetest.register_globalstep(function(dtime)
        for _,player in ipairs(minetest.get_connected_players()) do
                local meta = player:get_meta()
                
+               local hunger = meta:get_int("hunger")
+               
                local running = (meta:get_string("player.player_movement_state") == "1")
                local bunny_hopping = (meta:get_string("player.player_movement_state") == "2")
                local sneaking = (meta:get_string("player.player_movement_state") == "3")
@@ -26,23 +28,25 @@ minetest.register_globalstep(function(dtime)
                
                
                --running FOV modifier
-               if running or bunny_hopping then
+               if hunger > 6 and (running or bunny_hopping) then
+                       player:set_fov(1.25, true,0.15)
+                       
                        if bunny_hopping == true then
-                player:set_fov(1.4, true,0.1)
+                --player:set_fov(1.45, true,0.15)
                                player:set_physics_override({speed=1.75})
                        else
-                player:set_fov(1.2, true,0.1)
+                --player:set_fov(1.25, true,0.15)
                                player:set_physics_override({speed=1.5})
                        end
                else
-            player:set_fov(1, true,0.1)
+            player:set_fov(1, true,0.15)
                        player:set_physics_override({speed=1})
                        --meta:set_float("running_timer", 0)
                end
                
                --sneaking
                if sneaking then
-            player:set_fov(0.8, true,0.1)
+            --player:set_fov(0.8, true,0.1)
                        player:set_eye_offset({x=0,y=-1,z=0},{x=0,y=-1,z=0})
                else
                        player:set_eye_offset({x=0,y=0,z=0},{x=0,y=0,z=0})
@@ -69,26 +73,41 @@ minetest.register_globalstep(function(dtime)
                                eating = eating + dtime
                                eating_timer = eating_timer + dtime
                                
+                               local pos = player:get_pos()
+
+                               if sneaking then
+                                       pos.y = pos.y + 1.425
+                               else
+                                       pos.y = pos.y + 1.625
+                               end
+
+                               local dir = vector.multiply(player:get_look_dir(),0.3)
+                               local newpos = vector.add(pos,dir)
+
+                               local vel = player:get_player_velocity()
+
                                local ps = minetest.add_particlespawner({
-                                       amount = 30,
+                                       amount = 6,
                                        time = 0.00001,
-                                       minpos = {x=-0.2, y=-1.5, z=0.5},
-                                       maxpos = {x=0.2, y=1.7, z=0.5},
-                                       minvel = vector.new(-0.5,0,-0.5),
-                                       maxvel = vector.new(0.5,0,0.5),
+                                       minpos = {x=newpos.x-0.2, y=newpos.y+0.2, z=newpos.z-0.2},
+                                       maxpos = {x=newpos.x+0.2, y=newpos.y-0.2, z=newpos.z+0.2},
+                                       minvel = vector.new(vel.x-0.5,0.2,vel.z-0.5),
+                                       maxvel = vector.new(vel.x+0.5,0.6,vel.z+0.5),
                                        minacc = {x=0, y=-9.81, z=1},
                                        maxacc = {x=0, y=-9.81, z=1},
                                        minexptime = 0.5,
                                        maxexptime = 1.5,
-                                       minsize = 0.5,
-                                       maxsize = 1,
-                                       attached = player,
+                                       minsize = 0,
+                                       maxsize = 0,
+                                       --attached = player,
                                        collisiondetection = true,
                                        collision_removal = true,
                                        vertical = false,
-                                       texture = "eat_particles_1.png"
+                                       node = {name= item.."node"},
+                                       --texture = "eat_particles_1.png"
                                })
-                               
+
+
                                if eating_timer + dtime > 0.25 then
                                        minetest.sound_play("eat", {
                                                to_player = player:get_player_name(),