mirror of
https://github.com/D00Med/scifi_nodes.git
synced 2025-07-19 00:10:21 +02:00
Compare commits
22 Commits
master
...
cc5f1bea5a
Author | SHA1 | Date | |
---|---|---|---|
cc5f1bea5a | |||
e7864a4a86 | |||
c649c290ab | |||
4f2d2a304f | |||
8816db8ecf | |||
5b903a6e78 | |||
eb231d7ca7 | |||
2fd4de11c0 | |||
b88b7349a5 | |||
c30ae4b3bd | |||
6cf45fcd43 | |||
1ded358e04 | |||
ecfaa4714a | |||
c341cb8a20 | |||
d66e04f9b1 | |||
d3d6a7bf79 | |||
e34fdde795 | |||
1993068ed1 | |||
436f51ab0d | |||
749d59a530 | |||
bd58dbc48b | |||
4eaba4f6e1 |
15
.github/workflows/integration-test.yml
vendored
Normal file
15
.github/workflows/integration-test.yml
vendored
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
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
|
17
.github/workflows/luacheck.yml
vendored
17
.github/workflows/luacheck.yml
vendored
@ -1,10 +1,17 @@
|
|||||||
name: luacheck
|
name: luacheck
|
||||||
|
|
||||||
on: [push, pull_request]
|
on: [push, pull_request]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
luacheck:
|
build:
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- uses: actions/checkout@v1
|
||||||
uses: actions/checkout@main
|
- name: apt
|
||||||
- name: Luacheck
|
run: sudo apt-get install -y luarocks
|
||||||
uses: lunarmodules/luacheck@master
|
- name: luacheck install
|
||||||
|
run: luarocks install --local luacheck
|
||||||
|
- name: luacheck run
|
||||||
|
run: $HOME/.luarocks/bin/luacheck ./
|
||||||
|
12
.github/workflows/test.yml
vendored
12
.github/workflows/test.yml
vendored
@ -1,12 +0,0 @@
|
|||||||
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
|
|
17
.luacheckrc
17
.luacheckrc
@ -1,14 +1,20 @@
|
|||||||
std = "min+minetest"
|
|
||||||
|
|
||||||
unused_args = false
|
unused_args = false
|
||||||
|
max_line_length = 180
|
||||||
|
|
||||||
globals = {
|
globals = {
|
||||||
"scifi_nodes"
|
"scifi_nodes"
|
||||||
}
|
}
|
||||||
|
|
||||||
read_globals = {
|
read_globals = {
|
||||||
|
-- Stdlib
|
||||||
|
string = {fields = {"split"}},
|
||||||
|
table = {fields = {"copy", "getn"}},
|
||||||
|
|
||||||
|
-- Minetest
|
||||||
|
"vector", "ItemStack",
|
||||||
|
"dump",
|
||||||
|
|
||||||
-- optional deps
|
-- optional deps
|
||||||
"advtrains",
|
|
||||||
"default",
|
"default",
|
||||||
"stairsplus",
|
"stairsplus",
|
||||||
"xpanes",
|
"xpanes",
|
||||||
@ -17,8 +23,5 @@ read_globals = {
|
|||||||
"mesecon",
|
"mesecon",
|
||||||
"unifieddyes",
|
"unifieddyes",
|
||||||
"letters",
|
"letters",
|
||||||
"signs_api",
|
"stealthnode"
|
||||||
"stealthnode",
|
|
||||||
"slats",
|
|
||||||
"mtt"
|
|
||||||
}
|
}
|
||||||
|
@ -3,8 +3,7 @@
|
|||||||
# scifi_nodes
|
# scifi_nodes
|
||||||
|
|
||||||

|

|
||||||

|

|
||||||
[](https://coveralls.io/github/D00Med/scifi_nodes?branch=master)
|
|
||||||
[](https://content.minetest.net/packages/D00Med/scifi_nodes/)
|
[](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.
|
||||||
@ -43,15 +42,12 @@ 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_top.png https://github.com/minetest/minetest_game
|
* scifi_nodes_grass.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
|
||||||
|
|
||||||
CC0
|
CC0
|
||||||
* scifi_nodes_digicode.ogg https://freesound.org/people/benjaminharveydesign/sounds/315921/
|
* scifi_nodes_digicode.ogg https://freesound.org/people/benjaminharveydesign/sounds/315921/
|
||||||
* scifi_nodes_ambience_fan.ogg https://freesound.org/people/itinerantmonk108/sounds/554430/
|
|
||||||
* scifi_nodes_ambience_vent.ogg https://freesound.org/people/kentspublicdomain/sounds/324665/
|
|
||||||
* scifi_nodes_ambience_engine.ogg https://freesound.org/people/firestorm185/sounds/423221/
|
|
||||||
|
|
||||||
|
|
||||||
# Contributors:
|
# Contributors:
|
||||||
|
259
access_card.lua
259
access_card.lua
@ -1,259 +0,0 @@
|
|||||||
local FORMSPEC_NAME = "scifi_nodes:access_card_configure"
|
|
||||||
|
|
||||||
local function create_id()
|
|
||||||
local template = "xxxxxx"
|
|
||||||
return string.gsub(template, '[x]', function ()
|
|
||||||
return string.format('%x', math.random(0, 0xf))
|
|
||||||
end)
|
|
||||||
end
|
|
||||||
|
|
||||||
local function get_door_access_table(meta)
|
|
||||||
local str = meta:get_string("access")
|
|
||||||
if str == "" then
|
|
||||||
-- no config
|
|
||||||
return {}
|
|
||||||
else
|
|
||||||
return minetest.deserialize(str) or {}
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local function set_door_access_table(meta, at)
|
|
||||||
if next(at) then
|
|
||||||
meta:set_string("access", minetest.serialize(at))
|
|
||||||
else
|
|
||||||
meta:set_string("access", "")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function scifi_nodes.door_check_access_card(node_pos, itemstack, player)
|
|
||||||
local node_meta = minetest.get_meta(node_pos)
|
|
||||||
local access_table = get_door_access_table(node_meta)
|
|
||||||
if not next(access_table) then
|
|
||||||
-- access not restricted
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
|
|
||||||
if not minetest.is_player(player) then
|
|
||||||
-- not a player, restrict access
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
local playername = player:get_player_name()
|
|
||||||
|
|
||||||
if itemstack:get_name() ~= "scifi_nodes:access_card" then
|
|
||||||
minetest.chat_send_player(playername, minetest.colorize("#ff0000", "Access denied: no access card detected!"))
|
|
||||||
minetest.sound_play("scifi_nodes_scanner_refused", { pos = node_pos, max_hear_distance = 10 })
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
local item_meta = itemstack:get_meta()
|
|
||||||
local id = item_meta:get_string("id")
|
|
||||||
if id == "" then
|
|
||||||
minetest.chat_send_player(playername, minetest.colorize("#ff0000", "Access denied: unconfigured access card"))
|
|
||||||
minetest.sound_play("scifi_nodes_scanner_refused", { pos = node_pos, max_hear_distance = 10 })
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
if not access_table[id] then
|
|
||||||
minetest.chat_send_player(playername, minetest.colorize("#ff0000", "Access denied: invalid access card"))
|
|
||||||
minetest.sound_play("scifi_nodes_scanner_refused", { pos = node_pos, max_hear_distance = 10 })
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
minetest.sound_play("scifi_nodes_scanner_granted", { pos = node_pos, max_hear_distance = 10 })
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
|
|
||||||
-- using a card against a door toggles the access to it
|
|
||||||
local function on_use(itemstack, player, pointed_thing)
|
|
||||||
local playername = player:get_player_name()
|
|
||||||
local pos = pointed_thing.under
|
|
||||||
|
|
||||||
if not pos then
|
|
||||||
-- nothing selected
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
if minetest.is_protected(pos, playername) then
|
|
||||||
-- protected
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
local node = minetest.get_node(pos)
|
|
||||||
local node_def = minetest.registered_nodes[node.name]
|
|
||||||
if not node_def.groups or not node_def.groups.scifi_nodes_door then
|
|
||||||
-- incompatible node
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
local item_meta = itemstack:get_meta()
|
|
||||||
local card_id = item_meta:get_string("id")
|
|
||||||
if card_id == "" then
|
|
||||||
minetest.chat_send_player(playername, "Access card is unconfigured")
|
|
||||||
return
|
|
||||||
end
|
|
||||||
local card_name = item_meta:get_string("name")
|
|
||||||
|
|
||||||
local node_meta = minetest.get_meta(pos)
|
|
||||||
local access_table = get_door_access_table(node_meta)
|
|
||||||
|
|
||||||
if access_table[card_id] then
|
|
||||||
-- remove access
|
|
||||||
access_table[card_id] = nil
|
|
||||||
minetest.chat_send_player(playername, "Revoked access to card-id '" .. card_id .. "'")
|
|
||||||
minetest.sound_play("scifi_nodes_scanner_refused", { pos = pos, max_hear_distance = 10 })
|
|
||||||
else
|
|
||||||
-- grant access
|
|
||||||
access_table[card_id] = card_name
|
|
||||||
minetest.chat_send_player(playername, "Granted access to card-id '" .. card_id .. "'")
|
|
||||||
minetest.sound_play("scifi_nodes_scanner_granted", { pos = pos, max_hear_distance = 10 })
|
|
||||||
end
|
|
||||||
|
|
||||||
local msg = ""
|
|
||||||
if next(access_table) then
|
|
||||||
msg = msg .. "Current registered cards: "
|
|
||||||
for id, name in pairs(access_table) do
|
|
||||||
msg = msg .. "Name: '" .. name .. "' ID: '" .. id .. "' / "
|
|
||||||
end
|
|
||||||
else
|
|
||||||
-- access table is empty
|
|
||||||
msg = "No access-card left in access-table, door is free to use"
|
|
||||||
end
|
|
||||||
minetest.chat_send_player(playername, msg)
|
|
||||||
|
|
||||||
-- set new access table
|
|
||||||
set_door_access_table(node_meta, access_table)
|
|
||||||
end
|
|
||||||
|
|
||||||
local function configure_access_card(meta, name)
|
|
||||||
local id = meta:get_string("id")
|
|
||||||
if id == "" then
|
|
||||||
-- set new id
|
|
||||||
id = create_id()
|
|
||||||
meta:set_string("id", id)
|
|
||||||
end
|
|
||||||
|
|
||||||
meta:set_string("name", name)
|
|
||||||
meta:set_string("description", "Access card '" .. name .. "' (id: '" .. id .. "')")
|
|
||||||
end
|
|
||||||
|
|
||||||
-- right-click with a card for rename/configuration
|
|
||||||
local function on_secondary_use(itemstack, player, pointed_thing)
|
|
||||||
local meta = itemstack:get_meta()
|
|
||||||
if meta:get_string("id") == "" then
|
|
||||||
-- initial configuration
|
|
||||||
configure_access_card(meta, "")
|
|
||||||
end
|
|
||||||
local name = meta:get_string("name")
|
|
||||||
|
|
||||||
minetest.show_formspec(player:get_player_name(), FORMSPEC_NAME, [[
|
|
||||||
size[10,1.4]
|
|
||||||
real_coordinates[true]
|
|
||||||
field[0.1,0.4;7,0.8;name;Name;]] .. minetest.formspec_escape(name) .. [[]
|
|
||||||
button_exit[7.3,0.4;2.5,0.8;save;Save]
|
|
||||||
]])
|
|
||||||
|
|
||||||
return itemstack
|
|
||||||
end
|
|
||||||
|
|
||||||
minetest.register_on_player_receive_fields(function(player, formname, fields)
|
|
||||||
if formname ~= FORMSPEC_NAME then
|
|
||||||
-- wrong formspec
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
if not fields.save and not fields.key_enter_field then
|
|
||||||
-- quit
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
|
|
||||||
local itemstack = player:get_wielded_item()
|
|
||||||
if itemstack:get_name() ~= "scifi_nodes:access_card" then
|
|
||||||
-- invalid item
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
|
|
||||||
local meta = itemstack:get_meta()
|
|
||||||
configure_access_card(meta, fields.name or "")
|
|
||||||
player:set_wielded_item(itemstack)
|
|
||||||
end)
|
|
||||||
|
|
||||||
minetest.register_craftitem("scifi_nodes:access_card", {
|
|
||||||
description = "Access card (unconfigured)",
|
|
||||||
inventory_image = "scifi_nodes_access_card.png",
|
|
||||||
palette = "unifieddyes_palette_extended.png",
|
|
||||||
stack_max = 1,
|
|
||||||
paramtype2 = "color",
|
|
||||||
on_use = on_use,
|
|
||||||
on_secondary_use = on_secondary_use,
|
|
||||||
groups = {
|
|
||||||
ud_param2_colorable = 1
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
-- initial recipe
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "scifi_nodes:access_card",
|
|
||||||
recipe = {
|
|
||||||
{"scifi_nodes:white2", "", ""},
|
|
||||||
{"scifi_nodes:white_pad", "", ""},
|
|
||||||
{"scifi_nodes:white2", "", ""}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
-- copy recipe
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "scifi_nodes:access_card",
|
|
||||||
recipe = {
|
|
||||||
{"scifi_nodes:access_card", "scifi_nodes:white_pad", ""},
|
|
||||||
{"", "", ""},
|
|
||||||
{"", "", ""}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_on_craft(function(itemstack, player, old_craft_grid, craft_inv)
|
|
||||||
if itemstack:get_name() ~= "scifi_nodes:access_card" then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
local original
|
|
||||||
local index
|
|
||||||
for i = 1, #old_craft_grid do
|
|
||||||
if old_craft_grid[i]:get_name() == "scifi_nodes:access_card" then
|
|
||||||
original = old_craft_grid[i]
|
|
||||||
index = i
|
|
||||||
break
|
|
||||||
end
|
|
||||||
end
|
|
||||||
if not original then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
-- copy metadata
|
|
||||||
local src_meta = original:get_meta()
|
|
||||||
local dst_meta = itemstack:get_meta()
|
|
||||||
local copy_fields = {"id", "name", "description"}
|
|
||||||
for _, fieldname in ipairs(copy_fields) do
|
|
||||||
dst_meta:set_string(fieldname, src_meta:get_string(fieldname))
|
|
||||||
end
|
|
||||||
|
|
||||||
if old_craft_grid[2]:get_name() == "scifi_nodes:white_pad" then
|
|
||||||
-- keep original item if the copy-recipe is used
|
|
||||||
craft_inv:set_stack("craft", index, original)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
if minetest.get_modpath("unifieddyes") then
|
|
||||||
-- add colored crafts
|
|
||||||
unifieddyes.register_color_craft({
|
|
||||||
output = "scifi_nodes:access_card",
|
|
||||||
palette = "extended",
|
|
||||||
neutral_node = "scifi_nodes:access_card",
|
|
||||||
recipe = {
|
|
||||||
"NEUTRAL_NODE",
|
|
||||||
"MAIN_DYE"
|
|
||||||
},
|
|
||||||
type = "shapeless"
|
|
||||||
})
|
|
||||||
|
|
||||||
end
|
|
73
ambience.lua
73
ambience.lua
@ -1,73 +0,0 @@
|
|||||||
|
|
||||||
-- currently playing sounds per mapblock
|
|
||||||
-- mapblock_pos[number]
|
|
||||||
local currently_playing = {}
|
|
||||||
|
|
||||||
-- clear the currently playing tracker every few seconds
|
|
||||||
local function clear_currently_playing()
|
|
||||||
currently_playing = {}
|
|
||||||
minetest.after(5, clear_currently_playing)
|
|
||||||
end
|
|
||||||
minetest.after(5, clear_currently_playing)
|
|
||||||
|
|
||||||
-- mapblock resolution
|
|
||||||
local function get_key(pos)
|
|
||||||
return minetest.pos_to_string(vector.round(vector.divide(pos, 16)))
|
|
||||||
end
|
|
||||||
|
|
||||||
local function add_currently_playing(pos, value)
|
|
||||||
local key = get_key(pos)
|
|
||||||
local count = currently_playing[key]
|
|
||||||
if not count then
|
|
||||||
-- new entry
|
|
||||||
count = value
|
|
||||||
else
|
|
||||||
-- update entry
|
|
||||||
count = count + value
|
|
||||||
end
|
|
||||||
currently_playing[key] = count
|
|
||||||
end
|
|
||||||
|
|
||||||
-- limit plaing sounds per mapblock
|
|
||||||
local function can_play(pos)
|
|
||||||
local count = currently_playing[get_key(pos)]
|
|
||||||
return not count or count < 25
|
|
||||||
end
|
|
||||||
|
|
||||||
-- register ambience sounds with node-timer
|
|
||||||
function scifi_nodes.register_ambience(nodename, soundname, opts)
|
|
||||||
assert(opts)
|
|
||||||
opts.interval = opts.interval or 60
|
|
||||||
|
|
||||||
local function play(pos)
|
|
||||||
minetest.sound_play(soundname ,{
|
|
||||||
max_hear_distance = opts.max_hear_distance or 16,
|
|
||||||
pos = pos,
|
|
||||||
gain = opts.gain or 0.7
|
|
||||||
})
|
|
||||||
end
|
|
||||||
|
|
||||||
minetest.override_item(nodename, {
|
|
||||||
on_timer = function(pos)
|
|
||||||
local timer = minetest.get_node_timer(pos)
|
|
||||||
|
|
||||||
if not can_play(pos) then
|
|
||||||
-- too many sounds playing, recheck again soon
|
|
||||||
timer:start(1)
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
-- increment usage count
|
|
||||||
add_currently_playing(pos, 1)
|
|
||||||
play(pos)
|
|
||||||
|
|
||||||
-- restart timer
|
|
||||||
timer:start(opts.interval)
|
|
||||||
end,
|
|
||||||
on_construct = function(pos)
|
|
||||||
play(pos)
|
|
||||||
local timer = minetest.get_node_timer(pos)
|
|
||||||
timer:start(opts.interval)
|
|
||||||
end
|
|
||||||
})
|
|
||||||
end
|
|
31
builder.lua
31
builder.lua
@ -86,26 +86,25 @@ 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(),
|
||||||
})
|
})
|
||||||
|
11
chest.lua
11
chest.lua
@ -1,21 +1,20 @@
|
|||||||
local has_default = minetest.get_modpath("default")
|
|
||||||
|
|
||||||
--chest code from default(Copyright (C) 2012 celeron55, Perttu Ahola <celeron55@gmail.com>)
|
--chest code from default(Copyright (C) 2012 celeron55, Perttu Ahola <celeron55@gmail.com>)
|
||||||
local chest_formspec =
|
local chest_formspec =
|
||||||
"size[8,9]" ..
|
"size[8,9]" ..
|
||||||
(has_default and default.gui_bg or "") ..
|
default.gui_bg ..
|
||||||
(has_default and default.gui_bg_img or "") ..
|
default.gui_bg_img ..
|
||||||
(has_default and default.gui_slots or "") ..
|
default.gui_slots ..
|
||||||
"list[current_name;main;0,0.3;8,4;]" ..
|
"list[current_name;main;0,0.3;8,4;]" ..
|
||||||
"list[current_player;main;0,4.85;8,1;]" ..
|
"list[current_player;main;0,4.85;8,1;]" ..
|
||||||
"list[current_player;main;0,6.08;8,3;8]" ..
|
"list[current_player;main;0,6.08;8,3;8]" ..
|
||||||
"listring[current_name;main]" ..
|
"listring[current_name;main]" ..
|
||||||
"listring[current_player;main]" ..
|
"listring[current_player;main]" ..
|
||||||
(has_default and default.get_hotbar_bg(0,4.85) or "")
|
default.get_hotbar_bg(0,4.85)
|
||||||
|
|
||||||
-- Helper functions
|
-- Helper functions
|
||||||
local function drop_chest_stuff()
|
local function drop_chest_stuff()
|
||||||
return function(pos, _, oldmetadata)
|
return function(pos, oldnode, oldmetadata, digger)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
meta:from_table(oldmetadata)
|
meta:from_table(oldmetadata)
|
||||||
local inv = meta:get_inventory()
|
local inv = meta:get_inventory()
|
||||||
|
26
common.lua
26
common.lua
@ -1,5 +1,7 @@
|
|||||||
|
|
||||||
function scifi_nodes.get_switch_rules(param2)
|
|
||||||
|
scifi_nodes.get_switch_rules = function(param2)
|
||||||
|
|
||||||
-- param2 = 2
|
-- param2 = 2
|
||||||
local rules = {
|
local rules = {
|
||||||
{x=1, y=-1, z=-1},
|
{x=1, y=-1, z=-1},
|
||||||
@ -8,7 +10,7 @@ function scifi_nodes.get_switch_rules(param2)
|
|||||||
{x=0, y=-1, z=1},
|
{x=0, y=-1, z=1},
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Left and right when looking to +y ?
|
-- Left and right when looking to +y ?
|
||||||
if param2 == 3 then
|
if param2 == 3 then
|
||||||
rules = mesecon.rotate_rules_right(mesecon.rotate_rules_right (rules))
|
rules = mesecon.rotate_rules_right(mesecon.rotate_rules_right (rules))
|
||||||
elseif param2 == 4 then
|
elseif param2 == 4 then
|
||||||
@ -18,23 +20,3 @@ function scifi_nodes.get_switch_rules(param2)
|
|||||||
end
|
end
|
||||||
return rules
|
return rules
|
||||||
end
|
end
|
||||||
|
|
||||||
scifi_nodes.slope_box = {
|
|
||||||
type = "fixed",
|
|
||||||
fixed = {
|
|
||||||
{-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, 0, 0.5, 0.25, 0.5},
|
|
||||||
{-0.5, 0.25, 0.25, 0.5, 0.5, 0.5}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
scifi_nodes.slope_box_simple = {
|
|
||||||
type = "fixed",
|
|
||||||
fixed = {
|
|
||||||
{-0.5, -0.5, -0.5, 0.5, -0.25, -0.25},
|
|
||||||
{-0.5, -0.25, -0.25, 0.5, 0, 0},
|
|
||||||
{-0.5, 0, 0, 0.5, 0.25, 0.25},
|
|
||||||
{-0.5, 0.25, 0.25, 0.5, 0.5, 0.5}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
83
crafts.lua
83
crafts.lua
@ -234,7 +234,7 @@ minetest.register_craft({
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
-- 4 electronic screen from 4 plastic, 1 lightbar, 2 cyan dye, 2
|
-- 4 electronic screen from 4 plastic, 1 trap glow glass, 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 lightbar, 2 green dye, 2
|
-- 4 electronic screen2 from 4 plastic, 1 trap glow glass, 2 green dye, 2
|
||||||
-- microcontroller
|
-- microcontroller
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "scifi_nodes:screen2 4",
|
output = "scifi_nodes:screen2 4",
|
||||||
@ -256,18 +256,6 @@ 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",
|
||||||
@ -343,16 +331,6 @@ 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",
|
||||||
@ -755,16 +733,6 @@ 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",
|
||||||
@ -928,16 +896,6 @@ 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",
|
||||||
@ -1677,25 +1635,6 @@ 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 = {
|
||||||
@ -1842,21 +1781,3 @@ 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"}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
@ -11,7 +11,7 @@ local digicode_context = {}
|
|||||||
|
|
||||||
-- after_place_node, use by digicode and palm_scanner
|
-- after_place_node, use by digicode and palm_scanner
|
||||||
-- placer is a player object
|
-- placer is a player object
|
||||||
local function set_owner(pos, placer)
|
local function set_owner(pos, placer, itemstack, pointed_thing)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
meta:set_string("owner", placer:get_player_name())
|
meta:set_string("owner", placer:get_player_name())
|
||||||
meta:set_string("code", secret_code)
|
meta:set_string("code", secret_code)
|
||||||
@ -48,7 +48,7 @@ local function update_code(pos, code)
|
|||||||
meta:set_string("code", code)
|
meta:set_string("code", code)
|
||||||
end
|
end
|
||||||
|
|
||||||
local function show_digicode_formspec(pos, _, player)
|
local function show_digicode_formspec(pos, node, player, itemstack, pointed_thing)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
local owner = meta:get_string("owner")
|
local owner = meta:get_string("owner")
|
||||||
local current_code = meta:get_string("code")
|
local current_code = meta:get_string("code")
|
||||||
@ -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,7 +122,6 @@ 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 = {
|
||||||
@ -146,7 +145,6 @@ 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)
|
||||||
|
41
doors.lua
41
doors.lua
@ -120,7 +120,7 @@ for _, current_door in ipairs(doors) do
|
|||||||
return itemstack;
|
return itemstack;
|
||||||
end
|
end
|
||||||
|
|
||||||
local function afterdestruct(pos)
|
local function afterdestruct(pos, oldnode)
|
||||||
minetest.set_node({x=pos.x,y=pos.y+1,z=pos.z},{name="air"})
|
minetest.set_node({x=pos.x,y=pos.y+1,z=pos.z},{name="air"})
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -148,18 +148,14 @@ for _, current_door in ipairs(doors) do
|
|||||||
|
|
||||||
local adjacent = minetest.get_node({x=x, y=y, z=z})
|
local adjacent = minetest.get_node({x=x, y=y, z=z})
|
||||||
if adjacent.name == target_opposite then
|
if adjacent.name == target_opposite then
|
||||||
minetest.swap_node({x=x, y=y, z=z}, {name=target, param2 = adjacent.param2})
|
minetest.set_node({x=x, y=y, z=z}, {name=target, param2 = adjacent.param2})
|
||||||
minetest.swap_node({x=x, y=y+1, z=z}, {name=target_top, param2 = adjacent.param2})
|
minetest.set_node({x=x, y=y+1, z=z}, {name=target_top, param2 = adjacent.param2})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
local function open_door(pos, node, player, itemstack)
|
local function open_door(pos, node)
|
||||||
if not scifi_nodes.door_check_access_card(pos, itemstack, player) then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
-- play sound
|
-- play sound
|
||||||
minetest.sound_play(sound,{
|
minetest.sound_play(sound,{
|
||||||
max_hear_distance = 16,
|
max_hear_distance = 16,
|
||||||
@ -169,20 +165,20 @@ for _, current_door in ipairs(doors) do
|
|||||||
|
|
||||||
local timer = minetest.get_node_timer(pos)
|
local timer = minetest.get_node_timer(pos)
|
||||||
|
|
||||||
minetest.swap_node(pos, {name=opened, param2=node.param2})
|
minetest.set_node(pos, {name=opened, param2=node.param2})
|
||||||
minetest.swap_node({x=pos.x,y=pos.y+1,z=pos.z}, {name=opened_top, param2=node.param2})
|
minetest.set_node({x=pos.x,y=pos.y+1,z=pos.z}, {name=opened_top, param2=node.param2})
|
||||||
|
|
||||||
change_adjacent(opened, pos, node)
|
change_adjacent(opened, pos, node)
|
||||||
|
|
||||||
timer:start(3)
|
timer:start(3)
|
||||||
end
|
end
|
||||||
|
|
||||||
local function afterplace(pos)
|
local function afterplace(pos, placer, itemstack, pointed_thing)
|
||||||
local node = minetest.get_node(pos)
|
local node = minetest.get_node(pos)
|
||||||
minetest.set_node({x=pos.x,y=pos.y+1,z=pos.z},{name=opened_top,param2=node.param2})
|
minetest.set_node({x=pos.x,y=pos.y+1,z=pos.z},{name=opened_top,param2=node.param2})
|
||||||
end
|
end
|
||||||
|
|
||||||
local function ontimer(pos)
|
local function ontimer(pos, elapsed)
|
||||||
-- play sound
|
-- play sound
|
||||||
minetest.sound_play(sound,{
|
minetest.sound_play(sound,{
|
||||||
max_hear_distance = 16,
|
max_hear_distance = 16,
|
||||||
@ -192,8 +188,8 @@ for _, current_door in ipairs(doors) do
|
|||||||
|
|
||||||
local node = minetest.get_node(pos)
|
local node = minetest.get_node(pos)
|
||||||
|
|
||||||
minetest.swap_node(pos, {name=closed, param2=node.param2})
|
minetest.set_node(pos, {name=closed, param2=node.param2})
|
||||||
minetest.swap_node({x=pos.x,y=pos.y+1,z=pos.z}, {name=closed_top, param2=node.param2})
|
minetest.set_node({x=pos.x,y=pos.y+1,z=pos.z}, {name=closed_top, param2=node.param2})
|
||||||
|
|
||||||
change_adjacent(closed, pos, node)
|
change_adjacent(closed, pos, node)
|
||||||
end
|
end
|
||||||
@ -222,7 +218,7 @@ for _, current_door in ipairs(doors) do
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
local function nodig()
|
local function nodig(pos, digger)
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -246,11 +242,9 @@ for _, current_door in ipairs(doors) do
|
|||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
groups = {
|
groups = {
|
||||||
cracky = 3,
|
cracky = 3,
|
||||||
dig_generic = 3,
|
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 = {
|
||||||
@ -283,8 +277,7 @@ 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, door = 1},
|
groups = {cracky = 1, dig_generic = 3},
|
||||||
is_ground_content = false,
|
|
||||||
node_box = {
|
node_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {
|
fixed = {
|
||||||
@ -314,8 +307,7 @@ 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, door = 2},
|
groups = {cracky = 1, dig_generic = 3},
|
||||||
is_ground_content = false,
|
|
||||||
node_box = {
|
node_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {
|
fixed = {
|
||||||
@ -346,8 +338,7 @@ 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, door = 2},
|
groups = {cracky = 1, dig_generic = 3},
|
||||||
is_ground_content = false,
|
|
||||||
node_box = {
|
node_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {
|
fixed = {
|
||||||
|
@ -6,7 +6,6 @@ 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,
|
||||||
|
11
init.lua
11
init.lua
@ -14,17 +14,15 @@ end
|
|||||||
dofile(MP.."/common.lua")
|
dofile(MP.."/common.lua")
|
||||||
|
|
||||||
if minetest.get_modpath("default") then
|
if minetest.get_modpath("default") then
|
||||||
-- only load builder if the default mod is available
|
-- only load builder and chest if the default mod is available
|
||||||
-- the formspecs depend on it
|
-- the formspecs depend on it
|
||||||
dofile(MP.."/builder.lua")
|
dofile(MP.."/builder.lua")
|
||||||
|
dofile(MP.."/chest.lua")
|
||||||
end
|
end
|
||||||
|
|
||||||
dofile(MP.."/ambience.lua")
|
|
||||||
dofile(MP.."/chest.lua")
|
|
||||||
dofile(MP.."/plants.lua")
|
dofile(MP.."/plants.lua")
|
||||||
dofile(MP.."/models.lua")
|
dofile(MP.."/models.lua")
|
||||||
dofile(MP.."/nodes.lua")
|
dofile(MP.."/nodes.lua")
|
||||||
dofile(MP.."/access_card.lua")
|
|
||||||
dofile(MP.."/doors.lua")
|
dofile(MP.."/doors.lua")
|
||||||
dofile(MP.."/switch.lua")
|
dofile(MP.."/switch.lua")
|
||||||
dofile(MP.."/protected_switch.lua")
|
dofile(MP.."/protected_switch.lua")
|
||||||
@ -32,7 +30,6 @@ dofile(MP.."/nodeboxes.lua")
|
|||||||
dofile(MP.."/palm_scanner.lua")
|
dofile(MP.."/palm_scanner.lua")
|
||||||
dofile(MP.."/digicode.lua")
|
dofile(MP.."/digicode.lua")
|
||||||
dofile(MP.."/octagon_panes.lua")
|
dofile(MP.."/octagon_panes.lua")
|
||||||
dofile(MP.."/octagon_glass.lua")
|
|
||||||
dofile(MP.."/forcefield.lua")
|
dofile(MP.."/forcefield.lua")
|
||||||
dofile(MP.."/crafts.lua")
|
dofile(MP.."/crafts.lua")
|
||||||
|
|
||||||
@ -46,6 +43,4 @@ 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
|
minetest.log("action", "[scifi_nodes] loaded.")
|
||||||
dofile(MP .. "/mtt.lua")
|
|
||||||
end
|
|
||||||
|
6
mod.conf
6
mod.conf
@ -1,7 +1,6 @@
|
|||||||
name = scifi_nodes
|
name = scifi_nodes
|
||||||
description = Minetest mod that adds scifi themed blocks, doors, materials, plants and other assets.
|
description = Minetest mod that adds scifi themed blocks, doors, materials, plants and other assets.
|
||||||
optional_depends = """
|
optional_depends = """
|
||||||
advtrains,
|
|
||||||
default,
|
default,
|
||||||
xpanes,
|
xpanes,
|
||||||
mesecons,
|
mesecons,
|
||||||
@ -14,8 +13,5 @@ basic_materials,
|
|||||||
dye,
|
dye,
|
||||||
unifieddyes,
|
unifieddyes,
|
||||||
letters,
|
letters,
|
||||||
mesecons_stealthnode,
|
mesecons_stealthnode
|
||||||
mtt,
|
|
||||||
slats,
|
|
||||||
signs_api
|
|
||||||
"""
|
"""
|
||||||
|
25
models.lua
25
models.lua
@ -16,14 +16,29 @@ 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 = scifi_nodes.slope_box,
|
selection_box = {
|
||||||
collision_box = scifi_nodes.slope_box,
|
type = "fixed",
|
||||||
|
fixed = {
|
||||||
|
{-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, 0, 0.5, 0.25, 0.5},
|
||||||
|
{-0.5, 0.25, 0.25, 0.5, 0.5, 0.5}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
collision_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {
|
||||||
|
{-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, 0, 0.5, 0.25, 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,
|
||||||
})
|
})
|
||||||
@ -31,8 +46,8 @@ end
|
|||||||
|
|
||||||
-- register some blocks in stairsplus if available (part of moreblocks)
|
-- register some blocks in stairsplus if available (part of moreblocks)
|
||||||
scifi_nodes.register_slope("white2", "Plastic", {"scifi_nodes_white2.png",}, 0, "stone")
|
scifi_nodes.register_slope("white2", "Plastic", {"scifi_nodes_white2.png",}, 0, "stone")
|
||||||
scifi_nodes.register_slope("super_white", "Super Plastic", {"scifi_nodes_white2.png",}, 11, "stone")
|
scifi_nodes.register_slope("super_white", "Super Plastic", {"scifi_nodes_super_white.png",}, 11, "stone")
|
||||||
scifi_nodes.register_slope("ultra_white", "Super Plastic", {"scifi_nodes_white2.png",},minetest.LIGHT_MAX, "stone")
|
scifi_nodes.register_slope("ultra_white", "Super Plastic", {"scifi_nodes_ultra_white.png",}, minetest.LIGHT_MAX, "stone")
|
||||||
scifi_nodes.register_slope("black", "Black", {"scifi_nodes_black.png",}, 0)
|
scifi_nodes.register_slope("black", "Black", {"scifi_nodes_black.png",}, 0)
|
||||||
scifi_nodes.register_slope("white", "White", {"scifi_nodes_white.png",}, 0)
|
scifi_nodes.register_slope("white", "White", {"scifi_nodes_white.png",}, 0)
|
||||||
scifi_nodes.register_slope("grey", "Grey", {"scifi_nodes_grey.png",}, 0)
|
scifi_nodes.register_slope("grey", "Grey", {"scifi_nodes_grey.png",}, 0)
|
||||||
|
@ -1,12 +0,0 @@
|
|||||||
g top
|
|
||||||
v 0.500000 0.500000 0.500000
|
|
||||||
v -0.500000 0.500000 0.500000
|
|
||||||
v -0.500000 -0.500000 -0.500000
|
|
||||||
v 0.500000 -0.500000 -0.500000
|
|
||||||
vt 1.0000 1.0000
|
|
||||||
vt 0.0000 1.0000
|
|
||||||
vt 0.0000 0.0000
|
|
||||||
vt 1.0000 0.0000
|
|
||||||
vn 0.0000 0.7071 -0.7071
|
|
||||||
s off
|
|
||||||
f 2/1/1 1/2/1 4/3/1 3/4/1
|
|
2
mtt.lua
2
mtt.lua
@ -1,2 +0,0 @@
|
|||||||
|
|
||||||
mtt.validate_nodenames(minetest.get_modpath("scifi_nodes") .. "/nodenames.txt")
|
|
216
nodeboxes.lua
216
nodeboxes.lua
@ -19,7 +19,6 @@ 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 = {
|
||||||
@ -51,7 +50,6 @@ 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 = {
|
||||||
@ -84,7 +82,6 @@ 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 = {
|
||||||
@ -111,7 +108,6 @@ 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",
|
||||||
@ -131,14 +127,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", {
|
||||||
@ -154,7 +150,6 @@ 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()
|
||||||
@ -173,93 +168,92 @@ 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
|
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
|
|
||||||
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)
|
|
||||||
elseif meta:get_int("type") == 2 and position1 ~= nil and position2 ~= nil then
|
|
||||||
minetest.add_particlespawner(
|
|
||||||
25, --amount
|
|
||||||
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}, --maxpos
|
|
||||||
{x=0, y=0, z=0}, --minvel
|
|
||||||
{x=0, y=0, z=0}, --maxvel
|
|
||||||
{x=-0,y=1,z=-0}, --minacc
|
|
||||||
{x=0,y=2,z=0}, --maxacc
|
|
||||||
0.5, --minexptime
|
|
||||||
1, --maxexptime
|
|
||||||
2, --minsize
|
|
||||||
5, --maxsize
|
|
||||||
false, --collisiondetection
|
|
||||||
"scifi_nodes_tp_part.png" --texture
|
|
||||||
)
|
|
||||||
minetest.after(1, function()
|
|
||||||
local ppos = clicker:getpos()
|
|
||||||
if minetest.get_node({x=ppos.x, y=ppos.y, z=ppos.z}).name == "scifi_nodes:pad" then
|
|
||||||
clicker:setpos(position1)
|
|
||||||
end
|
|
||||||
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(position2, "__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 meta:get_int("type") == 2 and position1 ~= nil and position2 ~= nil then
|
||||||
|
minetest.add_particlespawner(
|
||||||
|
25, --amount
|
||||||
|
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}, --maxpos
|
||||||
|
{x=0, y=0, z=0}, --minvel
|
||||||
|
{x=0, y=0, z=0}, --maxvel
|
||||||
|
{x=-0,y=1,z=-0}, --minacc
|
||||||
|
{x=0,y=2,z=0}, --maxacc
|
||||||
|
0.5, --minexptime
|
||||||
|
1, --maxexptime
|
||||||
|
2, --minsize
|
||||||
|
5, --maxsize
|
||||||
|
false, --collisiondetection
|
||||||
|
"scifi_nodes_tp_part.png" --texture
|
||||||
|
)
|
||||||
|
minetest.after(1, function()
|
||||||
|
local ppos = clicker:getpos()
|
||||||
|
if minetest.get_node({x=ppos.x, y=ppos.y, z=ppos.z}).name == "scifi_nodes:pad" then
|
||||||
|
clicker:setpos(position1)
|
||||||
|
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(position1, "__builtin:item")
|
||||||
|
obj2:get_luaentity():set_item(item1)
|
||||||
|
obj:remove()
|
||||||
|
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
|
else minetest.chat_send_player(clicker_name, "Teleporter error!")
|
||||||
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 = {
|
||||||
@ -290,7 +284,6 @@ 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 = {
|
||||||
@ -317,7 +310,6 @@ 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 = {
|
||||||
@ -343,7 +335,6 @@ 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 = "",
|
||||||
@ -401,7 +392,6 @@ 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}
|
||||||
@ -436,7 +426,6 @@ 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}
|
||||||
@ -481,7 +470,6 @@ 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()
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -507,7 +495,6 @@ 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()
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -544,7 +531,6 @@ 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", {
|
||||||
@ -567,13 +553,12 @@ 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},
|
||||||
}},
|
}},
|
||||||
@ -590,13 +575,12 @@ minetest.register_node("scifi_nodes:liquid_pipe", {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
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",
|
||||||
@ -612,7 +596,6 @@ minetest.register_node("scifi_nodes:liquid_pipe2", {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
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()
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -643,7 +626,6 @@ 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()
|
||||||
@ -674,8 +656,6 @@ 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 = {
|
||||||
@ -685,8 +665,7 @@ 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", {
|
||||||
@ -710,7 +689,6 @@ 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(),
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -738,7 +716,6 @@ 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(),
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -767,7 +744,6 @@ 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(),
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -797,8 +773,7 @@ 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", {
|
||||||
@ -823,7 +798,6 @@ 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,
|
||||||
@ -851,7 +825,6 @@ 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,
|
||||||
@ -886,7 +859,6 @@ 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(),
|
||||||
})
|
})
|
||||||
@ -918,7 +890,6 @@ 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(),
|
||||||
})
|
})
|
||||||
@ -946,7 +917,6 @@ 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(),
|
||||||
})
|
})
|
||||||
@ -978,7 +948,6 @@ 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(),
|
||||||
})
|
})
|
||||||
@ -1006,7 +975,6 @@ 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(),
|
||||||
})
|
})
|
||||||
@ -1037,7 +1005,6 @@ 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})
|
||||||
@ -1068,7 +1035,6 @@ 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})
|
||||||
@ -1099,7 +1065,6 @@ 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})
|
||||||
@ -1130,7 +1095,6 @@ 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)
|
||||||
@ -1190,7 +1154,6 @@ 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(),
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -1223,7 +1186,6 @@ 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(),
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -1255,7 +1217,6 @@ 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(),
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -1277,7 +1238,6 @@ 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
246
nodenames.txt
@ -1,246 +0,0 @@
|
|||||||
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
|
|
92
nodes.json
92
nodes.json
@ -8,29 +8,20 @@
|
|||||||
"white2": {
|
"white2": {
|
||||||
"description": "plastic",
|
"description": "plastic",
|
||||||
"colorable": true,
|
"colorable": true,
|
||||||
"sounds": "stone",
|
"sounds": "stone"
|
||||||
"signs_banner": true,
|
|
||||||
"signs_banner_color": "#000"
|
|
||||||
},
|
},
|
||||||
"super_white": {
|
"super_white": {
|
||||||
"description": "Super Plastic",
|
"description": "Super Plastic",
|
||||||
"light": 11,
|
"light": 11,
|
||||||
"sounds": "stone",
|
"sounds": "stone"
|
||||||
"texture_name": "white2"
|
|
||||||
},
|
},
|
||||||
"ultra_white": {
|
"ultra_white": {
|
||||||
"description": "Ultra Plastic",
|
"description": "Ultra Plastic",
|
||||||
"light": 14,
|
"light": 14,
|
||||||
"sounds": "stone",
|
"sounds": "stone"
|
||||||
"texture_name": "white2"
|
|
||||||
},
|
},
|
||||||
"engine": {
|
"engine": {
|
||||||
"description": "Engine",
|
"description": "Engine"
|
||||||
"ambience": {
|
|
||||||
"scifi_nodes_ambience_engine": {
|
|
||||||
"interval": 16.1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"wall": {
|
"wall": {
|
||||||
"description": "metal wall"
|
"description": "metal wall"
|
||||||
@ -47,8 +38,7 @@
|
|||||||
"description": "rough metal"
|
"description": "rough metal"
|
||||||
},
|
},
|
||||||
"lighttop": {
|
"lighttop": {
|
||||||
"description": "metal block",
|
"description": "metal block"
|
||||||
"slat": true
|
|
||||||
},
|
},
|
||||||
"red": {
|
"red": {
|
||||||
"description": "red lines"
|
"description": "red lines"
|
||||||
@ -59,21 +49,8 @@
|
|||||||
"vent2": {
|
"vent2": {
|
||||||
"description": "vent"
|
"description": "vent"
|
||||||
},
|
},
|
||||||
"vent3": {
|
|
||||||
"description": "transparent vent",
|
|
||||||
"texture_name": "vent2",
|
|
||||||
"texture_modifier": "^[makealpha:33,33,33",
|
|
||||||
"drawtype": "glasslike",
|
|
||||||
"ambience": {
|
|
||||||
"scifi_nodes_ambience_vent": {
|
|
||||||
"interval": 4.2
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"stripes": {
|
"stripes": {
|
||||||
"description": "hazard stripes",
|
"description": "hazard stripes"
|
||||||
"slat": true,
|
|
||||||
"advtrains_platform": true
|
|
||||||
},
|
},
|
||||||
"rust": {
|
"rust": {
|
||||||
"description": "rusty metal"
|
"description": "rusty metal"
|
||||||
@ -82,8 +59,7 @@
|
|||||||
"description": "metal mesh"
|
"description": "metal mesh"
|
||||||
},
|
},
|
||||||
"black": {
|
"black": {
|
||||||
"description": "black wall",
|
"description": "black wall"
|
||||||
"signs_banner": true
|
|
||||||
},
|
},
|
||||||
"blackoct": {
|
"blackoct": {
|
||||||
"description": "black octagon"
|
"description": "black octagon"
|
||||||
@ -95,8 +71,7 @@
|
|||||||
"description": "black tile"
|
"description": "black tile"
|
||||||
},
|
},
|
||||||
"blacktile2": {
|
"blacktile2": {
|
||||||
"description": "black tile 2",
|
"description": "black tile 2"
|
||||||
"paramtype2": "none"
|
|
||||||
},
|
},
|
||||||
"blackvent": {
|
"blackvent": {
|
||||||
"description": "black vent"
|
"description": "black vent"
|
||||||
@ -105,12 +80,10 @@
|
|||||||
"description": "blue bars"
|
"description": "blue bars"
|
||||||
},
|
},
|
||||||
"bluemetal": {
|
"bluemetal": {
|
||||||
"description": "blue metal",
|
"description": "blue metal"
|
||||||
"signs_banner": true
|
|
||||||
},
|
},
|
||||||
"bluetile": {
|
"bluetile": {
|
||||||
"description": "blue tile",
|
"description": "blue tile"
|
||||||
"slat": true
|
|
||||||
},
|
},
|
||||||
"greytile": {
|
"greytile": {
|
||||||
"description": "grey tile"
|
"description": "grey tile"
|
||||||
@ -118,13 +91,6 @@
|
|||||||
"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",
|
|
||||||
"sunlight_propagates": true
|
|
||||||
},
|
|
||||||
"pipe": {
|
"pipe": {
|
||||||
"description": "wall pipe"
|
"description": "wall pipe"
|
||||||
},
|
},
|
||||||
@ -140,8 +106,7 @@
|
|||||||
},
|
},
|
||||||
"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"
|
||||||
@ -153,8 +118,7 @@
|
|||||||
"description": "red metal block"
|
"description": "red metal block"
|
||||||
},
|
},
|
||||||
"grey_square": {
|
"grey_square": {
|
||||||
"description": "grey metal block",
|
"description": "grey metal block"
|
||||||
"paramtype2": "none"
|
|
||||||
},
|
},
|
||||||
"blue_square": {
|
"blue_square": {
|
||||||
"description": "blue metal block"
|
"description": "blue metal block"
|
||||||
@ -167,8 +131,7 @@
|
|||||||
"colorable": true
|
"colorable": true
|
||||||
},
|
},
|
||||||
"greenmetal": {
|
"greenmetal": {
|
||||||
"description": "green metal wall",
|
"description": "green metal wall"
|
||||||
"signs_banner": true
|
|
||||||
},
|
},
|
||||||
"greenmetal2": {
|
"greenmetal2": {
|
||||||
"description": "green metal wall2"
|
"description": "green metal wall2"
|
||||||
@ -192,8 +155,7 @@
|
|||||||
"description": "green pipes"
|
"description": "green pipes"
|
||||||
},
|
},
|
||||||
"grey": {
|
"grey": {
|
||||||
"description": "grey wall",
|
"description": "grey wall"
|
||||||
"signs_banner": true
|
|
||||||
},
|
},
|
||||||
"greybolts": {
|
"greybolts": {
|
||||||
"description": "grey wall bolts"
|
"description": "grey wall bolts"
|
||||||
@ -210,13 +172,11 @@
|
|||||||
},
|
},
|
||||||
"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"
|
||||||
@ -246,9 +206,7 @@
|
|||||||
"description": "Doom wall 4.4"
|
"description": "Doom wall 4.4"
|
||||||
},
|
},
|
||||||
"blackdmg": {
|
"blackdmg": {
|
||||||
"description": "Damaged black wall",
|
"description": "Damaged black wall"
|
||||||
"slat": true,
|
|
||||||
"paramtype2": "none"
|
|
||||||
},
|
},
|
||||||
"blackdmgstripe": {
|
"blackdmgstripe": {
|
||||||
"description": "Damaged black wall(stripes)"
|
"description": "Damaged black wall(stripes)"
|
||||||
@ -275,12 +233,7 @@
|
|||||||
"light": 5
|
"light": 5
|
||||||
},
|
},
|
||||||
"fan": {
|
"fan": {
|
||||||
"description": "Fan",
|
"description": "Fan"
|
||||||
"ambience": {
|
|
||||||
"scifi_nodes_ambience_fan": {
|
|
||||||
"interval": 7
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"ppllght": {
|
"ppllght": {
|
||||||
"description": "Purple wall light",
|
"description": "Purple wall light",
|
||||||
@ -299,12 +252,10 @@
|
|||||||
"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"
|
||||||
"signs_banner": true
|
|
||||||
},
|
},
|
||||||
"rock": {
|
"rock": {
|
||||||
"description": "Moonstone",
|
"description": "Moonstone",
|
||||||
@ -320,7 +271,6 @@
|
|||||||
"description": "Black vent"
|
"description": "Black vent"
|
||||||
},
|
},
|
||||||
"blackplate": {
|
"blackplate": {
|
||||||
"description": "Black plate",
|
"description": "Black plate"
|
||||||
"paramtype2": "none"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
176
nodes.lua
176
nodes.lua
@ -1,19 +1,15 @@
|
|||||||
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")
|
|
||||||
local has_advtrains_mod = minetest.get_modpath("advtrains")
|
|
||||||
local has_signs_api_mod = minetest.get_modpath("signs_api")
|
|
||||||
|
|
||||||
--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_top.png^[colorize:cyan:80", "scifi_nodes_dirt.png",
|
tiles = {"scifi_nodes_grass.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,
|
||||||
})
|
})
|
||||||
@ -33,7 +29,6 @@ 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(),
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -46,7 +41,6 @@ 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()
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -59,7 +53,6 @@ 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()
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -77,7 +70,6 @@ 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()
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -93,8 +85,7 @@ 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()
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -112,7 +103,6 @@ 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()
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -130,7 +120,6 @@ 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()
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -150,7 +139,6 @@ 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()
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -168,7 +156,6 @@ 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()
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -185,7 +172,6 @@ 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()
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -200,7 +186,6 @@ 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(),
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -217,7 +202,6 @@ 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
|
||||||
@ -232,7 +216,6 @@ 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()
|
||||||
})
|
})
|
||||||
@ -246,7 +229,6 @@ 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()
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -259,7 +241,6 @@ 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()
|
||||||
})
|
})
|
||||||
@ -273,7 +254,6 @@ 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()
|
||||||
})
|
})
|
||||||
@ -287,7 +267,6 @@ 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()
|
||||||
})
|
})
|
||||||
@ -308,7 +287,6 @@ 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()
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -326,7 +304,6 @@ 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()
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -344,7 +321,6 @@ 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
|
||||||
})
|
})
|
||||||
@ -364,11 +340,94 @@ 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", {
|
||||||
|
description = "Orange Octagon Glass",
|
||||||
|
sunlight_propagates = false,
|
||||||
|
drawtype = "glasslike",
|
||||||
|
tiles = {
|
||||||
|
"scifi_nodes_octrng.png",
|
||||||
|
},
|
||||||
|
paramtype = "light",
|
||||||
|
paramtype2 = "facedir",
|
||||||
|
use_texture_alpha = "blend",
|
||||||
|
light_source = 10,
|
||||||
|
groups = {cracky=2, dig_generic = 3},
|
||||||
|
sounds = scifi_nodes.node_sound_glass_defaults(),
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("scifi_nodes:octgrn", {
|
||||||
|
description = "Green Octagon Glass",
|
||||||
|
sunlight_propagates = false,
|
||||||
|
drawtype = "glasslike",
|
||||||
|
tiles = {
|
||||||
|
"scifi_nodes_octgrn.png",
|
||||||
|
},
|
||||||
|
paramtype = "light",
|
||||||
|
paramtype2 = "facedir",
|
||||||
|
use_texture_alpha = "blend",
|
||||||
|
light_source = 10,
|
||||||
|
groups = {cracky=2, dig_generic = 3},
|
||||||
|
sounds = scifi_nodes.node_sound_glass_defaults(),
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("scifi_nodes:octbl", {
|
||||||
|
description = "Blue Octagon Glass",
|
||||||
|
sunlight_propagates = false,
|
||||||
|
drawtype = "glasslike",
|
||||||
|
tiles = {
|
||||||
|
"scifi_nodes_octbl.png",
|
||||||
|
},
|
||||||
|
paramtype = "light",
|
||||||
|
paramtype2 = "facedir",
|
||||||
|
use_texture_alpha = "blend",
|
||||||
|
light_source = 10,
|
||||||
|
groups = {cracky=2, dig_generic = 3},
|
||||||
|
sounds = scifi_nodes.node_sound_glass_defaults(),
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("scifi_nodes:octppl", {
|
||||||
|
description = "Purple Octagon Glass",
|
||||||
|
sunlight_propagates = false,
|
||||||
|
drawtype = "glasslike",
|
||||||
|
tiles = {
|
||||||
|
"scifi_nodes_octppl.png",
|
||||||
|
},
|
||||||
|
paramtype = "light",
|
||||||
|
paramtype2 = "facedir",
|
||||||
|
use_texture_alpha = "blend",
|
||||||
|
light_source = 10,
|
||||||
|
groups = {cracky=2, dig_generic = 3},
|
||||||
|
sounds = scifi_nodes.node_sound_glass_defaults(),
|
||||||
|
})
|
||||||
|
|
||||||
|
if has_unifieddyes_mod then
|
||||||
|
minetest.register_node("scifi_nodes:octwht", {
|
||||||
|
description = "Octagon Glass",
|
||||||
|
sunlight_propagates = false,
|
||||||
|
drawtype = "glasslike",
|
||||||
|
tiles = {
|
||||||
|
"scifi_nodes_octwht.png",
|
||||||
|
},
|
||||||
|
palette = "unifieddyes_palette_extended.png",
|
||||||
|
paramtype = "light",
|
||||||
|
paramtype2 = "color",
|
||||||
|
use_texture_alpha = "blend",
|
||||||
|
light_source = 10,
|
||||||
|
groups = {
|
||||||
|
cracky = 2,
|
||||||
|
dig_generic = 3,
|
||||||
|
ud_param2_colorable = 1
|
||||||
|
},
|
||||||
|
sounds = scifi_nodes.node_sound_glass_defaults(),
|
||||||
|
on_construct = unifieddyes.on_construct,
|
||||||
|
on_dig = unifieddyes.on_dig
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
minetest.register_node("scifi_nodes:tower", {
|
minetest.register_node("scifi_nodes:tower", {
|
||||||
description = "Wind tower",
|
description = "Wind tower",
|
||||||
sunlight_propagates = false,
|
sunlight_propagates = false,
|
||||||
@ -381,7 +440,6 @@ 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()
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -400,7 +458,6 @@ 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,
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@ -418,7 +475,6 @@ 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()
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -432,7 +488,6 @@ 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()
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -445,7 +500,6 @@ 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()
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -458,7 +512,6 @@ 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()
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -472,7 +525,6 @@ 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()
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -485,7 +537,6 @@ 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()
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -511,21 +562,13 @@ 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",
|
|
||||||
sunlight_propagates = def.sunlight_propagates,
|
|
||||||
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 = def.paramtype2 or "facedir",
|
paramtype2 = "facedir",
|
||||||
light_source = def.light,
|
light_source = def.light,
|
||||||
sounds = sounds,
|
sounds = sounds,
|
||||||
}
|
}
|
||||||
@ -538,8 +581,7 @@ for name, def in pairs(nodes) do
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- register node
|
-- register node
|
||||||
local nodename = "scifi_nodes:" .. name
|
minetest.register_node("scifi_nodes:"..name, node_def)
|
||||||
minetest.register_node(nodename , node_def)
|
|
||||||
|
|
||||||
-- unified dyes registration
|
-- unified dyes registration
|
||||||
if def.colorable and has_unifieddyes_mod then
|
if def.colorable and has_unifieddyes_mod then
|
||||||
@ -551,7 +593,6 @@ 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",
|
||||||
@ -575,45 +616,4 @@ for name, def in pairs(nodes) do
|
|||||||
sounds = sounds,
|
sounds = sounds,
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
if def.ambience then
|
|
||||||
for soundname, opts in pairs(def.ambience) do
|
|
||||||
scifi_nodes.register_ambience(nodename, soundname, opts)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- advtrains platform registration
|
|
||||||
if has_advtrains_mod and def.advtrains_platform then
|
|
||||||
advtrains.register_platform("scifi_nodes", "scifi_nodes:" .. name)
|
|
||||||
end
|
|
||||||
|
|
||||||
if has_signs_api_mod and def.signs_banner then
|
|
||||||
signs_api.register_sign("scifi_nodes", name .. "_banner", {
|
|
||||||
depth = 1/16,
|
|
||||||
width = 5,
|
|
||||||
height = 1,
|
|
||||||
entity_fields = {
|
|
||||||
maxlines = 1,
|
|
||||||
color = def.signs_banner_color or "#fff",
|
|
||||||
},
|
|
||||||
node_fields = {
|
|
||||||
visual_scale = 1,
|
|
||||||
description = name .. " banner",
|
|
||||||
tiles = tiles,
|
|
||||||
inventory_image = "scifi_nodes_" .. name .. ".png",
|
|
||||||
use_texture_alpha = "clip",
|
|
||||||
},
|
|
||||||
})
|
|
||||||
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
|
||||||
|
@ -1,53 +0,0 @@
|
|||||||
local has_unifieddyes_mod = minetest.get_modpath("unifieddyes")
|
|
||||||
|
|
||||||
local function register_glass(key, name)
|
|
||||||
local tiles = {"scifi_nodes_" .. key .. ".png"}
|
|
||||||
|
|
||||||
minetest.register_node("scifi_nodes:" .. key, {
|
|
||||||
description = name .. " Octagon Glass",
|
|
||||||
sunlight_propagates = true,
|
|
||||||
drawtype = "glasslike",
|
|
||||||
tiles = tiles,
|
|
||||||
paramtype = "light",
|
|
||||||
paramtype2 = "facedir",
|
|
||||||
use_texture_alpha = "blend",
|
|
||||||
light_source = 10,
|
|
||||||
groups = {
|
|
||||||
cracky = 2,
|
|
||||||
dig_generic = 3
|
|
||||||
},
|
|
||||||
is_ground_content = false,
|
|
||||||
sounds = scifi_nodes.node_sound_glass_defaults(),
|
|
||||||
})
|
|
||||||
end
|
|
||||||
|
|
||||||
register_glass("octppl", "Purple")
|
|
||||||
register_glass("octbl", "Blue")
|
|
||||||
register_glass("octgrn", "Green")
|
|
||||||
register_glass("octrng", "Orange")
|
|
||||||
register_glass("octwht", "White")
|
|
||||||
|
|
||||||
if has_unifieddyes_mod then
|
|
||||||
minetest.register_node("scifi_nodes:octwht", {
|
|
||||||
description = "Octagon Glass",
|
|
||||||
sunlight_propagates = true,
|
|
||||||
drawtype = "glasslike",
|
|
||||||
tiles = {
|
|
||||||
"scifi_nodes_octwht.png",
|
|
||||||
},
|
|
||||||
palette = "unifieddyes_palette_extended.png",
|
|
||||||
paramtype = "light",
|
|
||||||
paramtype2 = "color",
|
|
||||||
use_texture_alpha = "blend",
|
|
||||||
light_source = 10,
|
|
||||||
groups = {
|
|
||||||
cracky = 2,
|
|
||||||
dig_generic = 3,
|
|
||||||
ud_param2_colorable = 1
|
|
||||||
},
|
|
||||||
is_ground_content = false,
|
|
||||||
sounds = scifi_nodes.node_sound_glass_defaults(),
|
|
||||||
on_construct = unifieddyes.on_construct,
|
|
||||||
on_dig = unifieddyes.on_dig
|
|
||||||
})
|
|
||||||
end
|
|
@ -1,15 +1,13 @@
|
|||||||
|
|
||||||
local function register(basename, color, texture)
|
local function register(basename, description, texture)
|
||||||
local nodename_single = "scifi_nodes:" .. basename .. "_pane"
|
local nodename_single = "scifi_nodes:" .. basename .. "_pane"
|
||||||
local nodename_double = "scifi_nodes:" .. basename .. "_pane_double"
|
local nodename_double = "scifi_nodes:" .. basename .. "_pane_double"
|
||||||
local nodename_offset = "scifi_nodes:" .. basename .. "_pane_offset"
|
local nodename_offset = "scifi_nodes:" .. basename .. "_pane_offset"
|
||||||
local nodename_slope = "scifi_nodes:" .. basename .. "_slope"
|
|
||||||
local recipe_ingredient = "scifi_nodes:" .. basename
|
local recipe_ingredient = "scifi_nodes:" .. basename
|
||||||
local base_decription = color .. " octagon glass"
|
|
||||||
|
|
||||||
-- single height
|
-- single height
|
||||||
minetest.register_node(nodename_single, {
|
minetest.register_node(nodename_single, {
|
||||||
description = base_decription .. " pane",
|
description = description,
|
||||||
drawtype = "nodebox",
|
drawtype = "nodebox",
|
||||||
tiles = {
|
tiles = {
|
||||||
texture
|
texture
|
||||||
@ -27,17 +25,14 @@ local function register(basename, color, texture)
|
|||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {{-0.5, -0.5, -0.25, 0.5, 0.5, 0.25}},
|
fixed = {{-0.5, -0.5, -0.25, 0.5, 0.5, 0.25}},
|
||||||
},
|
},
|
||||||
groups = {
|
groups = {cracky = 3, oddly_breakable_by_hand = 3},
|
||||||
cracky = 3,
|
|
||||||
oddly_breakable_by_hand = 3
|
|
||||||
},
|
|
||||||
use_texture_alpha = "blend",
|
use_texture_alpha = "blend",
|
||||||
sounds = scifi_nodes.node_sound_glass_defaults()
|
sounds = scifi_nodes.node_sound_glass_defaults()
|
||||||
})
|
})
|
||||||
|
|
||||||
-- double height
|
-- double height
|
||||||
minetest.register_node(nodename_double, {
|
minetest.register_node(nodename_double, {
|
||||||
description = base_decription .. " pane (double)",
|
description = description,
|
||||||
drawtype = "nodebox",
|
drawtype = "nodebox",
|
||||||
tiles = {
|
tiles = {
|
||||||
texture
|
texture
|
||||||
@ -55,17 +50,14 @@ local function register(basename, color, texture)
|
|||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {{-0.5, -0.5, -0.25, 0.5, 1.5, 0.25}},
|
fixed = {{-0.5, -0.5, -0.25, 0.5, 1.5, 0.25}},
|
||||||
},
|
},
|
||||||
groups = {
|
groups = {cracky = 3, oddly_breakable_by_hand = 3},
|
||||||
cracky = 3,
|
|
||||||
oddly_breakable_by_hand = 3
|
|
||||||
},
|
|
||||||
use_texture_alpha = "blend",
|
use_texture_alpha = "blend",
|
||||||
sounds = scifi_nodes.node_sound_glass_defaults()
|
sounds = scifi_nodes.node_sound_glass_defaults()
|
||||||
})
|
})
|
||||||
|
|
||||||
-- single height with offset
|
-- single height with offset
|
||||||
minetest.register_node(nodename_offset, {
|
minetest.register_node(nodename_offset, {
|
||||||
description = base_decription .. " pane (offset)",
|
description = description,
|
||||||
drawtype = "nodebox",
|
drawtype = "nodebox",
|
||||||
tiles = {
|
tiles = {
|
||||||
texture
|
texture
|
||||||
@ -83,37 +75,11 @@ local function register(basename, color, texture)
|
|||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {{-0.5, -0.5, 0.75, 0.5, 0.5, 1.25}},
|
fixed = {{-0.5, -0.5, 0.75, 0.5, 0.5, 1.25}},
|
||||||
},
|
},
|
||||||
groups = {
|
groups = {cracky = 3, oddly_breakable_by_hand = 3},
|
||||||
cracky = 3,
|
|
||||||
oddly_breakable_by_hand = 3,
|
|
||||||
not_blocking_trains = 1
|
|
||||||
},
|
|
||||||
use_texture_alpha = "blend",
|
use_texture_alpha = "blend",
|
||||||
sounds = scifi_nodes.node_sound_glass_defaults()
|
sounds = scifi_nodes.node_sound_glass_defaults()
|
||||||
})
|
})
|
||||||
|
|
||||||
-- slope pane
|
|
||||||
minetest.register_node(nodename_slope, {
|
|
||||||
description = base_decription .. " pane (slope)",
|
|
||||||
sunlight_propagates = true,
|
|
||||||
drawtype = "mesh",
|
|
||||||
mesh = "scifi_nodes_slope_simple.obj",
|
|
||||||
tiles = {
|
|
||||||
texture
|
|
||||||
},
|
|
||||||
paramtype = "light",
|
|
||||||
paramtype2 = "facedir",
|
|
||||||
use_texture_alpha = "blend",
|
|
||||||
light_source = 10,
|
|
||||||
groups = {
|
|
||||||
cracky = 2,
|
|
||||||
dig_generic = 3
|
|
||||||
},
|
|
||||||
selection_box = scifi_nodes.slope_box_simple,
|
|
||||||
collision_box = scifi_nodes.slope_box_simple,
|
|
||||||
is_ground_content = false,
|
|
||||||
sounds = scifi_nodes.node_sound_glass_defaults()
|
|
||||||
})
|
|
||||||
-- register recipes
|
-- register recipes
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
@ -123,15 +89,6 @@ local function register(basename, color, texture)
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
output = nodename_slope .. " 16",
|
|
||||||
recipe = {
|
|
||||||
{"", "", recipe_ingredient},
|
|
||||||
{"", recipe_ingredient, ""},
|
|
||||||
{recipe_ingredient, "", ""}
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = nodename_double .. " 16",
|
output = nodename_double .. " 16",
|
||||||
recipe = {
|
recipe = {
|
||||||
@ -147,9 +104,8 @@ local function register(basename, color, texture)
|
|||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
register("octrng", "Orange", "scifi_nodes_octrng.png")
|
register("octrng", "Orange Octagon Glass pane", "scifi_nodes_octrng.png")
|
||||||
register("octgrn", "Green", "scifi_nodes_octgrn.png")
|
register("octgrn", "Green Octagon Glass pane", "scifi_nodes_octgrn.png")
|
||||||
register("octbl", "Blue", "scifi_nodes_octbl.png")
|
register("octbl", "Blue Octagon Glass pane", "scifi_nodes_octbl.png")
|
||||||
register("octppl", "Purple", "scifi_nodes_octppl.png")
|
register("octppl", "Purple Octagon Glass pane", "scifi_nodes_octppl.png")
|
||||||
register("octwht", "White", "scifi_nodes_octwht.png")
|
|
||||||
register("glass", "Dark Glass pane", "scifi_nodes_glass.png")
|
register("glass", "Dark Glass pane", "scifi_nodes_glass.png")
|
||||||
|
@ -59,7 +59,6 @@ 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)
|
||||||
@ -83,7 +82,6 @@ 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()
|
||||||
})
|
})
|
||||||
@ -102,7 +100,6 @@ 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 = {
|
||||||
|
@ -46,7 +46,6 @@ 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)
|
||||||
@ -74,7 +73,6 @@ 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)
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -39,7 +39,6 @@ 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)
|
||||||
@ -67,7 +66,6 @@ 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)
|
||||||
|
25
test/integration-test.sh
Executable file
25
test/integration-test.sh
Executable file
@ -0,0 +1,25 @@
|
|||||||
|
#!/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
|
40
test/test_mod/init.lua
Normal file
40
test/test_mod/init.lua
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
|
||||||
|
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)
|
2
test/test_mod/mod.conf
Normal file
2
test/test_mod/mod.conf
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
name = scifi_nodes_test
|
||||||
|
depends = scifi_nodes
|
Binary file not shown.
Before Width: | Height: | Size: 4.8 KiB |
Binary file not shown.
Before Width: | Height: | Size: 252 B After Width: | Height: | Size: 461 B |
Binary file not shown.
Before Width: | Height: | Size: 461 B |
BIN
textures/scifi_nodes_super_white.png
Normal file
BIN
textures/scifi_nodes_super_white.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 83 B |
BIN
textures/scifi_nodes_ultra_white.png
Normal file
BIN
textures/scifi_nodes_ultra_white.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 83 B |
Reference in New Issue
Block a user