---[[
---map
-running - set fov set_fov(fov, is_multiplier) set_breath(value)
-sneaking --set eye offset
-
-]]--
crafter_version = 0.03
minetest.register_on_joinplayer(function(player)
- --add in info
- player:hud_set_flags({minimap=true})
- player:hud_add({
- hud_elem_type = "text",
- position = {x=0,y=0},
- text = "Crafter Alpha "..crafter_version,
- number = 000000,
- alignment = {x=1,y=1},
- offset = {x=2, y=2},
- })
+ --add in version info
player:hud_add({
- hud_elem_type = "text",
- position = {x=0,y=0},
- text = "Crafter Alpha "..crafter_version,
- number = 0xffffff,
- alignment = {x=1,y=1},
- offset = {x=0, y=0},
+ hud_elem_type = "image",
+ position = {x=1,y=0},
+ scale = {x=0.75,y=0.75},
+ text = "version.png",
+ --number = 000000,
+ --alignment = {x=-1,y=0},
+ offset = {x=-180, y=19},
})
end)
local count = stack:get_count()
if name ~= "" then
local obj = minetest.add_item(pos, name.." "..count)
- obj:setvelocity(vector.new(math.random(-3,3),math.random(4,8),math.random(-3,3)))
+ if obj then
+ obj:setvelocity(vector.new(math.random(-3,3),math.random(4,8),math.random(-3,3)))
+ end
+ inv:set_stack("main", i, ItemStack(""))
+ else
inv:set_stack("main", i, ItemStack(""))
end
end
- for i = 1,inv:get_size("craft") do
-
- end
+ --for i = 1,inv:get_size("craft") do
-
+ --end
end)
minetest.register_globalstep(function(dtime)
--collection
for _,player in ipairs(minetest.get_connected_players()) do
- local run = player:get_player_control().aux1
- local walk = player:get_player_control().up
- local sneak = player:get_player_control().sneak
-
- if run and walk and not sneak then
- --[[ I'll impliment this in later
- local meta = player:get_meta()
-
- local run_time = meta:get_float("running_timer")
-
- if not run_time then
- run_time = 0
- end
-
- if run_time >= 0.1 then
- --take breath away
- local breath = player:get_breath()
- breath = breath - 1
- player:set_breath(breath)
- run_time = 0
- print(breath)
- end
+ local meta = player:get_meta()
+ if meta:get_int("roll credits") ~= 1 then
+ local run = player:get_player_control().aux1
+ local walk = player:get_player_control().up
+ local sneak = player:get_player_control().sneak
- meta:set_float("running_timer", run_time + dtime)
-
- ]]--
-
- local fov = player:get_fov()
- if fov == 0 then
- fov = 1
- end
-
- if fov < 1.2 then
- player:set_fov(fov + dtime, true)
- elseif fov > 1.2 then
- player:set_fov(1.2, true)
+ if run and walk and not sneak then
+ --[[ I'll impliment this in later
+ local meta = player:get_meta()
+
+ local run_time = meta:get_float("running_timer")
+
+ if not run_time then
+ run_time = 0
+ end
+
+ if run_time >= 0.1 then
+ --take breath away
+ local breath = player:get_breath()
+ breath = breath - 1
+ player:set_breath(breath)
+ run_time = 0
+ print(breath)
+ end
+
+ meta:set_float("running_timer", run_time + dtime)
+
+ ]]--
+
+ local fov = player:get_fov()
+ if fov == 0 then
+ fov = 1
+ end
+
+ if fov < 1.2 then
+ player:set_fov(fov + dtime, true)
+ elseif fov > 1.2 then
+ player:set_fov(1.2, true)
+ end
+
+ player:set_physics_override({speed=1.5})
+ else
+ local meta = player:get_meta()
+ local fov = player:get_fov()
+ if fov > 1 then
+ player:set_fov(fov - dtime, true)
+ elseif fov < 1 then
+ player:set_fov(1, true)
+ end
+
+ player:set_physics_override({speed=1})
+ --meta:set_float("running_timer", 0)
end
- player:set_physics_override({speed=1.5})
- else
- local meta = player:get_meta()
- local fov = player:get_fov()
- if fov > 1 then
- player:set_fov(fov - dtime, true)
- elseif fov < 1 then
- player:set_fov(1, true)
+ if sneak then
+ 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})
end
-
- player:set_physics_override({speed=1})
- --meta:set_float("running_timer", 0)
- end
-
- if sneak then
- 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})
end
end
end)
end
end)
-
-local inv = "size[9,8.75]"..
- "background[-0.19,-0.25;9.41,9.49;main_inventory.png]"..
- "list[current_player;main;0,4.5;9,1;]".. --hot bar
- "list[current_player;main;0,6;9,3;9]".. --big part
- "list[current_player;craft;2.5,1;2,2;]"..
- "list[current_player;craftpreview;6.1,1.5;1,1;]"..
- "listring[current_player;main]"..
- "listring[current_player;craft]"
-
-
-
-minetest.register_on_joinplayer(function(player)
- player:set_inventory_formspec(inv)
- local inv = player:get_inventory()
- inv:set_width("craft", 2)
- inv:set_width("main", 9)
- inv:set_size("main", 9*4)
- inv:set_size("craft", 4)
- player:hud_set_hotbar_itemcount(9)
- player:hud_set_hotbar_image("inventory_hotbar.png")
- player:hud_set_hotbar_selected_image("hotbar_selected.png")
-end)
-
--this dumps the players crafting table on closing the inventory
-local dump_craft = function(player)
+dump_craft = function(player)
local inv = player:get_inventory()
local pos = player:getpos()
pos.y = pos.y + player:get_properties().eye_height
local obj = minetest.add_item(pos, item)
if obj then
local x=math.random(-2,2)*math.random()
- local y=math.random(2,5)
- local z=math.random(-2,2)*math.random()
- obj:setvelocity({x=x, y=y, z=z})
+ local y=math.random(2,5)
+ local z=math.random(-2,2)*math.random()
+ obj:setvelocity({x=x, y=y, z=z})
end
inv:set_stack("craft", i, nil)
end
end
---this resets the craft table
-minetest.register_on_player_receive_fields(function(player, formname, fields)
- local inv = player:get_inventory()
- dump_craft(player)
- inv:set_width("craft", 2)
- inv:set_size("craft", 4)
-end)
-
--replace stack when empty (building)
minetest.register_on_placenode(function(pos, newnode, placer, oldnode, itemstack, pointed_thing)
local old = itemstack:get_name()
--pass through to check
minetest.after(0,function(pos, newnode, placer, oldnode, itemstack, pointed_thing,old)
+ if not placer then
+ return
+ end
local new = placer:get_wielded_item():get_name()
if old ~= new and new == "" then
local inv = placer:get_inventory()
end,pos, newnode, placer, oldnode, itemstack, pointed_thing,old)
end)
+minetest.register_on_punchplayer(function(player, hitter, time_from_last_punch, tool_capabilities, dir, damage)
+ dir = vector.multiply(dir,10)
+ dir.y = 7
+ player:add_player_velocity(dir)
+
+end)
+
--play sound to keep up with player's placing vs inconsistent client placing sound
minetest.register_on_placenode(function(pos, newnode, placer, oldnode, itemstack, pointed_thing)
local node = minetest.registered_nodes[newnode.name]
})
end
end)
+
+
+--this is to check if the player is exploring a cave
+--if exploring cave not near an open shaft then play a scary noise
+--every 5-7 minutes
+local scary_sound_player_timer = 0
+minetest.register_globalstep(function(dtime)
+ scary_sound_player_timer = scary_sound_player_timer + dtime
+ --print(scary_sound_player_timer)
+ --try to play every 5 minutes
+ if scary_sound_player_timer > 300 then
+ scary_sound_player_timer = math.random(-120,0)
+ for _,player in ipairs(minetest.get_connected_players()) do
+ local pos = player:get_pos()
+ pos.y = pos.y + 1.625
+ local light = minetest.get_node_light(pos)
+ if pos.y < 0 and light <= 13 then
+ --print(light)
+ minetest.sound_play("scary_noise",{to_player = player:get_player_name(),gain=0.7,pitch=math.random(70,100)/100})
+ end
+ end
+ end
+end)