1
0
mirror of https://github.com/D00Med/scifi_nodes.git synced 2025-07-17 15:30:20 +02:00

23 Commits

Author SHA1 Message Date
f79e84b92d Merge remote-tracking branch 'upstream/master' 2024-09-15 09:47:44 +02:00
cc5f1bea5a Merge remote-tracking branch 'upstream/master' 2023-11-25 15:35:19 +01:00
e7864a4a86 Merge remote-tracking branch 'upstream/master' 2023-06-07 22:31:17 +02:00
c649c290ab Merge remote-tracking branch 'upstream/master' 2022-06-25 16:54:20 +02:00
4f2d2a304f Merge remote-tracking branch 'upstream/master' 2022-05-27 18:51:16 +02:00
8816db8ecf Merge remote-tracking branch 'upstream/master' 2021-11-01 10:41:33 +01:00
5b903a6e78 Merge remote-tracking branch 'upstream/master' 2021-10-04 21:49:01 +02:00
eb231d7ca7 Merge remote-tracking branch 'upstream/master' 2021-08-31 19:59:22 +02:00
2fd4de11c0 Merge remote-tracking branch 'upstream/master' 2021-08-16 18:18:21 +02:00
b88b7349a5 Merge remote-tracking branch 'upstream/master' 2021-06-20 17:30:14 +02:00
c30ae4b3bd Merge remote-tracking branch 'upstream/master' 2021-05-09 21:44:34 +02:00
6cf45fcd43 Merge remote-tracking branch 'upstream/master' 2021-03-25 21:58:42 +01:00
1ded358e04 Merge branch 'github' 2021-03-20 13:38:15 +01:00
ecfaa4714a Fix things to avoid warnings about use_texture_alpha
And optimize textures with optipng
2021-03-20 13:33:39 +01:00
c341cb8a20 Merge remote-tracking branch 'upstream/master' 2021-01-29 17:43:56 +01:00
d66e04f9b1 Merge remote-tracking branch 'upstream/master' 2020-12-24 21:10:26 +01:00
d3d6a7bf79 Merge remote-tracking branch 'upstream/master' 2020-12-18 12:21:17 +01:00
e34fdde795 Merge remote-tracking branch 'upstream/master' 2020-12-15 23:41:17 +01:00
1993068ed1 Merge remote-tracking branch 'upstream/master' 2020-11-12 22:04:59 +01:00
436f51ab0d Merge remote-tracking branch 'upstream/master' 2020-11-10 19:59:40 +01:00
749d59a530 Merge remote-tracking branch 'upstream/master' 2020-09-13 12:28:42 +02:00
bd58dbc48b Merge remote-tracking branch 'upstream/master' 2020-07-23 11:42:19 +02:00
4eaba4f6e1 Adds loading message in the Action Log 2020-07-21 11:52:47 +02:00
19 changed files with 164 additions and 228 deletions

View File

@ -1,10 +1,17 @@
name: luacheck
on: [push, pull_request]
jobs:
luacheck:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@main
- name: Luacheck
uses: lunarmodules/luacheck@master
- uses: actions/checkout@v1
- name: apt
run: sudo apt-get install -y luarocks
- name: luacheck install
run: luarocks install --local luacheck
- name: luacheck run
run: $HOME/.luarocks/bin/luacheck ./

View File

@ -1,14 +1,20 @@
std = "min+minetest"
unused_args = false
max_line_length = 180
globals = {
"scifi_nodes"
}
read_globals = {
-- Stdlib
string = {fields = {"split"}},
table = {fields = {"copy", "getn"}},
-- Minetest
"vector", "ItemStack",
"dump",
-- optional deps
"advtrains",
"default",
"stairsplus",
"xpanes",
@ -17,7 +23,6 @@ read_globals = {
"mesecon",
"unifieddyes",
"letters",
"signs_api",
"stealthnode",
"slats",
"mtt"

View File

@ -46,7 +46,6 @@ CC BY 3.0
* scifi_nodes_grass_top.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_plastcrete.png https://github.com/mt-mods/basic_materials
CC0
* scifi_nodes_digicode.ogg https://freesound.org/people/benjaminharveydesign/sounds/315921/

View File

@ -14,7 +14,7 @@ local chest_formspec =
-- Helper functions
local function drop_chest_stuff()
return function(pos, _, oldmetadata)
return function(pos, oldnode, oldmetadata, digger)
local meta = minetest.get_meta(pos)
meta:from_table(oldmetadata)
local inv = meta:get_inventory()

View File

@ -1,5 +1,7 @@
function scifi_nodes.get_switch_rules(param2)
scifi_nodes.get_switch_rules = function(param2)
-- param2 = 2
local rules = {
{x=1, y=-1, z=-1},
@ -8,7 +10,7 @@ function scifi_nodes.get_switch_rules(param2)
{x=0, y=-1, z=1},
}
-- Left and right when looking to +y ?
-- Left and right when looking to +y ?
if param2 == 3 then
rules = mesecon.rotate_rules_right(mesecon.rotate_rules_right (rules))
elseif param2 == 4 then
@ -18,23 +20,3 @@ function scifi_nodes.get_switch_rules(param2)
end
return rules
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}
}
}

View File

@ -34,15 +34,6 @@ if not minetest.get_modpath("default") or not minetest.get_modpath("dye") then
return
end
minetest.register_craft({
output = "scifi_nodes:plastcrete 6",
recipe = {
{"scifi_nodes:white2", "default:gravel", "scifi_nodes:white2"},
{"default:gravel", "scifi_nodes:white2", "default:gravel"},
{"scifi_nodes:white2", "default:gravel", "scifi_nodes:white2"}
}
})
minetest.register_craft({
output = "scifi_nodes:super_white",
recipe = {

View File

@ -11,7 +11,7 @@ local digicode_context = {}
-- after_place_node, use by digicode and palm_scanner
-- 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)
meta:set_string("owner", placer:get_player_name())
meta:set_string("code", secret_code)
@ -48,7 +48,7 @@ local function update_code(pos, code)
meta:set_string("code", code)
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 owner = meta:get_string("owner")
local current_code = meta:get_string("code")

View File

@ -120,7 +120,7 @@ for _, current_door in ipairs(doors) do
return itemstack;
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"})
end
@ -173,12 +173,12 @@ for _, current_door in ipairs(doors) do
timer:start(3)
end
local function afterplace(pos)
local function afterplace(pos, placer, itemstack, pointed_thing)
local node = minetest.get_node(pos)
minetest.set_node({x=pos.x,y=pos.y+1,z=pos.z},{name=opened_top,param2=node.param2})
end
local function ontimer(pos)
local function ontimer(pos, elapsed)
-- play sound
minetest.sound_play(sound,{
max_hear_distance = 16,
@ -218,7 +218,7 @@ for _, current_door in ipairs(doors) do
},
}
local function nodig()
local function nodig(pos, digger)
return false
end

View File

@ -30,7 +30,6 @@ dofile(MP.."/nodeboxes.lua")
dofile(MP.."/palm_scanner.lua")
dofile(MP.."/digicode.lua")
dofile(MP.."/octagon_panes.lua")
dofile(MP.."/octagon_glass.lua")
dofile(MP.."/forcefield.lua")
dofile(MP.."/crafts.lua")
@ -47,3 +46,5 @@ end
if minetest.get_modpath("mtt") and mtt.enabled then
dofile(MP .. "/mtt.lua")
end
minetest.log("action", "[scifi_nodes] loaded.")

View File

@ -1,7 +1,6 @@
name = scifi_nodes
description = Minetest mod that adds scifi themed blocks, doors, materials, plants and other assets.
optional_depends = """
advtrains,
default,
xpanes,
mesecons,
@ -16,6 +15,5 @@ unifieddyes,
letters,
mesecons_stealthnode,
mtt,
slats,
signs_api
slats
"""

View File

@ -16,8 +16,24 @@ function scifi_nodes.register_slope(name, desc, texture, light, soundtype)
drawtype = "mesh",
mesh = "scifi_nodes_slope.obj",
tiles = texture,
selection_box = scifi_nodes.slope_box,
collision_box = scifi_nodes.slope_box,
selection_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",
paramtype2 = "facedir",
use_texture_alpha = "clip",
@ -32,7 +48,7 @@ end
-- 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("super_white", "Super Plastic", {"scifi_nodes_super_white.png",}, 11, "stone")
scifi_nodes.register_slope("ultra_white", "Super Plastic", {"scifi_nodes_ultra_white.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("white", "White", {"scifi_nodes_white.png",}, 0)
scifi_nodes.register_slope("grey", "Grey", {"scifi_nodes_grey.png",}, 0)

View File

@ -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

View File

@ -8,21 +8,17 @@
"white2": {
"description": "plastic",
"colorable": true,
"sounds": "stone",
"signs_banner": true,
"signs_banner_color": "#000"
"sounds": "stone"
},
"super_white": {
"description": "Super Plastic",
"light": 11,
"sounds": "stone",
"texture_name": "white2"
"sounds": "stone"
},
"ultra_white": {
"description": "Ultra Plastic",
"light": 14,
"sounds": "stone",
"texture_name": "white2"
"sounds": "stone"
},
"engine": {
"description": "Engine"
@ -62,8 +58,7 @@
},
"stripes": {
"description": "hazard stripes",
"slat": true,
"advtrains_platform": true
"slat": true
},
"rust": {
"description": "rusty metal"
@ -72,8 +67,7 @@
"description": "metal mesh"
},
"black": {
"description": "black wall",
"signs_banner": true
"description": "black wall"
},
"blackoct": {
"description": "black octagon"
@ -94,8 +88,7 @@
"description": "blue bars"
},
"bluemetal": {
"description": "blue metal",
"signs_banner": true
"description": "blue metal"
},
"bluetile": {
"description": "blue tile",
@ -154,8 +147,7 @@
"colorable": true
},
"greenmetal": {
"description": "green metal wall",
"signs_banner": true
"description": "green metal wall"
},
"greenmetal2": {
"description": "green metal wall2"
@ -179,8 +171,7 @@
"description": "green pipes"
},
"grey": {
"description": "grey wall",
"signs_banner": true
"description": "grey wall"
},
"greybolts": {
"description": "grey wall bolts"
@ -284,8 +275,7 @@
"slat": true
},
"purple": {
"description": "Purple node",
"signs_banner": true
"description": "Purple node"
},
"rock": {
"description": "Moonstone",
@ -302,12 +292,5 @@
},
"blackplate": {
"description": "Black plate"
},
"plastcrete": {
"description": "Plastcrete",
"sounds": "stone",
"colorable": true,
"moreblocks": false,
"paramtype2": "none"
}
}

115
nodes.lua
View File

@ -1,8 +1,6 @@
local has_unifieddyes_mod = minetest.get_modpath("unifieddyes")
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
@ -369,6 +367,95 @@ minetest.register_node("scifi_nodes:grnpipe2", {
on_place = minetest.rotate_node
})
minetest.register_node("scifi_nodes:octrng", {
description = "Orange Octagon Glass",
sunlight_propagates = true,
drawtype = "glasslike",
tiles = {
"scifi_nodes_octrng.png",
},
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(),
})
minetest.register_node("scifi_nodes:octgrn", {
description = "Green Octagon Glass",
sunlight_propagates = true,
drawtype = "glasslike",
tiles = {
"scifi_nodes_octgrn.png",
},
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(),
})
minetest.register_node("scifi_nodes:octbl", {
description = "Blue Octagon Glass",
sunlight_propagates = true,
drawtype = "glasslike",
tiles = {
"scifi_nodes_octbl.png",
},
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(),
})
minetest.register_node("scifi_nodes:octppl", {
description = "Purple Octagon Glass",
sunlight_propagates = true,
drawtype = "glasslike",
tiles = {
"scifi_nodes_octppl.png",
},
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(),
})
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
minetest.register_node("scifi_nodes:tower", {
description = "Wind tower",
sunlight_propagates = false,
@ -574,30 +661,6 @@ for name, def in pairs(nodes) do
})
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,

View File

@ -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

View File

@ -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_double = "scifi_nodes:" .. basename .. "_pane_double"
local nodename_offset = "scifi_nodes:" .. basename .. "_pane_offset"
local nodename_slope = "scifi_nodes:" .. basename .. "_slope"
local recipe_ingredient = "scifi_nodes:" .. basename
local base_decription = color .. " octagon glass"
-- single height
minetest.register_node(nodename_single, {
description = base_decription .. " pane",
description = description,
drawtype = "nodebox",
tiles = {
texture
@ -27,17 +25,14 @@ local function register(basename, color, texture)
type = "fixed",
fixed = {{-0.5, -0.5, -0.25, 0.5, 0.5, 0.25}},
},
groups = {
cracky = 3,
oddly_breakable_by_hand = 3
},
groups = {cracky = 3, oddly_breakable_by_hand = 3},
use_texture_alpha = "blend",
sounds = scifi_nodes.node_sound_glass_defaults()
})
-- double height
minetest.register_node(nodename_double, {
description = base_decription .. " pane (double)",
description = description,
drawtype = "nodebox",
tiles = {
texture
@ -55,17 +50,14 @@ local function register(basename, color, texture)
type = "fixed",
fixed = {{-0.5, -0.5, -0.25, 0.5, 1.5, 0.25}},
},
groups = {
cracky = 3,
oddly_breakable_by_hand = 3
},
groups = {cracky = 3, oddly_breakable_by_hand = 3},
use_texture_alpha = "blend",
sounds = scifi_nodes.node_sound_glass_defaults()
})
-- single height with offset
minetest.register_node(nodename_offset, {
description = base_decription .. " pane (offset)",
description = description,
drawtype = "nodebox",
tiles = {
texture
@ -83,37 +75,11 @@ local function register(basename, color, texture)
type = "fixed",
fixed = {{-0.5, -0.5, 0.75, 0.5, 0.5, 1.25}},
},
groups = {
cracky = 3,
oddly_breakable_by_hand = 3,
not_blocking_trains = 1
},
groups = {cracky = 3, oddly_breakable_by_hand = 3},
use_texture_alpha = "blend",
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
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({
output = nodename_double .. " 16",
recipe = {
@ -147,9 +104,8 @@ local function register(basename, color, texture)
})
end
register("octrng", "Orange", "scifi_nodes_octrng.png")
register("octgrn", "Green", "scifi_nodes_octgrn.png")
register("octbl", "Blue", "scifi_nodes_octbl.png")
register("octppl", "Purple", "scifi_nodes_octppl.png")
register("octwht", "White", "scifi_nodes_octwht.png")
register("octrng", "Orange Octagon Glass pane", "scifi_nodes_octrng.png")
register("octgrn", "Green Octagon Glass pane", "scifi_nodes_octgrn.png")
register("octbl", "Blue Octagon Glass pane", "scifi_nodes_octbl.png")
register("octppl", "Purple Octagon Glass pane", "scifi_nodes_octppl.png")
register("glass", "Dark Glass pane", "scifi_nodes_glass.png")

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 B