123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722 |
- local chest_formspec =
- "size[8,9]" ..
- default.gui_bg ..
- default.gui_bg_img ..
- default.gui_slots ..
- "list[current_name;main;0,0.3;8,4;]" ..
- "list[current_player;main;0,4.85;8,1;]" ..
- "list[current_player;main;0,6.08;8,3;8]" ..
- "listring[current_name;main]" ..
- "listring[current_player;main]" ..
- default.get_hotbar_bg(0,4.85)
- minetest.register_node("ufowreck:locked_crate", {
- description = "Locked Crate",
- tiles = {"scifi_nodes_crate.png"},
- paramtype2 = "facedir",
- groups = {cracky = 1, oddly_breakable_by_hand = 2, fuel = 8},
- legacy_facedir_simple = true,
- is_ground_content = false,
- sounds = default.node_sound_metal_defaults(),
- drop = {
- max_items = 3,
- items = {
- {items = {'ufowreck:pad'}, rarity = 10},
- {items = {'ufowreck:glow_plant'},rarity = 5},
- {items = {'ufowreck:eye'},rarity = 5},
- {items = {'ufowreck:predatory_plant'},rarity = 5},
- {items = {'default:mese'},rarity = 5},
- {items = {'default:mese'},rarity = 5},
- {items = {'ufowreck:powered_stand'},rarity = 5},
- {items = {'ufowreck:ladder 9'},rarity = 5},
- {items = {'ufowreck:crate'}},
- }
- },
- })
- minetest.register_node("ufowreck:crate", {
- description = "Crate",
- tiles = {"scifi_nodes_crate.png"},
- paramtype2 = "facedir",
- groups = {cracky = 1, oddly_breakable_by_hand = 2},
- legacy_facedir_simple = true,
- is_ground_content = false,
- sounds = default.node_sound_metal_defaults(),
- on_construct = function(pos)
- local meta = minetest.get_meta(pos)
- meta:set_string("formspec", chest_formspec)
- meta:set_string("infotext", "Crate")
- local inv = meta:get_inventory()
- inv:set_size("main", 8 * 4)
- end,
- on_metadata_inventory_move = function(pos, from_list, from_index,
- to_list, to_index, count, player)
- minetest.log("action", player:get_player_name() ..
- " moves stuff in chest at " .. minetest.pos_to_string(pos))
- end,
- on_metadata_inventory_put = function(pos, listname, index, stack, player)
- minetest.log("action", player:get_player_name() ..
- " moves stuff to chest at " .. minetest.pos_to_string(pos))
- end,
- on_metadata_inventory_take = function(pos, listname, index, stack, player)
- minetest.log("action", player:get_player_name() ..
- " takes stuff from chest at " .. minetest.pos_to_string(pos))
- end,
- })
- minetest.register_node("ufowreck:alien_metal", {
- description = "Alien Metal Block",
- tiles = {"scifi_nodes_lighttop.png"},
- drawtype = "nodebox",
- paramtype2 = "facedir",
- paramtype = "light",
- sunlight_propagates = true,
- is_ground_content = false,
- groups = {cracky = 1},
- sounds = default.node_sound_metal_defaults(),
- })
- minetest.register_craft({
- output = "default:steel_ingot 9",
- type = "shapeless",
- recipe = {"ufowreck:alien_metal"}
- })
- minetest.register_node("ufowreck:alien_light", {
- description = "Alien Lightbox",
- sunlight_propagates = false,
- tiles = {
- "scifi_nodes_lighttop.png",
- "scifi_nodes_lighttop.png",
- "scifi_nodes_greenlight.png",
- "scifi_nodes_greenlight.png",
- "scifi_nodes_greenlight.png",
- "scifi_nodes_greenlight.png"
- },
- light_source = 10,
- paramtype = "light",
- groups = {cracky=1},
- sounds = default.node_sound_glass_defaults()
- })
- minetest.register_craft({
- output = "ufowreck:alien_light",
- type = "shapeless",
- recipe = {"ufowreck:alien_metal", "default:tin_ingot","default:mese_crystal_fragment"}
- })
- minetest.register_node("ufowreck:alien_glass", {
- description = "Alien Glass",
- drawtype = "glasslike",
- sunlight_propagates = true,
- tiles = {
- "scifi_nodes_glass.png"
- },
- use_texture_alpha = true,
- paramtype = "light",
- groups = {cracky=1},
- sounds = default.node_sound_glass_defaults()
- })
- minetest.register_craft({
- output = "ufowreck:alien_glass 2",
- type = "shapeless",
- recipe = {"ufowreck:alien_metal", "default:obsidian_glass"}
- })
- minetest.register_node("ufowreck:alien_control", {
- description = "Alien Control Block",
- sunlight_propagates = false,
- tiles = {{
- name="scifi_nodes_black_lights.png",
- animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=3.50}, --length=0.50
- }},
- paramtype = "light",
- groups = {cracky=1},
- sounds = default.node_sound_metal_defaults(),
- })
- --door
- minetest.register_node("ufowreck:alien_door_closed", {
- description = "Alien Door",
- inventory_image = "scifi_nodes_door_black_inv.png",
- wield_image = "scifi_nodes_door_black_inv.png",
- tiles = {
- "scifi_nodes_door_black_edge.png",
- "scifi_nodes_door_black_edge.png",
- "scifi_nodes_door_black_edge.png",
- "scifi_nodes_door_black_edge.png",
- "scifi_nodes_door_black_rbottom.png",
- "scifi_nodes_door_black_bottom.png"
- },
- drawtype = "nodebox",
- paramtype = "light",
- paramtype2 = "facedir",
- groups = {cracky = 1, oddly_breakable_by_hand = 1},
- node_box = {
- type = "fixed",
- fixed = {
- {-0.5, -0.5, -0.0625, 0.5, 0.5, 0.0625}
- }
- },
- selection_box = {
- type = "fixed",
- fixed = {
- {-0.5, -0.5, -0.0625, 0.5, 1.5, 0.0625}
- }
- },
- on_place = function(itemstack, placer, pointed_thing)
- -- Is there room enough ?
- local pos1 = pointed_thing.above
- local pos2 = {x=pos1.x, y=pos1.y, z=pos1.z}
- pos2.y = pos2.y+1 -- 2 nodes above
- if
- not minetest.registered_nodes[minetest.get_node(pos1).name].buildable_to or
- not minetest.registered_nodes[minetest.get_node(pos2).name].buildable_to or
- not placer or
- not placer:is_player() or
- minetest.is_protected(pos1, placer:get_player_name()) or
- minetest.is_protected(pos2, placer:get_player_name()) then
- return
- end
- local pt = pointed_thing.above
- local pt2 = {x=pt.x, y=pt.y, z=pt.z}
- pt2.y = pt2.y+1
- -- Player look dir is converted to node rotation ?
- local p2 = minetest.dir_to_facedir(placer:get_look_dir())
- -- Where to look for another door ?
- local pt3 = {x=pt.x, y=pt.y, z=pt.z}
- -- Door param2 depends of placer's look dir
- local p4 = 0
- if p2 == 0 then
- pt3.x = pt3.x-1
- p4 = 2
- elseif p2 == 1 then
- pt3.z = pt3.z+1
- p4 = 3
- elseif p2 == 2 then
- pt3.x = pt3.x+1
- p4 = 0
- elseif p2 == 3 then
- pt3.z = pt3.z-1
- p4 = 1
- end
- -- First door of a pair is already there
- if minetest.get_node(pt3).name == "ufowreck:alien_door_closed" then
- minetest.set_node(pt, {name="ufowreck:alien_door_closed", param2=p4,})
- minetest.set_node(pt2, {name="ufowreck:alien_door_closed_top", param2=p4})
- -- Placed door is the first of a pair
- else
- minetest.set_node(pt, {name="ufowreck:alien_door_closed", param2=p2,})
- minetest.set_node(pt2, {name="ufowreck:alien_door_closed_top", param2=p2})
- end
- itemstack:take_item(1)
- return itemstack;
- end,
- after_destruct = function(pos, oldnode)
- minetest.set_node({x=pos.x,y=pos.y+1,z=pos.z},{name="air"})
- end,
- on_rightclick = function(pos, node, player, itemstack, pointed_thing)
- -- play sound
- minetest.sound_play("scifi_nodes_door_mechanic",{
- max_hear_distance = 16,
- pos = pos,
- gain = 1.0
- })
- local timer = minetest.get_node_timer(pos)
- local a = minetest.get_node({x=pos.x, y=pos.y, z=pos.z-1})
- local b = minetest.get_node({x=pos.x, y=pos.y, z=pos.z+1})
- local c = minetest.get_node({x=pos.x+1, y=pos.y, z=pos.z})
- local d = minetest.get_node({x=pos.x-1, y=pos.y, z=pos.z})
- local e = minetest.get_node({x=pos.x+1, y=pos.y, z=pos.z-1})
- local f = minetest.get_node({x=pos.x-1, y=pos.y, z=pos.z-1})
- local g = minetest.get_node({x=pos.x+1, y=pos.y, z=pos.z+1})
- local h = minetest.get_node({x=pos.x-1, y=pos.y, z=pos.z+1})
- minetest.set_node(pos, {name="ufowreck:alien_door_opened", param2=node.param2})
- minetest.set_node({x=pos.x,y=pos.y+1,z=pos.z}, {name="ufowreck:alien_door_opened_top", param2=node.param2})
- if a.name == "ufowreck:alien_door_closed" then
- minetest.set_node({x=pos.x, y=pos.y, z=pos.z-1}, {name="ufowreck:alien_door_opened", param2=a.param2})
- minetest.set_node({x=pos.x,y=pos.y+1,z=pos.z-1}, {name="ufowreck:alien_door_opened_top", param2=a.param2})
- end
- if b.name == "ufowreck:alien_door_closed" then
- minetest.set_node({x=pos.x, y=pos.y, z=pos.z+1}, {name="ufowreck:alien_door_opened", param2=b.param2})
- minetest.set_node({x=pos.x,y=pos.y+1,z=pos.z+1}, {name="ufowreck:alien_door_opened_top", param2=b.param2})
- end
- if c.name == "ufowreck:alien_door_closed" then
- minetest.set_node({x=pos.x+1, y=pos.y, z=pos.z}, {name="ufowreck:alien_door_opened", param2=c.param2})
- minetest.set_node({x=pos.x+1,y=pos.y+1,z=pos.z}, {name="ufowreck:alien_door_opened_top", param2=c.param2})
- end
- if d.name == "ufowreck:alien_door_closed" then
- minetest.set_node({x=pos.x-1, y=pos.y, z=pos.z}, {name="ufowreck:alien_door_opened", param2=d.param2})
- minetest.set_node({x=pos.x-1,y=pos.y+1,z=pos.z}, {name="ufowreck:alien_door_opened_top", param2=d.param2})
- end
- if e.name == "ufowreck:alien_door_closed" then
- minetest.set_node({x=pos.x+1, y=pos.y, z=pos.z-1}, {name="ufowreck:alien_door_opened", param2=e.param2})
- minetest.set_node({x=pos.x+1, y=pos.y+1, z=pos.z-1}, {name="ufowreck:alien_door_opened_top", param2=e.param2})
- end
- if f.name == "ufowreck:alien_door_closed" then
- minetest.set_node({x=pos.x-1, y=pos.y, z=pos.z-1}, {name="ufowreck:alien_door_opened", param2=f.param2})
- minetest.set_node({x=pos.x-1, y=pos.y+1, z=pos.z-1}, {name="ufowreck:alien_door_opened_top", param2=f.param2})
- end
- if g.name == "ufowreck:alien_door_closed" then
- minetest.set_node({x=pos.x+1, y=pos.y, z=pos.z+1}, {name="ufowreck:alien_door_opened", param2=g.param2})
- minetest.set_node({x=pos.x+1, y=pos.y+1, z=pos.z+1}, {name="ufowreck:alien_door_opened_top", param2=g.param2})
- end
- if h.name == "ufowreck:alien_door_closed" then
- minetest.set_node({x=pos.x-1, y=pos.y, z=pos.z+1}, {name="ufowreck:alien_door_opened", param2=h.param2})
- minetest.set_node({x=pos.x-1, y=pos.y+1, z=pos.z+1}, {name="ufowreck:alien_door_opened_top", param2=h.param2})
- end
- timer:start(5)
- end,
- })
- minetest.register_node("ufowreck:alien_door_closed_top", {
- tiles = {
- "scifi_nodes_door_black_edge.png",
- "scifi_nodes_door_black_edge.png",
- "scifi_nodes_door_black_edge.png",
- "scifi_nodes_door_black_edge.png",
- "scifi_nodes_door_black_rtop.png",
- "scifi_nodes_door_black_top.png"
- },
- drawtype = "nodebox",
- paramtype = "light",
- paramtype2 = "facedir",
- groups = {cracky = 1},
- node_box = {
- type = "fixed",
- fixed = {
- {-0.5, -0.5, -0.0625, 0.5, 0.5, 0.0625}
- }
- },
- selection_box = {
- type = "fixed",
- fixed = {
- {0, 0, 0, 0, 0, 0},
- }
- },
- can_dig = function(pos, player)
- return false
- end,
- })
- minetest.register_node("ufowreck:alien_door_opened", {
- tiles = {
- "scifi_nodes_door_black_edge.png",
- "scifi_nodes_door_black_edge.png",
- "scifi_nodes_door_black_edge.png",
- "scifi_nodes_door_black_edge.png",
- "scifi_nodes_door_black_rbottom0.png",
- "scifi_nodes_door_black_bottom0.png"
- },
- drawtype = "nodebox",
- paramtype = "light",
- paramtype2 = "facedir",
- drop = {
- items = {
- {items = {'ufowreck:alien_door_closed'}},
- }
- },
- groups = {cracky = 1},
- node_box = {
- type = "fixed",
- fixed = {
- {-0.5, -0.5, -0.0625, -0.25, 0.5, 0.0625},
- }
- },
- selection_box = {
- type = "fixed",
- fixed = {
- {-0.5, -0.5, -0.0625, -0.25, 1.5, 0.0625},
- }
- },
- after_place_node = function(pos, placer, itemstack, pointed_thing)
- local node = minetest.get_node(pos)
- minetest.set_node({x=pos.x,y=pos.y+1,z=pos.z},{name="ufowreck:alien_door_opened_top",param2=node.param2})
- end,
- after_destruct = function(pos, oldnode)
- minetest.set_node({x=pos.x,y=pos.y+1,z=pos.z},{name="air"})
- end,
- on_timer = function(pos, elapsed)
- -- play sound
- minetest.sound_play("scifi_nodes_door_mechanic",{
- max_hear_distance = 16,
- pos = pos,
- gain = 1.0
- })
- local node = minetest.get_node(pos)
- local a = minetest.get_node({x=pos.x, y=pos.y, z=pos.z-1})
- local b = minetest.get_node({x=pos.x, y=pos.y, z=pos.z+1})
- local c = minetest.get_node({x=pos.x+1, y=pos.y, z=pos.z})
- local d = minetest.get_node({x=pos.x-1, y=pos.y, z=pos.z})
- local e = minetest.get_node({x=pos.x+1, y=pos.y, z=pos.z-1})
- local f = minetest.get_node({x=pos.x-1, y=pos.y, z=pos.z-1})
- local g = minetest.get_node({x=pos.x+1, y=pos.y, z=pos.z+1})
- local h = minetest.get_node({x=pos.x-1, y=pos.y, z=pos.z+1})
- minetest.set_node(pos, {name="ufowreck:alien_door_closed", param2=node.param2})
- minetest.set_node({x=pos.x,y=pos.y+1,z=pos.z}, {name="ufowreck:alien_door_closed_top", param2=node.param2})
- if a.name == "ufowreck:alien_door_opened" then
- minetest.set_node({x=pos.x, y=pos.y, z=pos.z-1}, {name="ufowreck:alien_door_closed", param2=a.param2})
- minetest.set_node({x=pos.x,y=pos.y+1,z=pos.z-1}, {name="ufowreck:alien_door_closed_top", param2=a.param2})
- end
- if b.name == "ufowreck:alien_door_opened" then
- minetest.set_node({x=pos.x, y=pos.y, z=pos.z+1}, {name="ufowreck:alien_door_closed", param2=b.param2})
- minetest.set_node({x=pos.x,y=pos.y+1,z=pos.z+1}, {name="ufowreck:alien_door_closed_top", param2=b.param2})
- end
- if c.name == "ufowreck:alien_door_opened" then
- minetest.set_node({x=pos.x+1, y=pos.y, z=pos.z}, {name="ufowreck:alien_door_closed", param2=c.param2})
- minetest.set_node({x=pos.x+1,y=pos.y+1,z=pos.z}, {name="ufowreck:alien_door_closed_top", param2=c.param2})
- end
- if d.name == "ufowreck:alien_door_opened" then
- minetest.set_node({x=pos.x-1, y=pos.y, z=pos.z}, {name="ufowreck:alien_door_closed", param2=d.param2})
- minetest.set_node({x=pos.x-1,y=pos.y+1,z=pos.z}, {name="ufowreck:alien_door_closed_top", param2=d.param2})
- end
- if e.name == "ufowreck:alien_door_opened" then
- minetest.set_node({x=pos.x+1, y=pos.y, z=pos.z-1}, {name="ufowreck:alien_door_closed", param2=e.param2})
- minetest.set_node({x=pos.x+1, y=pos.y+1, z=pos.z-1}, {name="ufowreck:alien_door_closed_top", param2=e.param2})
- end
- if f.name == "ufowreck:alien_door_opened" then
- minetest.set_node({x=pos.x-1, y=pos.y, z=pos.z-1}, {name="ufowreck:alien_door_closed", param2=f.param2})
- minetest.set_node({x=pos.x-1, y=pos.y+1, z=pos.z-1}, {name="ufowreck:alien_door_closed_top", param2=f.param2})
- end
- if g.name == "ufowreck:alien_door_opened" then
- minetest.set_node({x=pos.x+1, y=pos.y, z=pos.z+1}, {name="ufowreck:alien_door_closed", param2=g.param2})
- minetest.set_node({x=pos.x+1, y=pos.y+1, z=pos.z+1}, {name="ufowreck:alien_door_closed_top", param2=g.param2})
- end
- if h.name == "ufowreck:alien_door_opened" then
- minetest.set_node({x=pos.x-1, y=pos.y, z=pos.z+1}, {name="ufowreck:alien_door_closed", param2=h.param2})
- minetest.set_node({x=pos.x-1, y=pos.y+1, z=pos.z+1}, {name="ufowreck:alien_door_closed_top", param2=h.param2})
- end
- end,
- can_dig = function(pos, player)
- return false
- end,
- })
- minetest.register_node("ufowreck:alien_door_opened_top", {
- tiles = {
- "scifi_nodes_door_black_edge.png",
- "scifi_nodes_door_black_edge.png",
- "scifi_nodes_door_black_edge.png",
- "scifi_nodes_door_black_edge.png",
- "scifi_nodes_door_black_rtopo.png",
- "scifi_nodes_door_black_topo.png"
- },
- drawtype = "nodebox",
- paramtype = "light",
- paramtype2 = "facedir",
- groups = {cracky = 1},
- node_box = {
- type = "fixed",
- fixed = {
- {-0.5, -0.5, -0.0625, -0.25, 0.5, 0.0625},
- }
- },
- selection_box = {
- type = "fixed",
- fixed = {
- {0, 0, 0, 0, 0, 0},
- }
- },
- can_dig = function(pos, player)
- return false
- end,
- })
- minetest.register_node("ufowreck:bar_light", {
- description = "Alien Lightbars",
- tiles = {
- "scifi_nodes_orange2.png",
- },
- drawtype = "nodebox",
- paramtype = "light",
- use_texture_alpha = true,
- light_source = 9,
- node_box = {
- type = "fixed",
- fixed = {
- {0.125, -0.5, 0.125, 0.375, 0.5, 0.375}, -- NodeBox1
- {-0.375, -0.5, 0.125, -0.125, 0.5, 0.375}, -- NodeBox2
- {-0.375, -0.5, -0.375, -0.125, 0.5, -0.125}, -- NodeBox3
- {0.125, -0.5, -0.375, 0.375, 0.5, -0.125}, -- NodeBox4
- }
- },
- groups = {cracky=1},
- sounds = default.node_sound_glass_defaults()
- })
- minetest.register_node("ufowreck:alien_egg", {
- description = "Alien Egg",
- tiles = {
- "scifi_nodes_egg_top.png",
- "scifi_nodes_egg_top.png",
- "scifi_nodes_egg_side.png",
- "scifi_nodes_egg_side.png",
- "scifi_nodes_egg_side.png",
- "scifi_nodes_egg_side.png"
- },
- sunlight_propagates = false,
- drawtype = "nodebox",
- paramtype = "light",
- groups = {cracky=1, oddly_breakable_by_hand=1, dig_immediate=2, falling_node=1},
- light_source = 5,
- node_box = {
- type = "fixed",
- fixed = {
- {-0.25, -0.5, -0.25, 0.25, -0.4375, 0.25}, -- NodeBox1
- {-0.375, -0.4375, -0.375, 0.375, -0.3125, 0.375}, -- NodeBox2
- {-0.4375, -0.3125, -0.375, 0.4375, 0.3125, 0.375}, -- NodeBox3
- {-0.375, 0.3125, -0.375, 0.375, 0.4375, 0.375}, -- NodeBox4
- {-0.3125, 0.4375, -0.3125, 0.3125, 0.5625, 0.3125}, -- NodeBox5
- {-0.25, 0.5625, -0.25, 0.25, 0.6875, 0.25}, -- NodeBox6
- {-0.1875, 0.6875, -0.1875, 0.1875, 0.75, 0.1875}, -- NodeBox7
- {-0.125, 0.75, -0.125, 0.125, 0.8125, 0.125}, -- NodeBox8
- {-0.375, -0.3125, -0.4375, 0.375, 0.3125, 0.4375}, -- NodeBox9
- },
- sounds = default.node_sound_wood_defaults()
- }
- })
- if minetest.get_modpath("mobs_spider") then
- mobs:spawn({name = "mobs_spider:spider",
- nodes = {"ufowreck:alien_egg"},
- active_object_count = 10,
- chance = 10,
- interval = 30,
- })
- end
- minetest.register_node("ufowreck:eye_tree", {
- description = "Alien Eye Tree",
- tiles = {{
- name="scifi_nodes_eyetree.png",
- animation={type="vertical_frames", aspect_w=48, aspect_h=48, length=10}, --length=0.50
- }},
- drawtype = "plantlike",
- groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, dig_immediate=3, flora=1},
- paramtype = "light",
- visual_scale = 2.5,
- buildable_to = true,
- walkable = false,
- selection_box = {
- type = "fixed",
- fixed = {
- {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3},
- }
- },
- drop = {
- items = {
- {items = {'ufowreck:eye 4'}},
- }
- },
- after_destruct = function(pos, oldnode)
- minetest.set_node(pos, {name = "ufowreck:eye_tree_empty"})
- end,
- is_ground_content = false,
- })
- minetest.register_node("ufowreck:eye_tree_empty", {
- description = "Alien Eye Tree",
- tiles = {"scifi_nodes_eyetree_2.png"},
- drawtype = "plantlike",
- inventory_image = {"scifi_nodes_eyetree_2.png"},
- groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, flora=1},
- paramtype = "light",
- visual_scale = 2.5,
- buildable_to = true,
- walkable = false,
- selection_box = {
- type = "fixed",
- fixed = {
- {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3},
- }
- },
- drop = {
- items = {
- {items = {'ufowreck:eye'}},
- }
- },
- on_construct = function(pos)
- minetest.get_node_timer(pos):start(math.random(300, 1500))
- end,
- on_timer = function(pos)
- minetest.set_node(pos, {name = "ufowreck:eye_tree"})
- end,
- is_ground_content = false,
- })
- local buff_speed = 1 --add to physics multiplier
- local buff_jump = 0.5 --add to physics multiplier
- minetest.register_node("ufowreck:eye", {
- description = "Alien Eye",
- tiles = {"eye.png"},
- drawtype = "plantlike",
- inventory_image = "eye.png",
- wield_image = "eye.png",
- groups = { food = 2, eatable = 4 },
- buildable_to = true,
- walkable = false,
- on_construct = function(pos)
- minetest.get_node_timer(pos):start(math.random(300, 1500))
- end,
- on_timer = function(pos)
- minetest.set_node(pos, {name = "ufowreck:eye_tree"})
- end,
- on_use = function(itemstack, user, pointed_thing)
- local physics = user:get_physics_override()
- user:set_physics_override({
- speed = physics.speed + buff_speed,
- jump = physics.jump + buff_jump,
- })
- minetest.after(10, function(user)
- if user and user:is_player() then
- local phys = user:get_physics_override()
- user:set_physics_override({
- speed = phys.speed - buff_speed,
- jump = phys.jump - buff_jump,
- })
- end
- end, user)
- return minetest.do_item_eat(4, nil, itemstack, user, pointed_thing)
- end
- })
- minetest.register_node("ufowreck:predatory_plant", {
- description = "Alien Predatory Plant",
- tiles = {"scifi_nodes_flower3.png"},
- drawtype = "plantlike",
- inventory_image = {"scifi_nodes_flower3.png"},
- groups = {snappy=1, choppy=1, oddly_breakable_by_hand=1, dig_immediate=3, flora=1},
- paramtype = "light",
- visual_scale = 2.5,
- buildable_to = true,
- walkable = false,
- damage_per_second = 0.5,
- selection_box = {
- type = "fixed",
- fixed = {
- {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3},
- }
- },
- is_ground_content = false,
- })
- minetest.register_node("ufowreck:glow_plant", {
- description = "Alien Glow Plant",
- tiles = {{
- name="scifi_nodes_plant2_anim.png",
- animation={type="vertical_frames", aspect_w=32, aspect_h=32, length=5},
- }},
- inventory_image = "scifi_nodes_plant2.png",
- wield_image = "scifi_nodes_plant2.png",
- drawtype = "plantlike",
- groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, dig_immediate=3, flora=1},
- paramtype = "light",
- visual_scale = 1.5,
- buildable_to = true,
- walkable = false,
- selection_box = {
- type = "fixed",
- fixed = {
- {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3},
- }
- },
- is_ground_content = false,
- light_source = 14,
- })
- minetest.register_node("ufowreck:powered_stand", {
- description = "Powered Stand",
- tiles = {
- "scifi_nodes_pwrstnd_top.png",
- "scifi_nodes_pwrstnd_top.png",
- "scifi_nodes_pwrstnd_side.png",
- "scifi_nodes_pwrstnd_side.png",
- "scifi_nodes_pwrstnd_side.png",
- "scifi_nodes_pwrstnd_side.png"
- },
- drawtype = "nodebox",
- paramtype = "light",
- node_box = {
- type = "fixed",
- fixed = {
- {-0.375, 0.25, -0.3125, 0.375, 0.4375, 0.3125}, -- NodeBox1
- {-0.3125, 0.25, -0.375, 0.3125, 0.4375, 0.375}, -- NodeBox2
- {-0.3125, 0.4375, -0.3125, 0.3125, 0.5, 0.3125}, -- NodeBox3
- {-0.5, -0.5, -0.125, 0.5, 0.125, 0.125}, -- NodeBox4
- {-0.125, -0.5, -0.5, 0.125, 0.125, 0.5}, -- NodeBox5
- {-0.4375, 0.125, -0.125, 0.4375, 0.25, 0.125}, -- NodeBox6
- {-0.125, 0.125, -0.4375, 0.125, 0.25, 0.4375}, -- NodeBox7
- {-0.3125, -0.5, -0.375, 0.3125, 0.0625, 0.3125}, -- NodeBox8
- {-0.25, 0.0625, -0.3125, 0.25, 0.125, 0.3125}, -- NodeBox9
- }
- },
- groups = {cracky=1, oddly_breakable_by_hand=1},
- on_rightclick = function(pos, node, clicker, item, _)
- local wield_item_stack = clicker:get_wielded_item()
- local wield_item = wield_item_stack:get_name()
- local taken = item:take_item()
- if taken and not taken:is_empty() then
- if wield_item_stack:get_count() == 1 then
- -- only 1 item in "hands" copy over entire stack with metadata
- wield_item = wield_item_stack
- end
- minetest.add_item({x=pos.x, y=pos.y+1, z=pos.z}, wield_item)
- return item
- end
- end,
- })
- minetest.register_node("ufowreck:ladder", {
- description = "Metal Ladder",
- tiles = {
- "scifi_nodes_ladder.png",
- },
- drawtype = "nodebox",
- paramtype = "light",
- selection_box = {
- type = "wallmounted",
- fixed = {-0.5, -0.5, -0.5, -0.45, 0.5, 0.5}
- },
- node_box = {
- type = "fixed",
- fixed = {
- {0.3125, -0.5, -0.4375, 0.4375, -0.375, -0.3125}, -- NodeBox12
- {-0.4375, -0.5, -0.4375, -0.3125, -0.375, -0.3125}, -- NodeBox13
- {-0.375, -0.375, -0.4375, 0.375, -0.3125, -0.3125}, -- NodeBox14
- {-0.375, -0.375, 0.3125, 0.375, -0.3125, 0.4375}, -- NodeBox18
- {-0.375, -0.375, 0.0625, 0.375, -0.3125, 0.1875}, -- NodeBox19
- {-0.375, -0.375, -0.1875, 0.375, -0.3125, -0.0625}, -- NodeBox20
- {-0.4375, -0.5, -0.1875, -0.3125, -0.375, -0.0625}, -- NodeBox21
- {-0.4375, -0.5, 0.0625, -0.3125, -0.375, 0.1875}, -- NodeBox22
- {-0.4375, -0.5, 0.3125, -0.3125, -0.375, 0.4375}, -- NodeBox23
- {0.3125, -0.5, 0.3125, 0.4375, -0.375, 0.4375}, -- NodeBox24
- {0.3125, -0.5, 0.0625, 0.4375, -0.375, 0.1875}, -- NodeBox25
- {0.3125, -0.5, -0.1875, 0.4375, -0.375, -0.0625}, -- NodeBox26
- },
- sounds = default.node_sound_metal_defaults()
- },
- paramtype2 = "wallmounted",
- walkable = false,
- climbable = true,
- groups = {cracky=1, oddly_breakable_by_hand=1},
- })
|