3 running - set fov set_fov(fov, is_multiplier) set_breath(value)
4 sneaking --set eye offset
7 minetest.register_on_joinplayer(function(player)
9 player:hud_set_flags({minimap=true})
11 hud_elem_type = "text",
13 text = "Crafter Alpha 0.1",
15 alignment = {x=1,y=1},
19 hud_elem_type = "text",
21 text = "Crafter Alpha 0.1",
23 alignment = {x=1,y=1},
29 minetest.register_on_player_hpchange(function(player, hp_change, reason)
31 minetest.sound_play("hurt", {object=player, gain = 1.0, max_hear_distance = 60,pitch = math.random(80,100)/100})
35 --throw all items on death
36 minetest.register_on_dieplayer(function(player, reason)
37 local pos = player:getpos()
39 local inv = player:get_inventory()
41 for i = 1,inv:get_size("main") do
42 local stack = inv:get_stack("main", i)
43 local name = stack:get_name()
44 local count = stack:get_count()
47 local obj = minetest.add_item(pos, name.." "..count)
48 obj:setvelocity(vector.new(math.random(-3,3),math.random(4,8),math.random(-3,3)))
49 inv:set_stack("main", i, ItemStack(""))
52 for i = 1,inv:get_size("craft") do
59 minetest.register_globalstep(function(dtime)
61 for _,player in ipairs(minetest.get_connected_players()) do
62 local run = player:get_player_control().aux1
63 local walk = player:get_player_control().up
64 local sneak = player:get_player_control().sneak
66 if run and walk and not sneak then
67 --[[ I'll impliment this in later
68 local meta = player:get_meta()
70 local run_time = meta:get_float("running_timer")
76 if run_time >= 0.1 then
78 local breath = player:get_breath()
80 player:set_breath(breath)
85 meta:set_float("running_timer", run_time + dtime)
89 local fov = player:get_fov()
95 player:set_fov(fov + 0.05, true)
98 player:set_physics_override({speed=1.5})
100 local meta = player:get_meta()
101 local fov = player:get_fov()
103 player:set_fov(fov - 0.05, true)
106 player:set_physics_override({speed=1})
107 --meta:set_float("running_timer", 0)
111 player:set_eye_offset({x=0,y=-1,z=0},{x=0,y=-1,z=0})
113 player:set_eye_offset({x=0,y=0,z=0},{x=0,y=0,z=0})
118 minetest.register_globalstep(function(dtime)
120 for _,player in ipairs(minetest.get_connected_players()) do
121 if player:get_player_control().RMB then
122 local health = player:get_wielded_item():get_definition().health
124 local meta = player:get_meta()
125 local eating = meta:get_float("eating")
127 if meta:get_int("eating_ps") == 0 then
128 local ps = minetest.add_particlespawner({
131 minpos = {x=0, y=-1.5, z=0.5},
132 maxpos = {x=0, y=1.7, z=0.5},
133 minvel = vector.new(-0.5,0,-0.5),
134 maxvel = vector.new(0.5,0,0.5),
135 minacc = {x=0, y=-9.81, z=1},
136 maxacc = {x=0, y=-9.81, z=1},
142 collisiondetection = true,
144 texture = "treecapitator.png"
146 meta:set_int("eating_ps", ps)
149 if eating + dtime >= 2 then
150 local stack = player:get_wielded_item()
152 player:set_wielded_item(stack)
153 player:set_hp(player:get_hp() + health)
155 minetest.sound_play("eat", {
157 gain = 1.0, -- default
158 max_hear_distance = 32, -- default, uses an euclidean metric
159 pitch = math.random(70,100)/100,
162 meta:set_float("eating", eating + dtime)
164 local meta = player:get_meta()
165 meta:set_float("eating", 0)
166 minetest.delete_particlespawner(meta:get_int("eating_ps"))
167 meta:set_int("eating_ps", 0)
171 local meta = player:get_meta()
172 meta:set_float("eating", 0)
173 minetest.delete_particlespawner(meta:get_int("eating_ps"))
174 meta:set_int("eating_ps", 0)