local modname = minetest.get_current_modname() local modpath = minetest.get_modpath(modname) ws_basic = {} ws_basic.onlineplayers = {} ws_basic.fire_start = function() local neigh = {{x=pos.x+1,y=pos.y,z=pos.z},{x=pos.x-1,y=pos.y,z=pos.z},{x=pos.x,y=pos.y,z=pos.z+1},{x=pos.x,y=pos.y,z=pos.z-1}, {x=pos.x+1,y=pos.y,z=pos.z+1},{x=pos.x-1,y=pos.y,z=pos.z-1},{x=pos.x+1,y=pos.y,z=pos.z-1},{x=pos.x-1,y=pos.y,z=pos.z+1}} for k,v in ipairs(neigh)do end end ws_basic.rand = function(x) math.randomseed(os.time()) x= math.random(x); x= math.random(x); x= math.random(x); x= math.random(x); return x end minetest.register_on_punchnode(function(pos,node,puncher, pointed_thing) if(node.name == "ws_core:dirt_dry" or node.name == "ws_core:gravel")then if(puncher:get_wielded_item():get_name() == "ws_basic:sift_hand")then local metan = minetest.get_meta(pos) metan:set_int("sift_step",metan:get_int("sift_step") + 1) --minetest.chat_send_all(metan:get_int("sift_step")) minetest.add_particlespawner({ amount = 8, time = 1, minpos = {x=pos.x-0.5, y=pos.y, z=pos.z-0.5}, maxpos = {x=pos.x+0.5, y=pos.y+0.5, z=pos.z+0.5}, minvel = {x=0, y=0.2, z=0}, maxvel = {x=0, y=0.4, z=0}, maxacc = {x=0.1, y=0.2, z=0.1}, minacc = {x=0, y=0, z=0}, minexptime = 1, maxexptime = 1, minsize = 1, maxsize = 1, collisiondetection = false, collision_removal = false, attached = ObjectRef, vertical = false, texture = "hole_small.png", glow = 0 }) if(node.name == "ws_core:dirt_dry" and metan:get_int("sift_step") >= 16)then minetest.remove_node(pos) math.randomseed(os.time()) math.random(); math.random(); math.random() if(math.random(10) >= 9)then minetest.add_item(pos,{name="ws_basic:seeds_u", count = 1}) else end metan:set_int("sift_step", 0) -- puncher:set_wielded_item({name = "ws_core:stick", count = 1}) elseif(node.name == "ws_core:gravel" and metan:get_int("sift_step") >= 16)then minetest.remove_node(pos) math.randomseed(os.time()) math.random(); math.random(); math.random() if(math.random(10) >= 3) then minetest.add_item(pos,{name="ws_core:flint", count = 1}) else end metan:set_int("sift_step", 0) puncher:set_wielded_item({name = "ws_core:stick", count = 2}) end end elseif(node.name == "ws_core:dead_tree" or node.name == "ws_core:wood")then if(puncher:get_wielded_item():get_name() == "ws_core:knife_flint")then local metan = minetest.get_meta(pos) metan:set_int("chop_step",metan:get_int("chop_step") + 1) --minetest.chat_send_all(metan:get_int("chop_step")) minetest.add_particlespawner({ amount = 8, time = 1, minpos = {x=pos.x-0.5, y=pos.y, z=pos.z-0.5}, maxpos = {x=pos.x+0.5, y=pos.y+0.5, z=pos.z+0.5}, minvel = {x=0, y=0.2, z=0}, maxvel = {x=0, y=0.4, z=0}, maxacc = {x=0.1, y=0.2, z=0.1}, minacc = {x=0, y=0, z=0}, minexptime = 1, maxexptime = 1, minsize = 1, maxsize = 1, collisiondetection = false, collision_removal = false, attached = ObjectRef, vertical = false, texture = "hole_small.png", playername = "singleplayer", glow = 0 }) if(metan:get_int("chop_step") >= 16)then minetest.remove_node(pos) if(node.name == "ws_core:dead_tree")then minetest.add_item(pos,{name="ws_core:wood", count = 1}) puncher:get_wielded_item():add_wear(40) elseif(node.name == "ws_core:wood") then minetest.add_item(pos,{name="ws_core:stick", count = 4}) puncher:get_wielded_item():add_wear(40) end end end end end) --[[ws_basic.hatpick_sapling = function() math.random(); math.random(); math.random() local num = math.random(135) local s = "" if(num >=1 and num <=8 )then s = "food_expansion:sapling_almond" elseif(num >=9 and num <=21 )then s = "food_expansion:sapling_dragonfruit" elseif(num >=22 and num <=30 )then s = "food_expansion:sapling_peach" elseif(num >=31 and num <= 35) then s = "food_expansion:sapling_pear" elseif(num >=36 and num <=40 )then s = "food_expansion:sapling_pomegranate" elseif(num >=41 and num <=50 )then s = "food_expansion:sapling_persimmon" elseif(num >=51 and num <=59 )then s = "food_expansion:sapling_date" elseif(num >=60 and num <= 65) then s = "food_expansion:sapling_fig" elseif(num >=66 and num <=78 )then s = "food_expansion:sapling_orange" elseif(num >=79 and num <=89 )then s = "food_expansion:sapling_breadfruit" elseif(num >=90 and num <=100 )then s = "food_expansion:sapling_cashew" elseif(num >=101 and num <= 135) then s = "food_expansion:sapling_banana" end return s end]] --ITEMS --[[minetest.register_craft( {output = 'ws_core:flint_knife', recipe = { {'default:cobble', 'default:cobble', 'default:cobble'}, {'', 'default:stick', ''}, {'', 'default:stick', ''}, -- Also groups; e.g. 'group:crumbly' },})]] --NODES minetest.register_node("ws_basic:seedling",{ description = "Seedling", drawtype = "nodebox", paramtype = "light", node_box = { type = "fixed", fixed = { {-0.5, -0.5, -0.5, 0.5, -0.48750, 0.5}, -- NodeBox2 } }, tiles = {"seeds.png"}, groups = {oddly_breakable_by_hand = 1}, on_construct = function(pos) minetest.after(4, function()minetest.remove_node(pos);minetest.set_node(pos,{name = "food_expansion:sapling_orange"})end) end, groups = {oddly_breakable_by_hand = 1} }) minetest.register_node("ws_basic:rod_wood", { description = "Wooden Rod", tiles = { "ws_barrel.png", "ws_barrel.png", "ws_barrel.png", "ws_barrel.png", "ws_barrel.png", "ws_barrel.png" }, drawtype = "nodebox", paramtype = "light", node_box = { type = "fixed", fixed = { {-0.0625, -0.5, -0.0625, 0.0625, 0.5, 0.0625}, -- NodeBox4 } }, groups = {oddly_breakable_by_hand = 1} }) minetest.register_node("ws_basic:rack", { description = "Drying Rack", tiles = { "ws_barrel.png", "ws_barrel.png", "ws_barrel.png", "ws_barrel.png", "ws_barrel.png", "ws_barrel.png" }, drawtype = "nodebox", paramtype = "light", paramtype2 = "facedir", node_box = { type = "fixed", fixed = { {-0.0625, -0.5, -0.0625, 0.0625, 0.4375, 0.0625}, -- NodeBox4 {0.4375, 0.4375, -0.5, 0.5, 0.5, 0.5}, -- NodeBox5 {-0.5, 0.4375, -0.5, -0.4375, 0.5, 0.5}, -- NodeBox6 {-0.4375, 0.4375, -0.0625, 0.4375, 0.5, 0.0625}, -- NodeBox7 } }, groups = {oddly_breakable_by_hand = 1} }) minetest.register_node("ws_basic:rack_extension", { description = "Drying Rack Rods", tiles = { "ws_barrel.png", "ws_barrel.png", "ws_barrel.png", "ws_barrel.png", "ws_barrel.png", "ws_barrel.png" }, drawtype = "nodebox", paramtype = "light", paramtype2 = "facedir", node_box = { type = "fixed", fixed = { {-0.5, 0.4375, -0.5, -0.4375, 0.5, 0.5}, -- NodeBox8 {0.4375, 0.4375, -0.5, 0.5, 0.5, 0.5}, -- NodeBox9 } }, groups = {oddly_breakable_by_hand = 1}, on_construct = function(pos) end }) minetest.register_node("ws_basic:flesh_raw", { drawtype = "signlike", tiles = {"flesh_raw.png"}, -- Required: store the rotation in param2 paramtype2 = "wallmounted", selection_box = { type = "wallmounted", }, on_construct = function(pos) minetest.after(6, function()minetest.set_node(pos, {name = "ws_basic:flesh_dried", param2 = 3})end) end, on_rightclick = function(pos) minetest.remove_node(pos) end }) minetest.register_node("ws_basic:flesh_dried", { drawtype = "signlike", tiles = {"flesh_dry.png"}, -- Required: store the rotation in param2 paramtype2 = "wallmounted", selection_box = { type = "wallmounted", }, on_rightclick = function(pos) minetest.remove_node(pos) end }) minetest.register_node("ws_basic:flame",{ description = "Flame", drawtype = "firelike", light_source = 10, tiles ={ {name="anim_test.png", animation={ type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 3.0, }, { type = "sheet_2d", frames_w = 5, frames_h = 3, frame_length = 0.5, }}, walkable = true, pointable = false, diggable = false, on_construct = function(pos) end }}) minetest.register_node("ws_basic:trap_fish_basebox", { description = "Fish Trap Pot", tiles = { "ws_barrel.png", "ws_barrel.png", "ws_barrel.png", "ws_barrel.png", "ws_barrel.png", "ws_barrel.png" }, drawtype = "nodebox", paramtype2 = "facedir", paramtype = "light", node_box = { type = "fixed", fixed = { {-0.5, -0.5, 0.375, -0.375, 0.375, 0.5}, -- NodeBox13 {0.375, -0.5, 0.375, 0.5, 0.375, 0.5}, -- NodeBox14 {-0.5, -0.5, -0.5, -0.375, 0.375, -0.375}, -- NodeBox15 {0.375, -0.5, -0.5, 0.5, 0.375, -0.375}, -- NodeBox16 {-0.375, -0.5, -0.4375, 0.375, 0.125, -0.375}, -- NodeBox17 {-0.375, -0.5, 0.375, 0.375, 0.125, 0.4375}, -- NodeBox18 {0.375, -0.5, -0.375, 0.4375, 0.125, 0.375}, -- NodeBox19 {-0.4375, -0.5, -0.375, -0.375, 0.125, 0.375}, -- NodeBox20 {0.375, 0.375, -0.4375, 0.4375, 0.4375, -0.375}, -- NodeBox22 {-0.4375, 0.375, -0.4375, -0.375, 0.4375, -0.375}, -- NodeBox23 {-0.4375, 0.375, 0.375, -0.375, 0.4375, 0.4375}, -- NodeBox24 {0.375, 0.375, 0.375, 0.4375, 0.4375, 0.4375}, -- NodeBox25 {0.3125, 0.4375, -0.375, 0.375, 0.5, 0.375}, -- NodeBox26 {-0.375, 0.4375, -0.375, -0.3125, 0.5, 0.375}, -- NodeBox27 {0.1875, 0.4375, -0.375, 0.25, 0.5, 0.375}, -- NodeBox28 {-0.25, 0.4375, -0.375, -0.1875, 0.5, 0.375}, -- NodeBox29 {0.0625, 0.4375, -0.375, 0.125, 0.5, 0.375}, -- NodeBox30 {-0.125, 0.4375, -0.375, -0.0625, 0.5, 0.375}, -- NodeBox31 {-0.0625, 0.4375, 0, 0.0625, 0.5, 0.0625}, -- NodeBox32 {0.125, 0.4375, 0, 0.1875, 0.5, 0.0625}, -- NodeBox33 {0.25, 0.4375, 0, 0.3125, 0.5, 0.0625}, -- NodeBox34 {-0.3125, 0.4375, 0, -0.25, 0.5, 0.0625}, -- NodeBox35 {-0.1875, 0.4375, 0, -0.125, 0.5, 0.0625}, -- NodeBox36 } }, groups = {oddly_breakable_by_hand = 2}, on_construct = function(pos) minetest.set_node({x=pos.x,y=pos.y+2,z=pos.z},{name = "ws_basic:trap_fish_grate"}) end }) minetest.register_node("ws_basic:trap_fish_grate", { description = "Fish Trap Grate", tiles = { "ws_barrel.png", "ws_barrel.png", "ws_barrel.png", "ws_barrel.png", "ws_barrel.png", "ws_barrel.png" }, drawtype = "nodebox", paramtype = "light", paramtype2 = "facedir", node_box = { type = "fixed", fixed = { {0.4375, -1.5, 0.4375, 0.5, -0.5, 0.5}, -- NodeBox41 {-0.5, -1.5, 0.4375, -0.4375, -0.5, 0.5}, -- NodeBox42 {0.3125, -1.5, 0.4375, 0.375, -0.625, 0.5}, -- NodeBox43 {-0.375, -1.5, 0.4375, -0.3125, -0.625, 0.5}, -- NodeBox44 {0.1875, -1.5, 0.4375, 0.25, -0.75, 0.5}, -- NodeBox45 {-0.25, -1.5, 0.4375, -0.1875, -0.75, 0.5}, -- NodeBox46 {0.0625, -1.5, 0.4375, 0.125, -0.875, 0.5}, -- NodeBox47 {-0.125, -1.5, 0.4375, -0.0625, -0.875, 0.5}, -- NodeBox48 } }, groups = {oddly_breakable_by_hand = 2} }) minetest.register_node("ws_basic:dirt_sifted",{ description = "NUUL", tiles = {"gui_formbg.png"}, drawtype = "nodebox", leveled = 8, groups = {oddly_breakable_by_hand = 1}, on_punch = function(pos) end }) --PARTICLESPAWNERS --[[ws_basic.microdig = { amount = 8, time = 2, -- ^ If time is 0 has infinite lifespan and spawns the amount on a -- ^ per-second basis. minpos = {x=pos.x, y=pos.y, z=pos.z}, maxpos = {x=pos.x, y=pos.y+1, z=pos.z}, minvel = {x=0, y=0.2, z=0}, maxvel = {x=0, y=0.4, z=0}, minacc = {x=0.1, y=0.2, z=0.1}, maxacc = {x=0, y=0, z=0}, minexptime = 1, maxexptime = 1, minsize = 1, maxsize = 1, collisiondetection = false, collision_removal = false, attached = ObjectRef, vertical = false, texture = "hole_small.png", playername = "singleplayer", glow = 0 }]] --CRAFTITEM minetest.register_craftitem("ws_basic:sift_hand",{ description = "Wooden Hand Sifter", wield_image = "tool_sifter_wood.png", inventory_image = "tool_sifter_wood.png", wear = 40 }) minetest.register_craftitem("ws_basic:seeds_u",{ description = "Unidentified Seeds", wield_image = "seeds.png", inventory_image = "seeds.png", on_use = function(itemstack,user,pointed_thing) minetest.place_node((pointed_thing.above),{name = "ws_basic:seedling"}) itemstack:take_item() return itemstack end }) minetest.register_craftitem("ws_basic:dry_strands",{ description = "Dry Strands", wield_image = "dry_strands.png", inventory_image = "dry_strands.png", }) --RECIPES minetest.register_craft( { output = 'ws_basic:rod_wood', recipe = { {"", 'ws_core:stick',""}, {'', 'ws_core:stick', ''}, {'', 'ws_core:stick', ''}, }, }) minetest.register_craft( { type = "shapeless", output = 'ws_basic:dry_strands', recipe = {"ws_core:stick" } }) minetest.register_craft( { output = 'ws_basic:rack', recipe = { {"", '',""}, {'ws_basic:rod_wood', 'ws_core:stick', 'ws_basic:rod_wood'}, {'', 'ws_basic:rod_wood', ''}, }, }) minetest.register_craft( { output = 'buildings:mat_woven', recipe = { {"", '',""}, {'ws_basic:dry_strands', 'ws_basic:dry_strands', 'ws_basic:dry_strands'}, {'ws_basic:dry_strands', 'ws_basic:dry_strands', 'ws_basic:dry_strands'}, }, }) minetest.register_craft( { output = 'ws_basic:rod_wood', recipe = { {"", 'ws_core:stick',""}, {'', 'ws_core:stick', ''}, {'', 'ws_core:stick', ''}, }, }) minetest.register_craft( { output = 'ws_basic:sift_hand', recipe = { {"", '',""}, {'ws_core:stick', 'ws_basic:dry_strands', 'ws_core:stick'}, {'', 'ws_core_stick', ''}, }, }) minetest.register_craft( { output = 'food_expansion:dirt_culinary_compressed', recipe = { {"", '',""}, {'', 'ws_core:dirt', ''}, {'', '', ''}, } })