Merge remote-tracking branch 'upstream/master'

This commit is contained in:
bri cassa 2024-09-15 09:47:44 +02:00
commit f79e84b92d
25 changed files with 627 additions and 229 deletions

View File

@ -1,15 +0,0 @@
name: integration-test
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v1
- name: integration-test
run: ./test/integration-test.sh

12
.github/workflows/test.yml vendored Normal file
View File

@ -0,0 +1,12 @@
name: test
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: buckaroobanzay/mtt@main
with:
modname: scifi_nodes
enable_coverage: "true"
- uses: coverallsapp/github-action@v1

View File

@ -23,5 +23,7 @@ read_globals = {
"mesecon", "mesecon",
"unifieddyes", "unifieddyes",
"letters", "letters",
"stealthnode" "stealthnode",
"slats",
"mtt"
} }

View File

@ -3,7 +3,8 @@
# scifi_nodes # scifi_nodes
![](https://github.com/D00Med/scifi_nodes/workflows/luacheck/badge.svg) ![](https://github.com/D00Med/scifi_nodes/workflows/luacheck/badge.svg)
![](https://github.com/D00Med/scifi_nodes/workflows/integration-test/badge.svg) ![](https://github.com/D00Med/scifi_nodes/workflows/test/badge.svg)
[![Coverage Status](https://coveralls.io/repos/github/D00Med/scifi_nodes/badge.svg?branch=master)](https://coveralls.io/github/D00Med/scifi_nodes?branch=master)
[![ContentDB](https://content.minetest.net/packages/D00Med/scifi_nodes/shields/downloads/)](https://content.minetest.net/packages/D00Med/scifi_nodes/) [![ContentDB](https://content.minetest.net/packages/D00Med/scifi_nodes/shields/downloads/)](https://content.minetest.net/packages/D00Med/scifi_nodes/)
Minetest mod that adds scifi themed blocks, doors, materials, plants and other assets. Minetest mod that adds scifi themed blocks, doors, materials, plants and other assets.
@ -42,7 +43,7 @@ CC BY 3.0
* scifi_nodes_access_refused https://freesound.org/people/RICHERlandTV/sounds/216090/ * scifi_nodes_access_refused https://freesound.org/people/RICHERlandTV/sounds/216090/
* scifi_nodes_forcefield.png https://github.com/minetest-mods/technic/ * scifi_nodes_forcefield.png https://github.com/minetest-mods/technic/
* scifi_nodes_dirt.png https://github.com/minetest/minetest_game * scifi_nodes_dirt.png https://github.com/minetest/minetest_game
* scifi_nodes_grass.png https://github.com/minetest/minetest_game * scifi_nodes_grass_top.png https://github.com/minetest/minetest_game
* scifi_nodes_grass_side.png https://github.com/minetest/minetest_game * scifi_nodes_grass_side.png https://github.com/minetest/minetest_game
* scifi_nodes_wood.png https://github.com/minetest/minetest_game * scifi_nodes_wood.png https://github.com/minetest/minetest_game

View File

@ -86,25 +86,26 @@ minetest.register_node("scifi_nodes:builder", {
on_metadata_inventory_take = function(pos, listname, index, stack, player) on_metadata_inventory_take = function(pos, listname, index, stack, player)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
local inv = meta:get_inventory() local inv = meta:get_inventory()
local istack = inv:get_stack("input", 1) local istack = inv:get_stack("input", 1)
local stack_name = istack:get_name() local stack_name = istack:get_name()
inv:remove_item("input", stack_name.." 1") inv:remove_item("input", stack_name.." 1")
inv:set_stack("output", 1, "") inv:set_stack("output", 1, "")
inv:set_stack("output", 2, "") inv:set_stack("output", 2, "")
inv:set_stack("output", 3, "") inv:set_stack("output", 3, "")
inv:set_stack("output", 4, "") inv:set_stack("output", 4, "")
inv:set_stack("output", 5, "") inv:set_stack("output", 5, "")
inv:set_stack("output", 6, "") inv:set_stack("output", 6, "")
inv:set_stack("output", 7, "") inv:set_stack("output", 7, "")
inv:set_stack("output", 8, "") inv:set_stack("output", 8, "")
inv:set_stack("output", 9, "") inv:set_stack("output", 9, "")
inv:set_stack("output", 10, "") inv:set_stack("output", 10, "")
inv:set_stack("output", 11, "") inv:set_stack("output", 11, "")
inv:set_stack("output", 12, "") inv:set_stack("output", 12, "")
end, end,
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
groups = {cracky=1, oddly_breakable_by_hand=1}, groups = {cracky=1, oddly_breakable_by_hand=1},
is_ground_content = false,
sounds = scifi_nodes.node_sound_metal_defaults(), sounds = scifi_nodes.node_sound_metal_defaults(),
}) })

View File

@ -234,7 +234,7 @@ minetest.register_craft({
} }
}) })
-- 4 electronic screen from 4 plastic, 1 trap glow glass, 2 cyan dye, 2 -- 4 electronic screen from 4 plastic, 1 lightbar, 2 cyan dye, 2
-- microcontroller -- microcontroller
minetest.register_craft({ minetest.register_craft({
output = "scifi_nodes:screen 4", output = "scifi_nodes:screen 4",
@ -245,7 +245,7 @@ minetest.register_craft({
} }
}) })
-- 4 electronic screen2 from 4 plastic, 1 trap glow glass, 2 green dye, 2 -- 4 electronic screen2 from 4 plastic, 1 lightbar, 2 green dye, 2
-- microcontroller -- microcontroller
minetest.register_craft({ minetest.register_craft({
output = "scifi_nodes:screen2 4", output = "scifi_nodes:screen2 4",
@ -256,6 +256,18 @@ minetest.register_craft({
} }
}) })
-- 4 electronic screen3 from 4 plastic, 1 lightbar, 2 black dye, 2
-- microcontroller
minetest.register_craft({
output = "scifi_nodes:screen3 4",
recipe = {
{"scifi_nodes:white2", "mesecons_microcontroller:microcontroller0000", "scifi_nodes:white2"},
{"dye:black", "scifi_nodes:lightbar", "dye:black"},
{"scifi_nodes:white2", "mesecons_microcontroller:microcontroller0000", "scifi_nodes:white2"}
}
})
-- 4 black wall screen from 4 black meshes and 1 electronic screen2 -- 4 black wall screen from 4 black meshes and 1 electronic screen2
minetest.register_craft({ minetest.register_craft({
output = "scifi_nodes:black_screen 4", output = "scifi_nodes:black_screen 4",
@ -331,6 +343,16 @@ minetest.register_craft({
} }
}) })
-- 6 black vnt from 6 black wall block and 6 stripes
minetest.register_craft({
output = "scifi_nodes:blackvnt 6",
recipe = {
{"scifi_nodes:black", "scifi_nodes:black", "scifi_nodes:black"},
{"scifi_nodes:stripes", "scifi_nodes:stripes", "scifi_nodes:stripes"},
{"", "", ""}
}
})
-- 6 black vent from 6 black wall -- 6 black vent from 6 black wall
minetest.register_craft({ minetest.register_craft({
output = "scifi_nodes:blackvent 6", output = "scifi_nodes:blackvent 6",
@ -733,6 +755,16 @@ minetest.register_craft({
} }
}) })
-- 6 black pipe from 6 lighttop and 1 vent
minetest.register_craft({
output = "scifi_nodes:blackpipe 6",
recipe = {
{"scifi_nodes:lighttop", "", "scifi_nodes:lighttop"},
{"scifi_nodes:lighttop", "scifi_nodes:vent2", "scifi_nodes:lighttop"},
{"scifi_nodes:lighttop", "", "scifi_nodes:lighttop"}
}
})
-- 1 broken green pipe from 1 green pipe -- 1 broken green pipe from 1 green pipe
minetest.register_craft({ minetest.register_craft({
output = "scifi_nodes:grnpipe2", output = "scifi_nodes:grnpipe2",
@ -896,6 +928,16 @@ minetest.register_craft({
} }
}) })
-- 4 holes from 4 grey and 1 black dye and 1 white dye and 1 metal mesh
minetest.register_craft({
output = "scifi_nodes:holes 4",
recipe = {
{"scifi_nodes:grey", "dye:black", "scifi_nodes:grey"},
{"", "scifi_nodes:mesh", ""},
{"scifi_nodes:grey", "dye:white", "scifi_nodes:grey"}
}
})
-- 4 metal table from 2 grey and 2 dented metal block -- 4 metal table from 2 grey and 2 dented metal block
minetest.register_craft({ minetest.register_craft({
output = "scifi_nodes:table 4", output = "scifi_nodes:table 4",
@ -1635,6 +1677,25 @@ minetest.register_craft({
} }
}) })
minetest.register_craft({
output = 'scifi_nodes:green2 6',
recipe = {
{"scifi_nodes:white","dye:dark_green","scifi_nodes:white"},
{"scifi_nodes:black","dye:dark_green","scifi_nodes:black"},
{"scifi_nodes:white","dye:green","scifi_nodes:white"}
}
})
minetest.register_craft({
output = 'scifi_nodes:doomwall4 6',
recipe = {
{"scifi_nodes:white","dye:dark_green","scifi_nodes:white"},
{"scifi_nodes:black","dye:dark_green","scifi_nodes:black"},
{"scifi_nodes:white","dye:dark_green","scifi_nodes:white"}
}
})
minetest.register_craft({ minetest.register_craft({
output = 'scifi_nodes:doomwall41 6', output = 'scifi_nodes:doomwall41 6',
recipe = { recipe = {
@ -1781,3 +1842,21 @@ minetest.register_craft({
{"scifi_nodes:octbl", "", "scifi_nodes:octbl"} {"scifi_nodes:octbl", "", "scifi_nodes:octbl"}
} }
}) })
minetest.register_craft({
output = "scifi_nodes:vent3 4",
recipe = {
{"scifi_nodes:vent2", "", "scifi_nodes:vent2"},
{"", "scifi_nodes:glass", ""},
{"scifi_nodes:vent2", "", "scifi_nodes:vent2"}
}
})
minetest.register_craft({
output = "scifi_nodes:mesh3 4",
recipe = {
{"scifi_nodes:mesh2", "", "scifi_nodes:mesh2"},
{"", "scifi_nodes:glass", ""},
{"scifi_nodes:mesh2", "", "scifi_nodes:mesh2"}
}
})

View File

@ -102,7 +102,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
end end
-- play sound at context position -- play sound at context position
minetest.sound_play(sounds[sound_index], { minetest.sound_play(sounds[sound_index], {
pos = context.pos, pos = context.pos,
max_hear_distance = 10 max_hear_distance = 10
}) })
context[player:get_player_name()] = nil -- we don't need it anymore context[player:get_player_name()] = nil -- we don't need it anymore
@ -122,6 +122,7 @@ minetest.register_node("scifi_nodes:digicode_on", {
paramtype2 = "wallmounted", paramtype2 = "wallmounted",
light_source = 5, light_source = 5,
groups = {cracky=1, oddly_breakable_by_hand=1, not_in_creative_inventory=1, mesecon_needs_receiver = 1}, groups = {cracky=1, oddly_breakable_by_hand=1, not_in_creative_inventory=1, mesecon_needs_receiver = 1},
is_ground_content = false,
drop = "scifi_nodes:digicode_off", drop = "scifi_nodes:digicode_off",
mesecons = { mesecons = {
receptor = { receptor = {
@ -145,6 +146,7 @@ minetest.register_node("scifi_nodes:digicode_off", {
paramtype = "light", paramtype = "light",
paramtype2 = "wallmounted", paramtype2 = "wallmounted",
groups = {cracky=1, oddly_breakable_by_hand=1, mesecon_needs_receiver = 1}, groups = {cracky=1, oddly_breakable_by_hand=1, mesecon_needs_receiver = 1},
is_ground_content = false,
mesecons = { mesecons = {
receptor = { receptor = {
state = (has_mesecons and mesecon.state.off) state = (has_mesecons and mesecon.state.off)

View File

@ -243,8 +243,10 @@ for _, current_door in ipairs(doors) do
groups = { groups = {
cracky = 3, cracky = 3,
oddly_breakable_by_hand = 1, oddly_breakable_by_hand = 1,
scifi_nodes_door = 1 scifi_nodes_door = 1,
door = 1
}, },
is_ground_content = false,
node_box = { node_box = {
type = "fixed", type = "fixed",
fixed = { fixed = {
@ -277,7 +279,8 @@ for _, current_door in ipairs(doors) do
drawtype = "nodebox", drawtype = "nodebox",
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
groups = {cracky = 1, dig_generic = 3}, groups = {cracky = 1, dig_generic = 3, door = 1},
is_ground_content = false,
node_box = { node_box = {
type = "fixed", type = "fixed",
fixed = { fixed = {
@ -307,7 +310,8 @@ for _, current_door in ipairs(doors) do
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
drop = closed, drop = closed,
groups = {cracky = 1, dig_generic = 3}, groups = {cracky = 1, dig_generic = 3, door = 2},
is_ground_content = false,
node_box = { node_box = {
type = "fixed", type = "fixed",
fixed = { fixed = {
@ -338,7 +342,8 @@ for _, current_door in ipairs(doors) do
drawtype = "nodebox", drawtype = "nodebox",
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
groups = {cracky = 1, dig_generic = 3}, groups = {cracky = 1, dig_generic = 3, door = 2},
is_ground_content = false,
node_box = { node_box = {
type = "fixed", type = "fixed",
fixed = { fixed = {
@ -378,4 +383,4 @@ function scifi_nodes.open_door(pos)
-- call open function -- call open function
def._open(pos, node) def._open(pos, node)
return true return true
end end

View File

@ -6,6 +6,7 @@ minetest.register_node("scifi_nodes:forcefield", {
cracky = 1, cracky = 1,
level = 3 level = 3
}, },
is_ground_content = false,
sounds = scifi_nodes.node_sound_glass_defaults(), sounds = scifi_nodes.node_sound_glass_defaults(),
paramtype = "light", paramtype = "light",
light_source = minetest.LIGHT_MAX, light_source = minetest.LIGHT_MAX,
@ -18,4 +19,4 @@ minetest.register_node("scifi_nodes:forcefield", {
length = 1.0, length = 1.0,
} }
}} }}
}) })

View File

@ -43,4 +43,8 @@ if minetest.get_modpath("mesecons_stealthnode") then
dofile(MP.."/stealthnodes.lua") dofile(MP.."/stealthnodes.lua")
end end
if minetest.get_modpath("mtt") and mtt.enabled then
dofile(MP .. "/mtt.lua")
end
minetest.log("action", "[scifi_nodes] loaded.") minetest.log("action", "[scifi_nodes] loaded.")

View File

@ -13,5 +13,7 @@ basic_materials,
dye, dye,
unifieddyes, unifieddyes,
letters, letters,
mesecons_stealthnode mesecons_stealthnode,
mtt,
slats
""" """

View File

@ -16,29 +16,30 @@ function scifi_nodes.register_slope(name, desc, texture, light, soundtype)
drawtype = "mesh", drawtype = "mesh",
mesh = "scifi_nodes_slope.obj", mesh = "scifi_nodes_slope.obj",
tiles = texture, tiles = texture,
selection_box = { selection_box = {
type = "fixed", type = "fixed",
fixed = { fixed = {
{-0.5, -0.5, -0.5, 0.5, -0.25, 0.5}, {-0.5, -0.5, -0.5, 0.5, -0.25, 0.5},
{-0.5, -0.25, -0.25, 0.5, 0, 0.5}, {-0.5, -0.25, -0.25, 0.5, 0, 0.5},
{-0.5, 0, 0, 0.5, 0.25, 0.5}, {-0.5, 0, 0, 0.5, 0.25, 0.5},
{-0.5, 0.25, 0.25, 0.5, 0.5, 0.5} {-0.5, 0.25, 0.25, 0.5, 0.5, 0.5}
} }
}, },
collision_box = { collision_box = {
type = "fixed", type = "fixed",
fixed = { fixed = {
{-0.5, -0.5, -0.5, 0.5, -0.25, 0.5}, {-0.5, -0.5, -0.5, 0.5, -0.25, 0.5},
{-0.5, -0.25, -0.25, 0.5, 0, 0.5}, {-0.5, -0.25, -0.25, 0.5, 0, 0.5},
{-0.5, 0, 0, 0.5, 0.25, 0.5}, {-0.5, 0, 0, 0.5, 0.25, 0.5},
{-0.5, 0.25, 0.25, 0.5, 0.5, 0.5} {-0.5, 0.25, 0.25, 0.5, 0.5, 0.5}
} }
}, },
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
use_texture_alpha = "clip", use_texture_alpha = "clip",
light_source = light, light_source = light,
groups = {cracky=1, dig_generic = 3}, groups = {cracky=1, dig_generic = 3},
is_ground_content = false,
on_place = minetest.rotate_node, on_place = minetest.rotate_node,
sounds = sounds, sounds = sounds,
}) })

2
mtt.lua Normal file
View File

@ -0,0 +1,2 @@
mtt.validate_nodenames(minetest.get_modpath("scifi_nodes") .. "/nodenames.txt")

View File

@ -19,6 +19,7 @@ minetest.register_node("scifi_nodes:alienslope", {
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
groups = {cracky=1, dig_generic = 3}, groups = {cracky=1, dig_generic = 3},
is_ground_content = false,
node_box = { node_box = {
type = "fixed", type = "fixed",
fixed = { fixed = {
@ -50,6 +51,7 @@ minetest.register_node("scifi_nodes:wallpipe", {
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
groups = {cracky=1, dig_generic = 3}, groups = {cracky=1, dig_generic = 3},
is_ground_content = false,
node_box = { node_box = {
type = "fixed", type = "fixed",
fixed = { fixed = {
@ -82,6 +84,7 @@ minetest.register_node("scifi_nodes:plant_trap", {
walkable = false, walkable = false,
sunlight_propagates = false, sunlight_propagates = false,
groups = {snappy=1, oddly_breakable_by_hand=1}, groups = {snappy=1, oddly_breakable_by_hand=1},
is_ground_content = false,
node_box = { node_box = {
type = "fixed", type = "fixed",
fixed = { fixed = {
@ -108,6 +111,7 @@ minetest.register_node("scifi_nodes:egg", {
drawtype = "nodebox", drawtype = "nodebox",
paramtype = "light", paramtype = "light",
groups = {cracky=1, oddly_breakable_by_hand=1, dig_immediate=2, falling_node=1, dig_generic = 3}, groups = {cracky=1, oddly_breakable_by_hand=1, dig_immediate=2, falling_node=1, dig_generic = 3},
is_ground_content = false,
light_source = 5, light_source = 5,
node_box = { node_box = {
type = "fixed", type = "fixed",
@ -127,14 +131,14 @@ minetest.register_node("scifi_nodes:egg", {
}) })
if minetest.get_modpath("scifi_mobs") then if minetest.get_modpath("scifi_mobs") then
minetest.register_abm({ minetest.register_abm({
nodenames = {"scifi_nodes:egg"}, nodenames = {"scifi_nodes:egg"},
interval = 30, chance = 10, interval = 30, chance = 10,
action = function(pos, node, _, _) action = function(pos, node, _, _)
minetest.add_entity(pos, "scifi_mobs:xenomorph") minetest.add_entity(pos, "scifi_mobs:xenomorph")
minetest.remove_node(pos) minetest.remove_node(pos)
end end
}) })
end end
minetest.register_node("scifi_nodes:pad", { minetest.register_node("scifi_nodes:pad", {
@ -150,6 +154,7 @@ minetest.register_node("scifi_nodes:pad", {
drawtype = "nodebox", drawtype = "nodebox",
paramtype = "light", paramtype = "light",
groups = {cracky=1, oddly_breakable_by_hand=1}, groups = {cracky=1, oddly_breakable_by_hand=1},
is_ground_content = false,
light_source = 5, light_source = 5,
after_place_node = function(pos, placer, itemstack, pointed_thing) after_place_node = function(pos, placer, itemstack, pointed_thing)
local placer_name = placer:get_player_name() local placer_name = placer:get_player_name()
@ -168,92 +173,93 @@ minetest.register_node("scifi_nodes:pad", {
local clicker_name = clicker:get_player_name() local clicker_name = clicker:get_player_name()
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
if meta:get_int("type") == 1 and position2 ~= nil and position1 ~= nil then if meta:get_int("type") == 1 and position2 ~= nil and position1 ~= nil then
minetest.add_particlespawner( minetest.add_particlespawner(
25, --amount 25, --amount
1.5, --time 1.5, --time
{x=pos.x-0.9, y=pos.y-0.3, z=pos.z-0.9}, --minpos {x=pos.x-0.9, y=pos.y-0.3, z=pos.z-0.9}, --minpos
{x=pos.x+0.9, y=pos.y-0.3, z=pos.z+0.9}, --maxpos {x=pos.x+0.9, y=pos.y-0.3, z=pos.z+0.9}, --maxpos
{x=0, y=0, z=0}, --minvel {x=0, y=0, z=0}, --minvel
{x=0, y=0, z=0}, --maxvel {x=0, y=0, z=0}, --maxvel
{x=-0,y=1,z=-0}, --minacc {x=-0,y=1,z=-0}, --minacc
{x=0,y=2,z=0}, --maxacc {x=0,y=2,z=0}, --maxacc
0.5, --minexptime 0.5, --minexptime
1, --maxexptime 1, --maxexptime
2, --minsize 2, --minsize
5, --maxsize 5, --maxsize
false, --collisiondetection false, --collisiondetection
"scifi_nodes_tp_part.png" --texture "scifi_nodes_tp_part.png" --texture
) )
minetest.after(1, function() minetest.after(1, function()
local ppos = clicker:getpos() local ppos = clicker:getpos()
if minetest.get_node({x=ppos.x, y=ppos.y, z=ppos.z}).name == "scifi_nodes:pad" then if minetest.get_node({x=ppos.x, y=ppos.y, z=ppos.z}).name == "scifi_nodes:pad" then
clicker:setpos(position2) clicker:setpos(position2)
end
local objs = minetest.get_objects_inside_radius(pos, 3)
for _, obj in pairs(objs) do
if obj:get_luaentity() and not obj:is_player() then
if obj:get_luaentity().name == "__builtin:item" then
local item1 = obj:get_luaentity().itemstring
local obj2 = minetest.add_entity(position2, "__builtin:item")
obj2:get_luaentity():set_item(item1)
obj:remove()
end end
local objs = minetest.get_objects_inside_radius(pos, 3)
for _, obj in pairs(objs) do
if obj:get_luaentity() and not obj:is_player() then
if obj:get_luaentity().name == "__builtin:item" then
local item1 = obj:get_luaentity().itemstring
local obj2 = minetest.add_entity(position2, "__builtin:item")
obj2:get_luaentity():set_item(item1)
obj:remove()
end
end
end end
end end)
end)
elseif meta:get_int("type") == 2 and position1 ~= nil and position2 ~= nil then elseif meta:get_int("type") == 2 and position1 ~= nil and position2 ~= nil then
minetest.add_particlespawner( minetest.add_particlespawner(
25, --amount 25, --amount
1.5, --time 1.5, --time
{x=pos.x-0.9, y=pos.y-0.3, z=pos.z-0.9}, --minpos {x=pos.x-0.9, y=pos.y-0.3, z=pos.z-0.9}, --minpos
{x=pos.x+0.9, y=pos.y-0.3, z=pos.z+0.9}, --maxpos {x=pos.x+0.9, y=pos.y-0.3, z=pos.z+0.9}, --maxpos
{x=0, y=0, z=0}, --minvel {x=0, y=0, z=0}, --minvel
{x=0, y=0, z=0}, --maxvel {x=0, y=0, z=0}, --maxvel
{x=-0,y=1,z=-0}, --minacc {x=-0,y=1,z=-0}, --minacc
{x=0,y=2,z=0}, --maxacc {x=0,y=2,z=0}, --maxacc
0.5, --minexptime 0.5, --minexptime
1, --maxexptime 1, --maxexptime
2, --minsize 2, --minsize
5, --maxsize 5, --maxsize
false, --collisiondetection false, --collisiondetection
"scifi_nodes_tp_part.png" --texture "scifi_nodes_tp_part.png" --texture
) )
minetest.after(1, function() minetest.after(1, function()
local ppos = clicker:getpos() local ppos = clicker:getpos()
if minetest.get_node({x=ppos.x, y=ppos.y, z=ppos.z}).name == "scifi_nodes:pad" then if minetest.get_node({x=ppos.x, y=ppos.y, z=ppos.z}).name == "scifi_nodes:pad" then
clicker:setpos(position1) clicker:setpos(position1)
end end
local objs = minetest.get_objects_inside_radius(pos, 3) local objs = minetest.get_objects_inside_radius(pos, 3)
for _, obj in pairs(objs) do for _, obj in pairs(objs) do
if obj:get_luaentity() and not obj:is_player() then if obj:get_luaentity() and not obj:is_player() then
if obj:get_luaentity().name == "__builtin:item" then if obj:get_luaentity().name == "__builtin:item" then
local item1 = obj:get_luaentity().itemstring local item1 = obj:get_luaentity().itemstring
local obj2 = minetest.add_entity(position1, "__builtin:item") local obj2 = minetest.add_entity(position1, "__builtin:item")
obj2:get_luaentity():set_item(item1) obj2:get_luaentity():set_item(item1)
obj:remove() obj:remove()
end
end
end end
end end)
end
end)
elseif position1 == nil and meta:get_int("type") ~= 2 then elseif position1 == nil and meta:get_int("type") ~= 2 then
position1 = pos position1 = pos
meta:set_int("type", 1) meta:set_int("type", 1)
minetest.chat_send_player(clicker_name, "Teleporter 1 connected at "..minetest.pos_to_string(pos)) minetest.chat_send_player(clicker_name, "Teleporter 1 connected at "..minetest.pos_to_string(pos))
elseif position2 == nil and meta:get_int("type") ~= 1 then elseif position2 == nil and meta:get_int("type") ~= 1 then
position2 = pos position2 = pos
meta:set_int("type", 2) meta:set_int("type", 2)
minetest.chat_send_player(clicker_name, "Teleporter 2 connected at "..minetest.pos_to_string(pos)) minetest.chat_send_player(clicker_name, "Teleporter 2 connected at "..minetest.pos_to_string(pos))
else minetest.chat_send_player(clicker_name, "Teleporter error!") else
minetest.chat_send_player(clicker_name, "Teleporter error!")
end end
end, end,
on_destruct = function(pos, oldnode, placer) on_destruct = function(pos, oldnode, placer)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
if meta:get_int("type") == 1 then if meta:get_int("type") == 1 then
position1 = nil position1 = nil
meta:set_int("type", 0) meta:set_int("type", 0)
elseif meta:get_int("type") == 2 then elseif meta:get_int("type") == 2 then
position2 = nil position2 = nil
meta:set_int("type", 0) meta:set_int("type", 0)
end end
end, end,
node_box = { node_box = {
@ -284,6 +290,7 @@ minetest.register_node("scifi_nodes:pplwndw", {
use_texture_alpha = "blend", use_texture_alpha = "blend",
groups = {cracky=3, dig_generic = 4}, groups = {cracky=3, dig_generic = 4},
sounds = scifi_nodes.node_sound_glass_defaults(), sounds = scifi_nodes.node_sound_glass_defaults(),
is_ground_content = false,
node_box = { node_box = {
type = "fixed", type = "fixed",
fixed = { fixed = {
@ -310,6 +317,7 @@ minetest.register_node("scifi_nodes:gloshroom", {
sunlight_propagates = false, sunlight_propagates = false,
use_texture_alpha = "blend", use_texture_alpha = "blend",
groups = {fleshy=1, oddly_breakable_by_hand=1, dig_immediate=3}, groups = {fleshy=1, oddly_breakable_by_hand=1, dig_immediate=3},
is_ground_content = false,
node_box = { node_box = {
type = "fixed", type = "fixed",
fixed = { fixed = {
@ -335,6 +343,7 @@ minetest.register_node("scifi_nodes:pot_lid", {
drawtype = "nodebox", drawtype = "nodebox",
paramtype = "light", paramtype = "light",
groups = {not_in_creative_inventory = 1}, groups = {not_in_creative_inventory = 1},
is_ground_content = false,
sunlight_propagates = true, sunlight_propagates = true,
diggable = false, diggable = false,
drop = "", drop = "",
@ -392,6 +401,7 @@ minetest.register_node("scifi_nodes:pot", {
drawtype = "nodebox", drawtype = "nodebox",
paramtype = "light", paramtype = "light",
groups = {cracky = 1, soil = 1, sand = 1, dig_generic = 3}, groups = {cracky = 1, soil = 1, sand = 1, dig_generic = 3},
is_ground_content = false,
selection_box = { selection_box = {
type = "fixed", type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5} fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}
@ -426,6 +436,7 @@ minetest.register_node("scifi_nodes:pot2", {
drawtype = "nodebox", drawtype = "nodebox",
paramtype = "light", paramtype = "light",
groups = {cracky = 1, soil = 3, wet = 1, dig_generic = 3}, groups = {cracky = 1, soil = 3, wet = 1, dig_generic = 3},
is_ground_content = false,
selection_box = { selection_box = {
type = "fixed", type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5} fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}
@ -470,6 +481,7 @@ minetest.register_node("scifi_nodes:lightbar", {
} }
}, },
groups = {cracky=1, dig_generic = 3}, groups = {cracky=1, dig_generic = 3},
is_ground_content = false,
sounds = scifi_nodes.node_sound_glass_defaults() sounds = scifi_nodes.node_sound_glass_defaults()
}) })
@ -495,6 +507,7 @@ minetest.register_node("scifi_nodes:light_dynamic", {
paramtype2 = "wallmounted", paramtype2 = "wallmounted",
light_source = minetest.LIGHT_MAX, light_source = minetest.LIGHT_MAX,
groups = {cracky=1, oddly_breakable_by_hand=1}, groups = {cracky=1, oddly_breakable_by_hand=1},
is_ground_content = false,
sounds = scifi_nodes.node_sound_glass_defaults() sounds = scifi_nodes.node_sound_glass_defaults()
}) })
@ -531,6 +544,7 @@ minetest.register_node("scifi_nodes:ladder", {
walkable = false, walkable = false,
climbable = true, climbable = true,
groups = {cracky=1, oddly_breakable_by_hand=1}, groups = {cracky=1, oddly_breakable_by_hand=1},
is_ground_content = false,
}) })
minetest.register_node("scifi_nodes:lightbars", { minetest.register_node("scifi_nodes:lightbars", {
@ -553,12 +567,13 @@ minetest.register_node("scifi_nodes:lightbars", {
} }
}, },
groups = {cracky=1, dig_generic = 3}, groups = {cracky=1, dig_generic = 3},
is_ground_content = false,
sounds = scifi_nodes.node_sound_glass_defaults() sounds = scifi_nodes.node_sound_glass_defaults()
}) })
minetest.register_node("scifi_nodes:liquid_pipe", { minetest.register_node("scifi_nodes:liquid_pipe", {
description = "Liquid pipe", description = "Liquid pipe",
tiles = {{ tiles = {{
name = "scifi_nodes_liquid.png", name = "scifi_nodes_liquid.png",
animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 1.00}, animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 1.00},
}}, }},
@ -575,12 +590,13 @@ tiles = {{
} }
}, },
groups = {cracky=1, oddly_breakable_by_hand=1, dig_generic = 3}, groups = {cracky=1, oddly_breakable_by_hand=1, dig_generic = 3},
is_ground_content = false,
sounds = scifi_nodes.node_sound_glass_defaults() sounds = scifi_nodes.node_sound_glass_defaults()
}) })
minetest.register_node("scifi_nodes:liquid_pipe2", { minetest.register_node("scifi_nodes:liquid_pipe2", {
description = "Liquid pipe 2", description = "Liquid pipe 2",
tiles = { tiles = {
"scifi_nodes_orange.png", "scifi_nodes_orange.png",
}, },
use_texture_alpha = "blend", use_texture_alpha = "blend",
@ -596,6 +612,7 @@ tiles = {
} }
}, },
groups = {cracky=1, oddly_breakable_by_hand=1}, groups = {cracky=1, oddly_breakable_by_hand=1},
is_ground_content = false,
sounds = scifi_nodes.node_sound_glass_defaults() sounds = scifi_nodes.node_sound_glass_defaults()
}) })
@ -626,6 +643,7 @@ minetest.register_node("scifi_nodes:powered_stand", {
} }
}, },
groups = {cracky=1, oddly_breakable_by_hand=1}, groups = {cracky=1, oddly_breakable_by_hand=1},
is_ground_content = false,
on_rightclick = function(pos, node, clicker, item, _) on_rightclick = function(pos, node, clicker, item, _)
local wield_item_stack = clicker:get_wielded_item() local wield_item_stack = clicker:get_wielded_item()
local wield_item = wield_item_stack:get_name() local wield_item = wield_item_stack:get_name()
@ -656,6 +674,8 @@ minetest.register_node("scifi_nodes:cover", {
}, },
drawtype = "nodebox", drawtype = "nodebox",
paramtype = "light", paramtype = "light",
paramtype2 = "facedir",
sunlight_propagates = true,
node_box = { node_box = {
type = "fixed", type = "fixed",
fixed = { fixed = {
@ -665,7 +685,8 @@ minetest.register_node("scifi_nodes:cover", {
} }
}, },
sounds = scifi_nodes.node_sound_metal_defaults(), sounds = scifi_nodes.node_sound_metal_defaults(),
groups = {cracky=1, oddly_breakable_by_hand=1} groups = {cracky=1, oddly_breakable_by_hand=1},
is_ground_content = false,
}) })
minetest.register_node("scifi_nodes:computer", { minetest.register_node("scifi_nodes:computer", {
@ -689,6 +710,7 @@ minetest.register_node("scifi_nodes:computer", {
} }
}, },
groups = {cracky=1, oddly_breakable_by_hand=1}, groups = {cracky=1, oddly_breakable_by_hand=1},
is_ground_content = false,
sounds = scifi_nodes.node_sound_metal_defaults(), sounds = scifi_nodes.node_sound_metal_defaults(),
}) })
@ -716,6 +738,7 @@ minetest.register_node("scifi_nodes:keysmonitor", {
} }
}, },
groups = {cracky=1, oddly_breakable_by_hand=1}, groups = {cracky=1, oddly_breakable_by_hand=1},
is_ground_content = false,
sounds = scifi_nodes.node_sound_defaults(), sounds = scifi_nodes.node_sound_defaults(),
}) })
@ -744,6 +767,7 @@ minetest.register_node("scifi_nodes:microscope", {
} }
}, },
groups = {cracky=1, oddly_breakable_by_hand=1}, groups = {cracky=1, oddly_breakable_by_hand=1},
is_ground_content = false,
sounds = scifi_nodes.node_sound_defaults(), sounds = scifi_nodes.node_sound_defaults(),
}) })
@ -773,7 +797,8 @@ minetest.register_node("scifi_nodes:table", {
} }
}, },
sounds = scifi_nodes.node_sound_metal_defaults(), sounds = scifi_nodes.node_sound_metal_defaults(),
groups = {cracky=1, dig_generic = 3} groups = {cracky=1, dig_generic = 3},
is_ground_content = false,
}) })
minetest.register_node("scifi_nodes:laptop_open", { minetest.register_node("scifi_nodes:laptop_open", {
@ -798,6 +823,7 @@ minetest.register_node("scifi_nodes:laptop_open", {
} }
}, },
groups = {cracky=1, oddly_breakable_by_hand=1, not_in_creative_inventory=1}, groups = {cracky=1, oddly_breakable_by_hand=1, not_in_creative_inventory=1},
is_ground_content = false,
on_rightclick = function(pos, node, clicker, item, _) on_rightclick = function(pos, node, clicker, item, _)
minetest.set_node(pos, {name="scifi_nodes:laptop_closed", param2=node.param2}) minetest.set_node(pos, {name="scifi_nodes:laptop_closed", param2=node.param2})
end, end,
@ -825,6 +851,7 @@ minetest.register_node("scifi_nodes:laptop_closed", {
} }
}, },
groups = {cracky=1, oddly_breakable_by_hand=1}, groups = {cracky=1, oddly_breakable_by_hand=1},
is_ground_content = false,
on_rightclick = function(pos, node, clicker, item, _) on_rightclick = function(pos, node, clicker, item, _)
minetest.set_node(pos, {name="scifi_nodes:laptop_open", param2=node.param2}) minetest.set_node(pos, {name="scifi_nodes:laptop_open", param2=node.param2})
end, end,
@ -859,6 +886,7 @@ minetest.register_node("scifi_nodes:pipen", {
} }
}, },
groups = {cracky=1, dig_generic = 3}, groups = {cracky=1, dig_generic = 3},
is_ground_content = false,
on_place = minetest.rotate_node, on_place = minetest.rotate_node,
sounds = scifi_nodes.node_sound_metal_defaults(), sounds = scifi_nodes.node_sound_metal_defaults(),
}) })
@ -890,6 +918,7 @@ minetest.register_node("scifi_nodes:windowcorner", {
} }
}, },
groups = {cracky=1, dig_generic = 3}, groups = {cracky=1, dig_generic = 3},
is_ground_content = false,
on_place = minetest.rotate_node, on_place = minetest.rotate_node,
sounds = scifi_nodes.node_sound_glass_defaults(), sounds = scifi_nodes.node_sound_glass_defaults(),
}) })
@ -917,6 +946,7 @@ minetest.register_node("scifi_nodes:windowstraight", {
} }
}, },
groups = {cracky=1, dig_generic = 3}, groups = {cracky=1, dig_generic = 3},
is_ground_content = false,
on_place = minetest.rotate_node, on_place = minetest.rotate_node,
sounds = scifi_nodes.node_sound_glass_defaults(), sounds = scifi_nodes.node_sound_glass_defaults(),
}) })
@ -948,6 +978,7 @@ minetest.register_node("scifi_nodes:windowcorner2", {
} }
}, },
groups = {cracky=1, dig_generic = 3}, groups = {cracky=1, dig_generic = 3},
is_ground_content = false,
on_place = minetest.rotate_node, on_place = minetest.rotate_node,
sounds = scifi_nodes.node_sound_glass_defaults(), sounds = scifi_nodes.node_sound_glass_defaults(),
}) })
@ -975,6 +1006,7 @@ minetest.register_node("scifi_nodes:windowstraight2", {
} }
}, },
groups = {cracky=1, dig_generic = 3}, groups = {cracky=1, dig_generic = 3},
is_ground_content = false,
on_place = minetest.rotate_node, on_place = minetest.rotate_node,
sounds = scifi_nodes.node_sound_glass_defaults(), sounds = scifi_nodes.node_sound_glass_defaults(),
}) })
@ -1005,6 +1037,7 @@ minetest.register_node("scifi_nodes:capsule", {
} }
}, },
groups = {cracky=1, oddly_breakable_by_hand=1, dig_generic = 3}, groups = {cracky=1, oddly_breakable_by_hand=1, dig_generic = 3},
is_ground_content = false,
sounds = scifi_nodes.node_sound_glass_defaults(), sounds = scifi_nodes.node_sound_glass_defaults(),
on_rightclick = function(pos, node, clicker, item, _) on_rightclick = function(pos, node, clicker, item, _)
minetest.set_node(pos, {name="scifi_nodes:capsule2", param2=node.param2}) minetest.set_node(pos, {name="scifi_nodes:capsule2", param2=node.param2})
@ -1035,6 +1068,7 @@ minetest.register_node("scifi_nodes:capsule3", {
} }
}, },
groups = {cracky=1, oddly_breakable_by_hand=1, not_in_creative_inventory=1}, groups = {cracky=1, oddly_breakable_by_hand=1, not_in_creative_inventory=1},
is_ground_content = false,
sounds = scifi_nodes.node_sound_glass_defaults(), sounds = scifi_nodes.node_sound_glass_defaults(),
on_rightclick = function(pos, node, clicker, item, _) on_rightclick = function(pos, node, clicker, item, _)
minetest.set_node(pos, {name="scifi_nodes:capsule", param2=node.param2}) minetest.set_node(pos, {name="scifi_nodes:capsule", param2=node.param2})
@ -1065,6 +1099,7 @@ minetest.register_node("scifi_nodes:capsule2", {
} }
}, },
groups = {cracky=1, oddly_breakable_by_hand=1, not_in_creative_inventory=1}, groups = {cracky=1, oddly_breakable_by_hand=1, not_in_creative_inventory=1},
is_ground_content = false,
sounds = scifi_nodes.node_sound_glass_defaults(), sounds = scifi_nodes.node_sound_glass_defaults(),
on_rightclick = function(pos, node, clicker, item, _) on_rightclick = function(pos, node, clicker, item, _)
minetest.set_node(pos, {name="scifi_nodes:capsule3", param2=node.param2}) minetest.set_node(pos, {name="scifi_nodes:capsule3", param2=node.param2})
@ -1095,6 +1130,7 @@ minetest.register_node("scifi_nodes:itemholder", {
} }
}, },
groups = {cracky=1, dig_generic = 3}, groups = {cracky=1, dig_generic = 3},
is_ground_content = false,
on_rotate = minetest.get_modpath("screwdriver") and screwdriver.disallow, on_rotate = minetest.get_modpath("screwdriver") and screwdriver.disallow,
after_place_node = function(pos, placer, itemstack) after_place_node = function(pos, placer, itemstack)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
@ -1154,6 +1190,7 @@ minetest.register_node("scifi_nodes:glassscreen", {
} }
}, },
groups = {cracky=1, oddly_breakable_by_hand=1}, groups = {cracky=1, oddly_breakable_by_hand=1},
is_ground_content = false,
sounds = scifi_nodes.node_sound_glass_defaults(), sounds = scifi_nodes.node_sound_glass_defaults(),
}) })
@ -1186,6 +1223,7 @@ minetest.register_node("scifi_nodes:widescreen", {
} }
}, },
groups = {cracky=1, oddly_breakable_by_hand=1}, groups = {cracky=1, oddly_breakable_by_hand=1},
is_ground_content = false,
sounds = scifi_nodes.node_sound_defaults(), sounds = scifi_nodes.node_sound_defaults(),
}) })
@ -1217,6 +1255,7 @@ minetest.register_node("scifi_nodes:tallscreen", {
} }
}, },
groups = {cracky=1, oddly_breakable_by_hand=1}, groups = {cracky=1, oddly_breakable_by_hand=1},
is_ground_content = false,
sounds = scifi_nodes.node_sound_defaults(), sounds = scifi_nodes.node_sound_defaults(),
}) })
@ -1238,6 +1277,7 @@ minetest.register_node("scifi_nodes:windowpanel", {
} }
}, },
groups = {cracky=1, dig_generic = 3}, groups = {cracky=1, dig_generic = 3},
is_ground_content = false,
on_place = minetest.rotate_node, on_place = minetest.rotate_node,
sounds = scifi_nodes.node_sound_glass_defaults(), sounds = scifi_nodes.node_sound_glass_defaults(),
}) })

246
nodenames.txt Normal file
View File

@ -0,0 +1,246 @@
scifi_nodes:liquid_pipe
scifi_nodes:light
scifi_nodes:blackdmg
scifi_nodes:bluemetal
scifi_nodes:blackpipe
scifi_nodes:white_pad
scifi_nodes:green_light
scifi_nodes:glass
scifi_nodes:pad
scifi_nodes:rough
scifi_nodes:protected_switch_on
scifi_nodes:rock
scifi_nodes:greentubes
scifi_nodes:slope_gblock
scifi_nodes:greytile
scifi_nodes:dent
scifi_nodes:screen2
scifi_nodes:octbl_pane_offset
scifi_nodes:octppl_pane_offset
scifi_nodes:grnpipe
scifi_nodes:doomengine
scifi_nodes:egg
scifi_nodes:ultra_white
scifi_nodes:octppl_pane_double
scifi_nodes:cover
scifi_nodes:laptop_closed
scifi_nodes:discs
scifi_nodes:switch_on
scifi_nodes:Doom_door_closed
scifi_nodes:glass_pane
scifi_nodes:disc
scifi_nodes:whtlightbnd
scifi_nodes:light_dynamic
scifi_nodes:slope_wallpipe
scifi_nodes:greenbar
scifi_nodes:blue_square
scifi_nodes:blumetlight
scifi_nodes:white_door_opened
scifi_nodes:blue_door_closed
scifi_nodes:pipeside
scifi_nodes:keysmonitor
scifi_nodes:slope_pipe
scifi_nodes:grass
scifi_nodes:slope_alien
scifi_nodes:doomwall3
scifi_nodes:blumetstr
scifi_nodes:doomwall42
scifi_nodes:blue
scifi_nodes:greenlights2
scifi_nodes:slope_black
scifi_nodes:plant10
scifi_nodes:plant2
scifi_nodes:blklt2
scifi_nodes:plant9
scifi_nodes:screen
scifi_nodes:purple
scifi_nodes:white_door_closed
scifi_nodes:lightstp
scifi_nodes:slope_stripes
scifi_nodes:pplwndw
scifi_nodes:crate
scifi_nodes:octrng_pane_double
scifi_nodes:widescreen
scifi_nodes:blue_door_closed_top
scifi_nodes:slope_white2
scifi_nodes:table
scifi_nodes:green_door_opened
scifi_nodes:flower1
scifi_nodes:grnpipe2
scifi_nodes:slope_mesh
scifi_nodes:rock2
scifi_nodes:blackdmgstripe
scifi_nodes:ppllght
scifi_nodes:grey_square
scifi_nodes:plant6
scifi_nodes:powered_stand
scifi_nodes:pot
scifi_nodes:wall
scifi_nodes:greygreenbar
scifi_nodes:greenmetal
scifi_nodes:blacktile2
scifi_nodes:blackoct
scifi_nodes:black
scifi_nodes:slope_ultra_white
scifi_nodes:lighttop
scifi_nodes:blackplate
scifi_nodes:doomwall43
scifi_nodes:green_square
scifi_nodes:Doom_door_closed_top
scifi_nodes:box
scifi_nodes:green
scifi_nodes:plant8
scifi_nodes:whiteoct
scifi_nodes:wallpipe
scifi_nodes:flower4
scifi_nodes:slope_bluebars
scifi_nodes:engine
scifi_nodes:glass_pane_double
scifi_nodes:blacktile
scifi_nodes:glassscreen
scifi_nodes:octrng
scifi_nodes:plant1
scifi_nodes:computer
scifi_nodes:grassblk
scifi_nodes:tower
scifi_nodes:builder
scifi_nodes:pplwll2
scifi_nodes:doomwall431
scifi_nodes:black_screen
scifi_nodes:doomwall44
scifi_nodes:windowstraight2
scifi_nodes:gblock3
scifi_nodes:octgrn_pane_offset
scifi_nodes:glass_pane_offset
scifi_nodes:octppl_pane
scifi_nodes:octbl_pane_double
scifi_nodes:octgrn_pane_double
scifi_nodes:octgrn_pane
scifi_nodes:octrng_pane_offset
scifi_nodes:octrng_pane
scifi_nodes:digicode_off
scifi_nodes:octppl
scifi_nodes:digicode_on
scifi_nodes:palm_scanner_checking
scifi_nodes:palm_scanner_off
scifi_nodes:windowpanel
scifi_nodes:slope_vent
scifi_nodes:tallscreen
scifi_nodes:itemholder
scifi_nodes:capsule2
scifi_nodes:capsule3
scifi_nodes:slope_wall
scifi_nodes:slope_blklt2
scifi_nodes:plant5
scifi_nodes:slope_screen
scifi_nodes:windowcorner2
scifi_nodes:windowstraight
scifi_nodes:windowcorner
scifi_nodes:pipen
scifi_nodes:laptop_open
scifi_nodes:mesh2
scifi_nodes:microscope
scifi_nodes:liquid_pipe2
scifi_nodes:lightbars
scifi_nodes:doomwall4
scifi_nodes:lightbar
scifi_nodes:plant_trap
scifi_nodes:slope_purple
scifi_nodes:gloshroom
scifi_nodes:blue_door_opened_top
scifi_nodes:greenbar_animated
scifi_nodes:blue_door_opened
scifi_nodes:tile
scifi_nodes:flower3
scifi_nodes:green_door_opened_top
scifi_nodes:green_door_closed_top
scifi_nodes:blackvent
scifi_nodes:white_door_opened_top
scifi_nodes:white_door_closed_top
scifi_nodes:black_door_opened_top
scifi_nodes:black_door_opened
scifi_nodes:white_base
scifi_nodes:black_door_closed_top
scifi_nodes:black_door_closed
scifi_nodes:Doom_door_opened_top
scifi_nodes:stripes
scifi_nodes:Doom_door_opened
scifi_nodes:bluebars
scifi_nodes:doomwall41
scifi_nodes:green2
scifi_nodes:whitetile
scifi_nodes:rust
scifi_nodes:slope_glight
scifi_nodes:fan
scifi_nodes:red_square
scifi_nodes:greydots
scifi_nodes:green_door_closed
scifi_nodes:greenlights
scifi_nodes:mesh
scifi_nodes:black_mesh
scifi_nodes:gblock2
scifi_nodes:stripes2top
scifi_nodes:greybolts
scifi_nodes:octofloor
scifi_nodes:pplwll3
scifi_nodes:red
scifi_nodes:greenmetal2
scifi_nodes:junk
scifi_nodes:red_light
scifi_nodes:pplblk
scifi_nodes:super_white
scifi_nodes:bluwllight
scifi_nodes:blackvnt
scifi_nodes:pplwll4
scifi_nodes:slope_holes
scifi_nodes:vent2
scifi_nodes:bluetile
scifi_nodes:eyetree
scifi_nodes:octgrn
scifi_nodes:capsule
scifi_nodes:slope_bluemetal
scifi_nodes:slope_super_white
scifi_nodes:switch_off
scifi_nodes:octbl
scifi_nodes:doomlight
scifi_nodes:white2
scifi_nodes:forcefield
scifi_nodes:alienslope
scifi_nodes:slope_white
scifi_nodes:plant3
scifi_nodes:slope_mesh2
scifi_nodes:screen3
scifi_nodes:pipe
scifi_nodes:black_detail
scifi_nodes:slope_lightstripe
scifi_nodes:slope_blight
scifi_nodes:ladder
scifi_nodes:protected_switch_off
scifi_nodes:rfloor
scifi_nodes:white
scifi_nodes:gblock
scifi_nodes:octofloor2
scifi_nodes:slope_rough
scifi_nodes:octbl_pane
scifi_nodes:bluegrid
scifi_nodes:pot_lid
scifi_nodes:slope_rlight
scifi_nodes:bfloor
scifi_nodes:plant4
scifi_nodes:pot2
scifi_nodes:greybars
scifi_nodes:doomwall1
scifi_nodes:holes
scifi_nodes:black_lights
scifi_nodes:palm_scanner_on
scifi_nodes:plant7
scifi_nodes:flower2
scifi_nodes:slope_greenmetal
scifi_nodes:blink
scifi_nodes:slope_grey
scifi_nodes:grey
scifi_nodes:pplwll
scifi_nodes:stripes2
scifi_nodes:slope_blight2
scifi_nodes:monitorwall
scifi_nodes:doomwall2

View File

@ -38,7 +38,8 @@
"description": "rough metal" "description": "rough metal"
}, },
"lighttop": { "lighttop": {
"description": "metal block" "description": "metal block",
"slat": true
}, },
"red": { "red": {
"description": "red lines" "description": "red lines"
@ -49,8 +50,15 @@
"vent2": { "vent2": {
"description": "vent" "description": "vent"
}, },
"vent3": {
"description": "transparent vent",
"texture_name": "vent2",
"texture_modifier": "^[makealpha:33,33,33",
"drawtype": "glasslike"
},
"stripes": { "stripes": {
"description": "hazard stripes" "description": "hazard stripes",
"slat": true
}, },
"rust": { "rust": {
"description": "rusty metal" "description": "rusty metal"
@ -83,7 +91,8 @@
"description": "blue metal" "description": "blue metal"
}, },
"bluetile": { "bluetile": {
"description": "blue tile" "description": "blue tile",
"slat": true
}, },
"greytile": { "greytile": {
"description": "grey tile" "description": "grey tile"
@ -91,6 +100,12 @@
"mesh2": { "mesh2": {
"description": "metal floormesh" "description": "metal floormesh"
}, },
"mesh3": {
"description": "transparent metal floormesh",
"texture_name": "mesh",
"texture_modifier": "^[contrast:10:-50^[makealpha:0,0,0",
"drawtype": "glasslike"
},
"pipe": { "pipe": {
"description": "wall pipe" "description": "wall pipe"
}, },
@ -106,7 +121,8 @@
}, },
"whitetile": { "whitetile": {
"description": "white tile 2", "description": "white tile 2",
"colorable": true "colorable": true,
"slat": true
}, },
"black_detail": { "black_detail": {
"description": "black detail" "description": "black detail"
@ -172,11 +188,13 @@
}, },
"octofloor": { "octofloor": {
"description": "Doom floor", "description": "Doom floor",
"sounds": "stone" "sounds": "stone",
"paramtype2": "none"
}, },
"octofloor2": { "octofloor2": {
"description": "Brown Doom floor", "description": "Brown Doom floor",
"sounds": "stone" "sounds": "stone",
"paramtype2": "none"
}, },
"doomwall1": { "doomwall1": {
"description": "Doom wall 1" "description": "Doom wall 1"
@ -206,7 +224,8 @@
"description": "Doom wall 4.4" "description": "Doom wall 4.4"
}, },
"blackdmg": { "blackdmg": {
"description": "Damaged black wall" "description": "Damaged black wall",
"slat": true
}, },
"blackdmgstripe": { "blackdmgstripe": {
"description": "Damaged black wall(stripes)" "description": "Damaged black wall(stripes)"
@ -252,7 +271,8 @@
"description": "Purple wall 4" "description": "Purple wall 4"
}, },
"pplblk": { "pplblk": {
"description": "Purple tile" "description": "Purple tile",
"slat": true
}, },
"purple": { "purple": {
"description": "Purple node" "description": "Purple node"

View File

@ -1,15 +1,17 @@
local has_unifieddyes_mod = minetest.get_modpath("unifieddyes") local has_unifieddyes_mod = minetest.get_modpath("unifieddyes")
local has_moreblocks_mod = minetest.get_modpath("moreblocks") local has_moreblocks_mod = minetest.get_modpath("moreblocks")
local has_slats_mod = minetest.get_modpath("slats")
--nodes --nodes
minetest.register_node("scifi_nodes:grassblk", { minetest.register_node("scifi_nodes:grassblk", {
description = "Dirt With Alien Grass", description = "Dirt With Alien Grass",
tiles = {"scifi_nodes_grass.png^[colorize:cyan:80", "scifi_nodes_dirt.png", tiles = {"scifi_nodes_grass_top.png^[colorize:cyan:80", "scifi_nodes_dirt.png",
{name = "scifi_nodes_dirt.png^(scifi_nodes_grass_side.png^[colorize:cyan:80)", {name = "scifi_nodes_dirt.png^(scifi_nodes_grass_side.png^[colorize:cyan:80)",
tileable_vertical = false}}, tileable_vertical = false}},
light_source = 2, light_source = 2,
groups = {crumbly=1, oddly_breakable_by_hand=1, soil=1}, groups = {crumbly=1, oddly_breakable_by_hand=1, soil=1},
is_ground_content = false,
sounds = scifi_nodes.node_sound_dirt_defaults({ sounds = scifi_nodes.node_sound_dirt_defaults({
footstep = scifi_nodes.node_sound_plant_defaults().footstep, footstep = scifi_nodes.node_sound_plant_defaults().footstep,
}) })
@ -29,6 +31,7 @@ minetest.register_node("scifi_nodes:light", {
light_source = 10, light_source = 10,
paramtype = "light", paramtype = "light",
groups = {cracky=1, dig_generic = 3}, groups = {cracky=1, dig_generic = 3},
is_ground_content = false,
sounds = scifi_nodes.node_sound_metal_defaults(), sounds = scifi_nodes.node_sound_metal_defaults(),
}) })
@ -41,6 +44,7 @@ minetest.register_node("scifi_nodes:rfloor", {
paramtype2 = "facedir", paramtype2 = "facedir",
light_source = 10, light_source = 10,
groups = {cracky=1, dig_generic = 3}, groups = {cracky=1, dig_generic = 3},
is_ground_content = false,
sounds = scifi_nodes.node_sound_metal_defaults() sounds = scifi_nodes.node_sound_metal_defaults()
}) })
@ -53,6 +57,7 @@ minetest.register_node("scifi_nodes:bfloor", {
paramtype2 = "facedir", paramtype2 = "facedir",
light_source = 10, light_source = 10,
groups = {cracky=1, dig_generic = 3}, groups = {cracky=1, dig_generic = 3},
is_ground_content = false,
sounds = scifi_nodes.node_sound_metal_defaults() sounds = scifi_nodes.node_sound_metal_defaults()
}) })
@ -70,6 +75,7 @@ minetest.register_node("scifi_nodes:stripes2", {
}, },
paramtype = "light", paramtype = "light",
groups = {cracky=1, dig_generic = 3}, groups = {cracky=1, dig_generic = 3},
is_ground_content = false,
sounds = scifi_nodes.node_sound_metal_defaults() sounds = scifi_nodes.node_sound_metal_defaults()
}) })
@ -85,7 +91,8 @@ minetest.register_node("scifi_nodes:gblock", {
"scifi_nodes_gblock.png" "scifi_nodes_gblock.png"
}, },
paramtype = "light", paramtype = "light",
groups = {cracky=1, dig_generic = 3}; groups = {cracky=1, dig_generic = 3},
is_ground_content = false,
sounds = scifi_nodes.node_sound_metal_defaults() sounds = scifi_nodes.node_sound_metal_defaults()
}) })
@ -103,6 +110,7 @@ minetest.register_node("scifi_nodes:gblock2", {
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
groups = {cracky=1, dig_generic = 3}, groups = {cracky=1, dig_generic = 3},
is_ground_content = false,
sounds = scifi_nodes.node_sound_metal_defaults() sounds = scifi_nodes.node_sound_metal_defaults()
}) })
@ -120,6 +128,7 @@ minetest.register_node("scifi_nodes:gblock3", {
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
groups = {cracky=1, dig_generic = 3}, groups = {cracky=1, dig_generic = 3},
is_ground_content = false,
sounds = scifi_nodes.node_sound_metal_defaults() sounds = scifi_nodes.node_sound_metal_defaults()
}) })
@ -139,6 +148,7 @@ minetest.register_node("scifi_nodes:green_light", {
light_source = 10, light_source = 10,
paramtype = "light", paramtype = "light",
groups = {cracky=1, dig_generic = 3}, groups = {cracky=1, dig_generic = 3},
is_ground_content = false,
sounds = scifi_nodes.node_sound_glass_defaults() sounds = scifi_nodes.node_sound_glass_defaults()
}) })
@ -156,6 +166,7 @@ minetest.register_node("scifi_nodes:red_light", {
light_source = 10, light_source = 10,
paramtype = "light", paramtype = "light",
groups = {cracky=1, dig_generic = 3}, groups = {cracky=1, dig_generic = 3},
is_ground_content = false,
sounds = scifi_nodes.node_sound_glass_defaults() sounds = scifi_nodes.node_sound_glass_defaults()
}) })
@ -172,6 +183,7 @@ minetest.register_node("scifi_nodes:discs", {
}, },
paramtype = "light", paramtype = "light",
groups = {cracky=1, dig_generic = 3}, groups = {cracky=1, dig_generic = 3},
is_ground_content = false,
sounds = scifi_nodes.node_sound_metal_defaults() sounds = scifi_nodes.node_sound_metal_defaults()
}) })
@ -186,6 +198,7 @@ minetest.register_node("scifi_nodes:disc", {
wield_image = "scifi_nodes_disc.png", wield_image = "scifi_nodes_disc.png",
paramtype = "light", paramtype = "light",
groups = {cracky=1, dig_generic = 3}, groups = {cracky=1, dig_generic = 3},
is_ground_content = false,
sounds = scifi_nodes.node_sound_defaults(), sounds = scifi_nodes.node_sound_defaults(),
}) })
@ -202,6 +215,7 @@ minetest.register_node("scifi_nodes:greenbar_animated", {
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
groups = {cracky=1, dig_generic = 3}, groups = {cracky=1, dig_generic = 3},
is_ground_content = false,
light_source = 10, light_source = 10,
sounds = scifi_nodes.node_sound_glass_defaults(), sounds = scifi_nodes.node_sound_glass_defaults(),
on_place = minetest.rotate_node on_place = minetest.rotate_node
@ -216,6 +230,7 @@ minetest.register_node("scifi_nodes:blink", {
}}, }},
paramtype = "light", paramtype = "light",
groups = {cracky=1, dig_generic = 3}, groups = {cracky=1, dig_generic = 3},
is_ground_content = false,
light_source = 5, light_source = 5,
sounds = scifi_nodes.node_sound_glass_defaults() sounds = scifi_nodes.node_sound_glass_defaults()
}) })
@ -229,6 +244,7 @@ minetest.register_node("scifi_nodes:black_lights", {
}}, }},
paramtype = "light", paramtype = "light",
groups = {cracky=1, dig_generic = 3}, groups = {cracky=1, dig_generic = 3},
is_ground_content = false,
sounds = scifi_nodes.node_sound_metal_defaults() sounds = scifi_nodes.node_sound_metal_defaults()
}) })
@ -241,6 +257,7 @@ minetest.register_node("scifi_nodes:black_screen", {
}}, }},
paramtype = "light", paramtype = "light",
groups = {cracky=1, dig_generic = 3}, groups = {cracky=1, dig_generic = 3},
is_ground_content = false,
light_source = 1, light_source = 1,
sounds = scifi_nodes.node_sound_metal_defaults() sounds = scifi_nodes.node_sound_metal_defaults()
}) })
@ -254,6 +271,7 @@ minetest.register_node("scifi_nodes:screen", {
}}, }},
paramtype = "light", paramtype = "light",
groups = {cracky=1, dig_generic = 3}, groups = {cracky=1, dig_generic = 3},
is_ground_content = false,
light_source = 5, light_source = 5,
sounds = scifi_nodes.node_sound_glass_defaults() sounds = scifi_nodes.node_sound_glass_defaults()
}) })
@ -267,6 +285,7 @@ minetest.register_node("scifi_nodes:screen2", {
}}, }},
paramtype = "light", paramtype = "light",
groups = {cracky=1, dig_generic = 3}, groups = {cracky=1, dig_generic = 3},
is_ground_content = false,
light_source = 5, light_source = 5,
sounds = scifi_nodes.node_sound_glass_defaults() sounds = scifi_nodes.node_sound_glass_defaults()
}) })
@ -287,6 +306,7 @@ minetest.register_node("scifi_nodes:white_pad", {
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
groups = {cracky=1, dig_generic = 3}, groups = {cracky=1, dig_generic = 3},
is_ground_content = false,
sounds = scifi_nodes.node_sound_metal_defaults() sounds = scifi_nodes.node_sound_metal_defaults()
}) })
@ -304,6 +324,7 @@ minetest.register_node("scifi_nodes:white_base", {
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
groups = {cracky=1, dig_generic = 3}, groups = {cracky=1, dig_generic = 3},
is_ground_content = false,
sounds = scifi_nodes.node_sound_glass_defaults() sounds = scifi_nodes.node_sound_glass_defaults()
}) })
@ -321,6 +342,7 @@ minetest.register_node("scifi_nodes:grnpipe", {
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
groups = {cracky=1, dig_generic = 3}, groups = {cracky=1, dig_generic = 3},
is_ground_content = false,
sounds = scifi_nodes.node_sound_metal_defaults(), sounds = scifi_nodes.node_sound_metal_defaults(),
on_place = minetest.rotate_node on_place = minetest.rotate_node
}) })
@ -340,13 +362,14 @@ minetest.register_node("scifi_nodes:grnpipe2", {
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
groups = {cracky=1, dig_generic = 3}, groups = {cracky=1, dig_generic = 3},
is_ground_content = false,
sounds = scifi_nodes.node_sound_metal_defaults(), sounds = scifi_nodes.node_sound_metal_defaults(),
on_place = minetest.rotate_node on_place = minetest.rotate_node
}) })
minetest.register_node("scifi_nodes:octrng", { minetest.register_node("scifi_nodes:octrng", {
description = "Orange Octagon Glass", description = "Orange Octagon Glass",
sunlight_propagates = false, sunlight_propagates = true,
drawtype = "glasslike", drawtype = "glasslike",
tiles = { tiles = {
"scifi_nodes_octrng.png", "scifi_nodes_octrng.png",
@ -356,12 +379,13 @@ minetest.register_node("scifi_nodes:octrng", {
use_texture_alpha = "blend", use_texture_alpha = "blend",
light_source = 10, light_source = 10,
groups = {cracky=2, dig_generic = 3}, groups = {cracky=2, dig_generic = 3},
is_ground_content = false,
sounds = scifi_nodes.node_sound_glass_defaults(), sounds = scifi_nodes.node_sound_glass_defaults(),
}) })
minetest.register_node("scifi_nodes:octgrn", { minetest.register_node("scifi_nodes:octgrn", {
description = "Green Octagon Glass", description = "Green Octagon Glass",
sunlight_propagates = false, sunlight_propagates = true,
drawtype = "glasslike", drawtype = "glasslike",
tiles = { tiles = {
"scifi_nodes_octgrn.png", "scifi_nodes_octgrn.png",
@ -371,12 +395,13 @@ minetest.register_node("scifi_nodes:octgrn", {
use_texture_alpha = "blend", use_texture_alpha = "blend",
light_source = 10, light_source = 10,
groups = {cracky=2, dig_generic = 3}, groups = {cracky=2, dig_generic = 3},
is_ground_content = false,
sounds = scifi_nodes.node_sound_glass_defaults(), sounds = scifi_nodes.node_sound_glass_defaults(),
}) })
minetest.register_node("scifi_nodes:octbl", { minetest.register_node("scifi_nodes:octbl", {
description = "Blue Octagon Glass", description = "Blue Octagon Glass",
sunlight_propagates = false, sunlight_propagates = true,
drawtype = "glasslike", drawtype = "glasslike",
tiles = { tiles = {
"scifi_nodes_octbl.png", "scifi_nodes_octbl.png",
@ -386,12 +411,13 @@ minetest.register_node("scifi_nodes:octbl", {
use_texture_alpha = "blend", use_texture_alpha = "blend",
light_source = 10, light_source = 10,
groups = {cracky=2, dig_generic = 3}, groups = {cracky=2, dig_generic = 3},
is_ground_content = false,
sounds = scifi_nodes.node_sound_glass_defaults(), sounds = scifi_nodes.node_sound_glass_defaults(),
}) })
minetest.register_node("scifi_nodes:octppl", { minetest.register_node("scifi_nodes:octppl", {
description = "Purple Octagon Glass", description = "Purple Octagon Glass",
sunlight_propagates = false, sunlight_propagates = true,
drawtype = "glasslike", drawtype = "glasslike",
tiles = { tiles = {
"scifi_nodes_octppl.png", "scifi_nodes_octppl.png",
@ -401,13 +427,14 @@ minetest.register_node("scifi_nodes:octppl", {
use_texture_alpha = "blend", use_texture_alpha = "blend",
light_source = 10, light_source = 10,
groups = {cracky=2, dig_generic = 3}, groups = {cracky=2, dig_generic = 3},
is_ground_content = false,
sounds = scifi_nodes.node_sound_glass_defaults(), sounds = scifi_nodes.node_sound_glass_defaults(),
}) })
if has_unifieddyes_mod then if has_unifieddyes_mod then
minetest.register_node("scifi_nodes:octwht", { minetest.register_node("scifi_nodes:octwht", {
description = "Octagon Glass", description = "Octagon Glass",
sunlight_propagates = false, sunlight_propagates = true,
drawtype = "glasslike", drawtype = "glasslike",
tiles = { tiles = {
"scifi_nodes_octwht.png", "scifi_nodes_octwht.png",
@ -422,6 +449,7 @@ if has_unifieddyes_mod then
dig_generic = 3, dig_generic = 3,
ud_param2_colorable = 1 ud_param2_colorable = 1
}, },
is_ground_content = false,
sounds = scifi_nodes.node_sound_glass_defaults(), sounds = scifi_nodes.node_sound_glass_defaults(),
on_construct = unifieddyes.on_construct, on_construct = unifieddyes.on_construct,
on_dig = unifieddyes.on_dig on_dig = unifieddyes.on_dig
@ -440,6 +468,7 @@ minetest.register_node("scifi_nodes:tower", {
inventory_image = "scifi_nodes_tower.png", inventory_image = "scifi_nodes_tower.png",
paramtype = "light", paramtype = "light",
groups = {cracky=2, dig_generic = 3}, groups = {cracky=2, dig_generic = 3},
is_ground_content = false,
sounds = scifi_nodes.node_sound_metal_defaults() sounds = scifi_nodes.node_sound_metal_defaults()
}) })
@ -458,6 +487,7 @@ minetest.register_node("scifi_nodes:junk", {
"scifi_nodes_junk.png" "scifi_nodes_junk.png"
}, },
groups = {snappy=1, oddly_breakable_by_hand=1, liquid=3, dig_immediate=1}, groups = {snappy=1, oddly_breakable_by_hand=1, liquid=3, dig_immediate=1},
is_ground_content = false,
}) })
@ -475,6 +505,7 @@ minetest.register_node("scifi_nodes:blumetlight", {
light_source = 10, light_source = 10,
paramtype = "light", paramtype = "light",
groups = {cracky=1, dig_generic = 3}, groups = {cracky=1, dig_generic = 3},
is_ground_content = false,
sounds = scifi_nodes.node_sound_glass_defaults() sounds = scifi_nodes.node_sound_glass_defaults()
}) })
@ -488,6 +519,7 @@ minetest.register_node("scifi_nodes:lightstp", {
light_source = minetest.LIGHT_MAX, light_source = minetest.LIGHT_MAX,
paramtype = "light", paramtype = "light",
groups = {cracky=1, dig_generic = 3}, groups = {cracky=1, dig_generic = 3},
is_ground_content = false,
sounds = scifi_nodes.node_sound_glass_defaults() sounds = scifi_nodes.node_sound_glass_defaults()
}) })
@ -500,6 +532,7 @@ minetest.register_node("scifi_nodes:blklt2", {
light_source = 10, light_source = 10,
paramtype = "light", paramtype = "light",
groups = {cracky=1, dig_generic = 3}, groups = {cracky=1, dig_generic = 3},
is_ground_content = false,
sounds = scifi_nodes.node_sound_metal_defaults() sounds = scifi_nodes.node_sound_metal_defaults()
}) })
@ -512,6 +545,7 @@ minetest.register_node("scifi_nodes:blumetstr", {
light_source = 10, light_source = 10,
paramtype = "light", paramtype = "light",
groups = {cracky=1, dig_generic = 3}, groups = {cracky=1, dig_generic = 3},
is_ground_content = false,
sounds = scifi_nodes.node_sound_metal_defaults() sounds = scifi_nodes.node_sound_metal_defaults()
}) })
@ -525,6 +559,7 @@ minetest.register_node("scifi_nodes:glass", {
use_texture_alpha = "blend", use_texture_alpha = "blend",
paramtype = "light", paramtype = "light",
groups = {cracky=1, dig_generic = 3}, groups = {cracky=1, dig_generic = 3},
is_ground_content = false,
sounds = scifi_nodes.node_sound_glass_defaults() sounds = scifi_nodes.node_sound_glass_defaults()
}) })
@ -537,6 +572,7 @@ minetest.register_node("scifi_nodes:whtlightbnd", {
light_source = 10, light_source = 10,
paramtype = "light", paramtype = "light",
groups = {cracky=1, dig_generic = 3}, groups = {cracky=1, dig_generic = 3},
is_ground_content = false,
sounds = scifi_nodes.node_sound_metal_defaults() sounds = scifi_nodes.node_sound_metal_defaults()
}) })
@ -562,13 +598,20 @@ for name, def in pairs(nodes) do
tiles = {"scifi_nodes_" .. def.texture_name .. ".png"} tiles = {"scifi_nodes_" .. def.texture_name .. ".png"}
end end
-- optional texture modifier
if def.texture_modifier then
tiles[1] = tiles[1] .. def.texture_modifier
end
-- Node Definition -- Node Definition
local node_def = { local node_def = {
description = def.description, description = def.description,
drawtype = def.drawtype or "normal",
tiles = tiles, tiles = tiles,
groups = {cracky=1, dig_generic = 3}, groups = {cracky=1, dig_generic = 3},
is_ground_content = false,
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = def.paramtype2 or "facedir",
light_source = def.light, light_source = def.light,
sounds = sounds, sounds = sounds,
} }
@ -593,6 +636,7 @@ for name, def in pairs(nodes) do
ud_param2_colorable = 1, ud_param2_colorable = 1,
not_in_creative_inventory = 1 not_in_creative_inventory = 1
}, },
is_ground_content = false,
palette = "unifieddyes_palette_extended.png", palette = "unifieddyes_palette_extended.png",
paramtype = "light", paramtype = "light",
paramtype2 = "color", paramtype2 = "color",
@ -616,4 +660,15 @@ for name, def in pairs(nodes) do
sounds = sounds, sounds = sounds,
}) })
end end
if has_slats_mod and def.slat then
slats.register_slat(
name,
"scifi_nodes:" .. name,
table.copy(node_def.groups),
"scifi_nodes_" .. name .. ".png^slats_slat_overlay.png^[makealpha:255,126,126",
def.description .. " Slat",
sounds
)
end
end end

View File

@ -59,6 +59,7 @@ minetest.register_node("scifi_nodes:palm_scanner_off", {
paramtype = "light", paramtype = "light",
paramtype2 = "wallmounted", paramtype2 = "wallmounted",
groups = {cracky=1, oddly_breakable_by_hand=1, mesecon_needs_receiver = 1}, groups = {cracky=1, oddly_breakable_by_hand=1, mesecon_needs_receiver = 1},
is_ground_content = false,
mesecons = { mesecons = {
receptor = { receptor = {
state = (has_mesecons and mesecon.state.off) state = (has_mesecons and mesecon.state.off)
@ -82,6 +83,7 @@ minetest.register_node("scifi_nodes:palm_scanner_checking", {
paramtype = "light", paramtype = "light",
paramtype2 = "wallmounted", paramtype2 = "wallmounted",
groups = {cracky=1, oddly_breakable_by_hand=1, not_in_creative_inventory=1, mesecon_needs_receiver = 1}, groups = {cracky=1, oddly_breakable_by_hand=1, not_in_creative_inventory=1, mesecon_needs_receiver = 1},
is_ground_content = false,
drop = "scifi_nodes:palm_scanner_off", drop = "scifi_nodes:palm_scanner_off",
sounds = scifi_nodes.node_sound_metal_defaults() sounds = scifi_nodes.node_sound_metal_defaults()
}) })
@ -100,6 +102,7 @@ minetest.register_node("scifi_nodes:palm_scanner_on", {
paramtype2 = "wallmounted", paramtype2 = "wallmounted",
light_source = 5, light_source = 5,
groups = {cracky=1, oddly_breakable_by_hand=1, not_in_creative_inventory=1, mesecon_needs_receiver = 1}, groups = {cracky=1, oddly_breakable_by_hand=1, not_in_creative_inventory=1, mesecon_needs_receiver = 1},
is_ground_content = false,
drop = "scifi_nodes:palm_scanner_off", drop = "scifi_nodes:palm_scanner_off",
mesecons = { mesecons = {
receptor = { receptor = {

View File

@ -46,6 +46,7 @@ minetest.register_node("scifi_nodes:protected_switch_on", {
not_in_creative_inventory = 1, not_in_creative_inventory = 1,
mesecon_needs_receiver = 1 mesecon_needs_receiver = 1
}, },
is_ground_content = false,
mesecons = { mesecons = {
receptor = { receptor = {
state = (has_mesecons and mesecon.state.on) state = (has_mesecons and mesecon.state.on)
@ -73,6 +74,7 @@ minetest.register_node("scifi_nodes:protected_switch_off", {
oddly_breakable_by_hand = 1, oddly_breakable_by_hand = 1,
mesecon_needs_receiver = 1 mesecon_needs_receiver = 1
}, },
is_ground_content = false,
mesecons = { mesecons = {
receptor = { receptor = {
state = (has_mesecons and mesecon.state.off) state = (has_mesecons and mesecon.state.off)

View File

@ -39,6 +39,7 @@ minetest.register_node("scifi_nodes:switch_on", {
not_in_creative_inventory = 1, not_in_creative_inventory = 1,
mesecon_needs_receiver = 1 mesecon_needs_receiver = 1
}, },
is_ground_content = false,
mesecons = { mesecons = {
receptor = { receptor = {
state = (has_mesecons and mesecon.state.on) state = (has_mesecons and mesecon.state.on)
@ -66,6 +67,7 @@ minetest.register_node("scifi_nodes:switch_off", {
oddly_breakable_by_hand = 1, oddly_breakable_by_hand = 1,
mesecon_needs_receiver = 1 mesecon_needs_receiver = 1
}, },
is_ground_content = false,
mesecons = { mesecons = {
receptor = { receptor = {
state = (has_mesecons and mesecon.state.off) state = (has_mesecons and mesecon.state.off)

View File

@ -1,25 +0,0 @@
#!/bin/sh
# Spins up a test world to ensure proper working recipes and registrations
CWD=$(dirname $0)
cd ${CWD}/../
CFG=/tmp/minetest.conf
MTDIR=/tmp/mt
WORLDDIR=${MTDIR}/worlds/world
cat <<EOF > ${CFG}
# empty
EOF
mkdir -p ${WORLDDIR}
chmod 777 ${MTDIR} -R
docker run --rm -i \
-v ${CFG}:/etc/minetest/minetest.conf:ro \
-v ${MTDIR}:/var/lib/minetest/.minetest \
-v $(pwd)/:/var/lib/minetest/.minetest/worlds/world/worldmods/scifi_nodes \
-v $(pwd)/test/test_mod/:/var/lib/minetest/.minetest/worlds/world/worldmods/scifi_nodes_test \
--network host \
registry.gitlab.com/minetest/minetest/server:5.2.0
test -f ${WORLDDIR}/integration_test.json && exit 0 || exit 1

View File

@ -1,40 +0,0 @@
minetest.log("warning", "[TEST] integration-test enabled!")
-- those mods have to be present
local assert_mods = {
"scifi_nodes"
}
-- those nodes have to be present
local assert_nodes = {
"scifi_nodes:crate",
"scifi_nodes:door1a"
}
minetest.register_on_mods_loaded(function()
minetest.after(0, function()
-- check mods
for _, modname in ipairs(assert_mods) do
if not minetest.get_modpath(modname) then
error("Mod not present: " .. modname)
end
end
-- check nodes
for _, nodename in ipairs(assert_nodes) do
if not minetest.registered_nodes[nodename] then
error("Node not present: " .. nodename)
end
end
local data = minetest.write_json({ success = true }, true);
local file = io.open(minetest.get_worldpath().."/integration_test.json", "w" );
if file then
file:write(data)
file:close()
end
minetest.request_shutdown("success")
end)
end)

View File

@ -1,2 +0,0 @@
name = scifi_nodes_test
depends = scifi_nodes

Binary file not shown.

Before

Width:  |  Height:  |  Size: 461 B

After

Width:  |  Height:  |  Size: 252 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 461 B