minetest-mm/mods/gloopblocks/main.lua
2024-12-19 12:55:40 +01:00

934 lines
32 KiB
Lua

local S = minetest.get_translator(minetest.get_current_modname())
-- Same as S, but will be ignored by mod translation updater
local T = S
-- Nodes
minetest.register_node("gloopblocks:rainbow_block_diagonal", {
description = S("Diagonal Rainbow Block"),
tiles = {"gloopblocks_rainbow_block.png"},
is_ground_content = false,
groups = {cracky=3},
sounds = default.node_sound_defaults(),
})
minetest.register_alias("gloopblocks:rainbow_block", "gloopblocks:rainbow_block_diagonal")
minetest.register_node("gloopblocks:rainbow_block_horizontal", {
description = S("Horizontal Rainbow Block"),
tiles = {
"gloopblocks_rainbow_horizontal.png^[transformR90",
"gloopblocks_rainbow_horizontal.png^[transformR90",
"gloopblocks_rainbow_horizontal.png"
},
paramtype = "light",
light_source = default.LIGHT_MAX,
paramtype2 = "facedir",
groups = {cracky = 2},
is_ground_content = false,
sounds = default.node_sound_defaults(),
})
minetest.register_node("gloopblocks:evil_block", {
description = S("Evil Block"),
tiles = {"gloopblocks_evil_block.png"},
light_source = 5,
is_ground_content = false,
groups = {cracky=2},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("gloopblocks:basalt", {
description = S("Basalt"),
tiles = {"gloopblocks_basalt.png"},
groups = {cracky=2},
is_ground_content = false,
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("gloopblocks:pumice", {
description = S("Pumice"),
tiles = {"gloopblocks_pumice.png"},
groups = {cracky=3},
is_ground_content = false,
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("gloopblocks:pavement", {
description = S("Pavement"),
tiles = {"gloopblocks_pavement.png"},
groups = {cracky=3, oddly_breakable_by_hand=3},
is_ground_content = false,
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("gloopblocks:oerkki_block", {
drawtype = "nodebox",
description = S("Oerkki Block"),
paramtype = "light",
paramtype2 = "facedir",
tiles = {
"gloopblocks_oerkkiblock_tb.png",
"gloopblocks_oerkkiblock_tb.png",
"gloopblocks_oerkkiblock_sides.png",
"gloopblocks_oerkkiblock_sides.png",
"gloopblocks_oerkkiblock_sides.png",
"gloopblocks_oerkkiblock_front.png"
},
groups = {cracky=3, oddly_breakable_by_hand=3},
is_ground_content = false,
sounds = default.node_sound_stone_defaults(),
selection_box = {
type = "fixed",
fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 }
},
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, -0.1875, 0.5, 0.5, 0.1875}, -- NodeBox1
{-0.5, -0.5, -0.5, -0.4375, 0.5, 0.5}, -- NodeBox2
{0.4375, -0.5, -0.5, 0.5, 0.5, 0.5}, -- NodeBox3
{-0.5, 0.4375, -0.5, 0.5, 0.5, 0.5}, -- NodeBox4
{-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5}, -- NodeBox5
{-0.5, -0.0625, -0.5, 0.5, 0.0625, 0.5}, -- NodeBox6
}
}
})
minetest.register_node("gloopblocks:stone_brick_mossy", {
description = S("Mossy Stone Brick"),
tiles = {"gloopblocks_stone_brick_mossy.png"},
groups = {cracky=3, stone=1},
is_ground_content = false,
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("gloopblocks:stone_mossy", {
description = S("Mossy Stone"),
tiles = {"gloopblocks_stone_mossy.png"},
groups = {cracky=3, stone=1},
is_ground_content = false,
sounds = default.node_sound_stone_defaults(),
drop = "default:mossycobble"
})
minetest.register_node("gloopblocks:cobble_road", {
description = S("Cobblestone Roadbed"),
tiles = {"gloopblocks_cobble_road.png"},
groups = {cracky=3, stone=1},
is_ground_content = false,
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("gloopblocks:cobble_road_mossy", {
description = S("Mossy Cobblestone Roadbed"),
tiles = {"gloopblocks_cobble_road_mossy.png"},
groups = {cracky=3, stone=1},
is_ground_content = false,
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("gloopblocks:scaffolding", {
description = S("Wooden Scaffold"),
drawtype = "allfaces",
paramtype = "light",
sunlight_propagates = true,
tiles = {"gloopblocks_scaffold.png"},
groups = {choppy=3, oddly_breakable_by_hand=3},
is_ground_content = false,
sounds = default.node_sound_wood_defaults(),
})
minetest.register_node("gloopblocks:concrete_sidewalk", {
description = S("Concrete sidewalk"),
tiles = {
"basic_materials_concrete_block.png",
"basic_materials_concrete_block.png^gloopblocks_concrete_sidewalk_overlay.png",
"gloopblocks_packed_dirt.png"
},
drawtype = "mesh",
mesh = "gloopblocks_sidewalk.obj",
paramtype2 = "facedir",
selection_box = {
type = "fixed",
fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 }
},
collision_box = {
type = "fixed",
fixed = { -0.5, -0.5, -0.5, 0.5, 0.5625, 0.5 }
},
on_rotate = screwdriver.rotate_simple,
groups = {cracky=2},
is_ground_content = false,
sounds = default.node_sound_stone_defaults(),
})
minetest.register_alias("moreblocks:oerkkiblock", "gloopblocks:oerkki_block")
minetest.register_alias("gloopblocks:obsidian", "default:obsidian")
-- Nodes imported from Usesdirt ================================================================================
if not minetest.get_modpath("usesdirt") then
local dirt_brick_tex = "default_dirt.png^gloopblocks_dirt_brick_overlay.png"
local dirt_cobble_tex = "default_cobble.png^(default_dirt.png^[mask:gloopblocks_dirt_cobble_mask.png)"
local dirt_stone_tex = "default_stone.png^(default_dirt.png^[mask:gloopblocks_dirt_stone_mask.png)"
local dirt_ladder_tex = "(default_dirt.png^[mask:gloopblocks_ladder_mask.png)^gloopblocks_ladder_overlay.png"
local dirt_brick_ladder_tex = "(("..dirt_brick_tex..")^[mask:gloopblocks_ladder_mask.png)^gloopblocks_ladder_overlay.png"
local dirt_cobble_ladder_tex = "(("..dirt_cobble_tex..")^[mask:gloopblocks_ladder_mask.png)^gloopblocks_ladder_overlay.png"
local dirt_stone_ladder_tex = "(("..dirt_stone_tex..")^[mask:gloopblocks_ladder_mask.png)^gloopblocks_ladder_overlay.png"
minetest.register_node(":usesdirt:dirt_brick", {
tiles = { dirt_brick_tex },
description = "Dirt Brick",
groups = {snappy=2,choppy=1,oddly_breakable_by_hand=2},
is_ground_content = false,
})
minetest.register_node(":usesdirt:dirt_brick_ladder", {
description = "Dirt Brick Ladder",
drawtype = "signlike",
tiles = { dirt_brick_ladder_tex },
inventory_image = dirt_brick_ladder_tex,
wield_image = dirt_brick_ladder_tex,
paramtype = "light",
paramtype2 = "wallmounted",
is_ground_content = false,
walkable = false,
climbable = true,
selection_box = {
type = "wallmounted",
--wall_top = = <default>
--wall_bottom = = <default>
--wall_side = = <default>
},
groups = {cracky=3, stone=2},
legacy_wallmounted = true,
})
minetest.register_craft({
output = 'usesdirt:dirt_brick_ladder 3',
recipe = {
{'usesdirt:dirt_brick', '', 'usesdirt:dirt_brick'},
{'usesdirt:dirt_brick', 'usesdirt:dirt_brick','usesdirt:dirt_brick'},
{'usesdirt:dirt_brick','','usesdirt:dirt_brick'},
}
})
default.register_fence(":usesdirt:dirt_brick_fence", {
description = "Dirt Brick Fence",
texture = dirt_brick_tex,
inventory_image = "default_fence_overlay.png^("..dirt_brick_tex..")^default_fence_overlay.png^[makealpha:255,126,126",
wield_image = "default_fence_overlay.png^("..dirt_brick_tex..")^default_fence_overlay.png^[makealpha:255,126,126",
material = "usesdirt:dirt_brick",
groups = {cracky=3, stone=2},
sounds = default.node_sound_stone_defaults(),
check_for_pole = true
})
if minetest.get_modpath("moreblocks") then
minetest.register_craft({
output = 'usesdirt:dirt_brick 24',
recipe = {
{'moreblocks:dirt_compressed', 'moreblocks:dirt_compressed', '' },
{'moreblocks:dirt_compressed', 'moreblocks:dirt_compressed', '' }
}
})
else
minetest.register_craft({
output = 'usesdirt:dirt_brick 6',
recipe = {
{'default:dirt', 'default:dirt', 'default:dirt'},
{'default:dirt', 'default:dirt', 'default:dirt'},
{'default:dirt', 'default:dirt', 'default:dirt'},
}
})
end
minetest.register_node(":usesdirt:dirt_ladder", {
description = "Dirt Ladder",
drawtype = "signlike",
tiles = { dirt_ladder_tex },
inventory_image = dirt_ladder_tex,
wield_image = dirt_ladder_tex,
paramtype = "light",
paramtype2 = "wallmounted",
is_ground_content = false,
walkable = false,
climbable = true,
selection_box = {
type = "wallmounted",
--wall_top = = <default>
--wall_bottom = = <default>
--wall_side = = <default>
},
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=3},
legacy_wallmounted = true,
})
minetest.register_craft({
output = 'usesdirt:dirt_ladder 3',
recipe = {
{'usesdirt:dirt_brick', '', 'usesdirt:dirt_brick'},
{'usesdirt:dirt_brick', '','usesdirt:dirt_brick'},
{'usesdirt:dirt_brick','','usesdirt:dirt_brick'},
}
})
default.register_fence(":usesdirt:dirt_fence", {
description = "Dirt Fence",
texture = "default_dirt.png",
inventory_image = "default_fence_overlay.png^default_dirt.png^default_fence_overlay.png^[makealpha:255,126,126",
wield_image = "default_fence_overlay.png^default_dirt.png^default_fence_overlay.png^[makealpha:255,126,126",
material = "default:dirt",
groups = {snappy=2,choppy=1,oddly_breakable_by_hand=3},
sounds = default.node_sound_dirt_defaults(),
check_for_pole = true
})
----
minetest.register_node(":usesdirt:dirt_cobble_stone", {
tiles = { dirt_cobble_tex },
description = "Dirt Cobblestone",
is_ground_content = false,
groups = {cracky=3, stone=2},
})
minetest.register_craft({
output = '"usesdirt:dirt_cobble_stone" 3',
recipe = {
{'usesdirt:dirt_brick', 'usesdirt:dirt_brick', 'usesdirt:dirt_brick'},
{'usesdirt:dirt_brick', 'usesdirt:dirt_brick', 'usesdirt:dirt_brick'},
{'usesdirt:dirt_brick', 'usesdirt:dirt_brick', 'usesdirt:dirt_brick'},
}
})
minetest.register_node(":usesdirt:dirt_cobble_stone_ladder", {
description = "Dirt Cobblestone Ladder",
drawtype = "signlike",
tiles = { dirt_cobble_ladder_tex },
inventory_image = dirt_cobble_ladder_tex,
wield_image = dirt_cobble_ladder_tex,
paramtype = "light",
paramtype2 = "wallmounted",
is_ground_content = false,
walkable = false,
climbable = true,
selection_box = {
type = "wallmounted",
--wall_top = = <default>
--wall_bottom = = <default>
--wall_side = = <default>
},
groups = {cracky=3, stone=2},
legacy_wallmounted = true,
})
minetest.register_craft({
output = 'usesdirt:dirt_cobble_stone_ladder 3',
recipe = {
{'usesdirt:dirt_cobble_stone', '', 'usesdirt:dirt_cobble_stone'},
{'usesdirt:dirt_cobble_stone', 'usesdirt:dirt_cobble_stone','usesdirt:dirt_cobble_stone'},
{'usesdirt:dirt_cobble_stone','','usesdirt:dirt_cobble_stone'},
}
})
default.register_fence(":usesdirt:dirt_cobble_stone_fence", {
description = "Dirt Cobblestone Fence",
texture = dirt_cobble_tex,
inventory_image = "default_fence_overlay.png^("..dirt_cobble_tex..")^default_fence_overlay.png^[makealpha:255,126,126",
wield_image = "default_fence_overlay.png^("..dirt_cobble_tex..")^default_fence_overlay.png^[makealpha:255,126,126",
material = "usesdirt:dirt_cobble_stone",
groups = {cracky=3, stone=2},
sounds = default.node_sound_stone_defaults(),
check_for_pole = true
})
----
minetest.register_node(":usesdirt:dirt_stone", {
tiles = { dirt_stone_tex },
description = "Dirt Stone",
is_ground_content = false,
groups = {cracky=3, stone=2},
})
minetest.register_node(":usesdirt:dirt_stone_ladder", {
description = "Dirt Stone Ladder",
drawtype = "signlike",
tiles = { dirt_stone_ladder_tex },
inventory_image = dirt_stone_ladder_tex,
wield_image = dirt_stone_ladder_tex,
paramtype = "light",
paramtype2 = "wallmounted",
is_ground_content = false,
walkable = false,
climbable = true,
selection_box = {
type = "wallmounted",
--wall_top = = <default>
--wall_bottom = = <default>
--wall_side = = <default>
},
groups = {cracky=3, stone=2},
legacy_wallmounted = true,
})
minetest.register_craft({
output = 'usesdirt:dirt_stone_ladder 3',
recipe = {
{'usesdirt:dirt_stone', '', 'usesdirt:dirt_stone'},
{'usesdirt:dirt_stone', 'usesdirt:dirt_stone','usesdirt:dirt_stone'},
{'usesdirt:dirt_stone','','usesdirt:dirt_stone'},
}
})
default.register_fence(":usesdirt:dirt_stone_fence", {
description = "Dirt Stone Fence",
texture = dirt_stone_tex,
inventory_image = "default_fence_overlay.png^("..dirt_stone_tex..")^default_fence_overlay.png^[makealpha:255,126,126",
wield_image = "default_fence_overlay.png^("..dirt_stone_tex..")^default_fence_overlay.png^[makealpha:255,126,126",
material = "usesdirt:dirt_stone",
groups = {cracky=3, stone=2},
sounds = default.node_sound_stone_defaults(),
check_for_pole = true
})
end
-- Stairs/slabs defs, conversion of normal -> mossy items
if minetest.setting_getbool("gloopblocks_mossy_conversion") ~= false then
function gloopblocks_register_mossy_conversion(mossyobjects)
for i in ipairs(mossyobjects) do
minetest.register_abm({
nodenames = { mossyobjects[i][1] },
neighbors = {"default:water_source", "default:water_flowing"},
interval = 120,
chance = 50,
action = function(pos, node)
if minetest.find_node_near(pos, 2, "air") then
local fdir = node.param2
minetest.add_node(pos, {name = mossyobjects[i][2], param2 = fdir})
end
end,
})
end
end
end
if minetest.get_modpath("moreblocks") then
stairsplus:register_all("gloopblocks", "oerkki_block", "gloopblocks:oerkki_block", {
description = S("Oerkki Block"),
tiles = {
"gloopblocks_oerkkiblock_tb.png",
"gloopblocks_oerkkiblock_tb.png",
"gloopblocks_oerkkiblock_sides.png",
"gloopblocks_oerkkiblock_sides.png",
"gloopblocks_oerkkiblock_sides.png",
"gloopblocks_oerkkiblock_front.png"
},
groups = {cracky=2, not_in_creative_inventory=1},
sounds = default.node_sound_stone_defaults(),
sunlight_propagates = true,
})
stairsplus:register_all("gloopblocks", "stone_brick_mossy", "gloopblocks:stone_brick_mossy", {
description = S("Mossy Stone Brick"),
tiles = {"gloopblocks_stone_brick_mossy.png"},
groups = {cracky=1, not_in_creative_inventory=1},
sounds = default.node_sound_stone_defaults(),
sunlight_propagates = true,
})
stairsplus:register_all("gloopblocks", "stone_mossy", "gloopblocks:stone_mossy", {
description = S("Mossy Stone"),
tiles = {"gloopblocks_stone_mossy.png"},
groups = {cracky=1, not_in_creative_inventory=1},
sounds = default.node_sound_stone_defaults(),
sunlight_propagates = true,
})
stairsplus:register_all("gloopblocks", "cobble_road", "gloopblocks:cobble_road", {
description = S("Cobblestone Roadbed"),
tiles = {"gloopblocks_cobble_road.png"},
groups = {cracky=3, stone=1, not_in_creative_inventory=1},
sounds = default.node_sound_stone_defaults(),
sunlight_propagates = true,
})
stairsplus:register_all("gloopblocks", "cobble_road_mossy", "gloopblocks:cobble_road_mossy", {
description = S("Mossy Cobblestone Roadbed"),
tiles = {"gloopblocks_cobble_road_mossy.png"},
groups = {cracky=3, stone=1, not_in_creative_inventory=1},
sounds = default.node_sound_stone_defaults(),
sunlight_propagates = true,
})
stairsplus:register_all("gloopblocks", "pavement", "gloopblocks:pavement", {
description = S("Pavement"),
tiles = {"gloopblocks_pavement.png"},
groups = {cracky=2, not_in_creative_inventory=1},
sounds = default.node_sound_stone_defaults(),
sunlight_propagates = true,
})
stairsplus:register_all("gloopblocks", "rainbow_block", "gloopblocks:rainbow_block", {
description = S("Rainbow Block"),
tiles = {"gloopblocks_rainbow_block.png"},
groups = {cracky=3, not_in_creative_inventory=1},
sounds = default.node_sound_defaults(),
sunlight_propagates = true,
})
stairsplus:register_all("gloopblocks", "evil_block", "gloopblocks:evil_block", {
description = S("Evil Block"),
tiles = {"gloopblocks_evil_block.png"},
groups = {cracky=3, not_in_creative_inventory=1},
sounds = default.node_sound_defaults(),
light_source = 5,
sunlight_propagates = true,
})
stairsplus:register_all("gloopblocks", "basalt", "gloopblocks:basalt", {
description = S("Basalt"),
tiles = {"gloopblocks_basalt.png"},
groups = {cracky=2, not_in_creative_inventory=1},
sounds = default.node_sound_stone_defaults(),
sunlight_propagates = true,
})
stairsplus:register_all("gloopblocks", "pumice", "gloopblocks:pumice", {
description = S("Pumice"),
tiles = {"gloopblocks_pumice.png"},
groups = {cracky=3, not_in_creative_inventory=1},
sounds = default.node_sound_stone_defaults(),
sunlight_propagates = true,
})
stairsplus:register_all("gloopblocks", "gravel", "default:gravel", {
description = S("Gravel"),
tiles = {"default_gravel.png"},
groups = {crumbly = 2, falling_node = 1, not_in_creative_inventory=1},
sounds = default.node_sound_stone_defaults(),
sunlight_propagates = false,
})
if minetest.get_modpath("caverealms") then
stairsplus:register_all("caverealms", "glow_crystal", "caverealms:glow_crystal", {
description = S("Glow Crystal"),
tiles = {"caverealms_glow_crystal.png"},
groups = {cracky=3, not_in_creative_inventory=1},
sounds = default.node_sound_glass_defaults(),
light_source = 12,
use_texture_alpha = true,
paramtype="light",
sunlight_propagates = true,
})
stairsplus:register_all("caverealms", "glow_emerald", "caverealms:glow_emerald", {
description = S("Glow Emerald"),
tiles = {"caverealms_glow_emerald.png"},
groups = {cracky=3, not_in_creative_inventory=1},
sounds = default.node_sound_glass_defaults(),
light_source = 12,
use_texture_alpha = true,
paramtype="light",
sunlight_propagates = true,
})
stairsplus:register_all("caverealms", "glow_mese", "caverealms:glow_mese", {
description = S("Glow Mese"),
tiles = {"caverealms_glow_mese.png"},
groups = {cracky=3, not_in_creative_inventory=1},
sounds = default.node_sound_glass_defaults(),
light_source = 12,
use_texture_alpha = true,
paramtype="light",
sunlight_propagates = true,
})
end
-- ABMs for mossy objects
if minetest.setting_getbool("gloopblocks_mossy_conversion") ~= false then
gloopblocks_register_mossy_conversion({
{ "moreblocks:stair_cobble", "moreblocks:stair_mossycobble" },
{ "moreblocks:stair_cobble_inner", "moreblocks:stair_mossycobble_inner" },
{ "moreblocks:stair_cobble_outer", "moreblocks:stair_mossycobble_outer" },
{ "moreblocks:stair_cobble_half", "moreblocks:stair_mossycobble_half" },
{ "moreblocks:slab_cobble_quarter", "moreblocks:slab_mossycobble_quarter" },
{ "moreblocks:slab_cobble", "moreblocks:slab_mossycobble" },
{ "moreblocks:slab_cobble_three_quarter", "moreblocks:slab_mossycobble_three_quarter" },
{ "moreblocks:panel_cobble", "moreblocks:panel_mossycobble" },
{ "moreblocks:micro_cobble", "moreblocks:micro_mossycobble" },
{ "moreblocks:stair_cobble_alt", "moreblocks:stair_mossycobble_alt" },
{ "gloopblocks:cobble_road", "gloopblocks:cobble_road_mossy" },
{ "gloopblocks:stair_cobble_road", "gloopblocks:stair_cobble_road_mossy" },
{ "gloopblocks:slab_cobble_road", "gloopblocks:slab_cobble_road_mossy" },
{ "gloopblocks:stair_cobble_road", "gloopblocks:stair_cobble_road_mossy" },
{ "gloopblocks:stair_cobble_road_inner", "gloopblocks:stair_cobble_road_mossy_inner" },
{ "gloopblocks:stair_cobble_road_outer", "gloopblocks:stair_cobble_road_mossy_outer" },
{ "gloopblocks:stair_cobble_road_half", "gloopblocks:stair_cobble_road_mossy_half" },
{ "gloopblocks:slab_cobble_road_quarter", "gloopblocks:slab_cobble_road_mossy_quarter" },
{ "gloopblocks:slab_cobble_road", "gloopblocks:slab_cobble_road_mossy" },
{ "gloopblocks:slab_cobble_road_three_quarter", "gloopblocks:slab_cobble_road_mossy_three_quarter" },
{ "gloopblocks:panel_cobble_road", "gloopblocks:panel_cobble_road_mossy" },
{ "gloopblocks:micro_cobble_road", "gloopblocks:micro_cobble_road_mossy" },
{ "gloopblocks:stair_cobble_road_alt", "gloopblocks:stair_cobble_road_mossy_alt" },
{ "default:stonebrick", "gloopblocks:stone_brick_mossy" },
{ "default:stair_stonebrick", "gloopblocks:stair_stone_brick_mossy" },
{ "default:slab_stonebrick", "gloopblocks:slab_stone_brick_mossy" },
{ "moreblocks:stair_stonebrick", "gloopblocks:stair_stone_brick_mossy" },
{ "moreblocks:stair_stonebrick_inner", "gloopblocks:stair_stone_brick_mossy_inner" },
{ "moreblocks:stair_stonebrick_outer", "gloopblocks:stair_stone_brick_mossy_outer" },
{ "moreblocks:stair_stonebrick_half", "gloopblocks:stair_stone_brick_mossy_half" },
{ "moreblocks:slab_stonebrick_quarter", "gloopblocks:slab_stone_brick_mossy_quarter" },
{ "moreblocks:slab_stonebrick", "gloopblocks:slab_stone_brick_mossy" },
{ "moreblocks:slab_stonebrick_three_quarter", "gloopblocks:slab_stone_brick_mossy_three_quarter" },
{ "moreblocks:panel_stonebrick", "gloopblocks:panel_stone_brick_mossy" },
{ "moreblocks:micro_stonebrick", "gloopblocks:micro_stone_brick_mossy" },
{ "moreblocks:stair_stonebrick_alt", "gloopblocks:stair_stone_brick_mossy_alt" },
{ "default:stone", "gloopblocks:stone_mossy" },
{ "default:stair_stone", "gloopblocks:stair_stone_mossy" },
{ "default:slab_stone", "gloopblocks:slab_stone_mossy" },
{ "moreblocks:stair_stone", "gloopblocks:stair_stone_mossy" },
{ "moreblocks:stair_stone_inner", "gloopblocks:stair_stone_mossy_inner" },
{ "moreblocks:stair_stone_outer", "gloopblocks:stair_stone_mossy_outer" },
{ "moreblocks:stair_stone_half", "gloopblocks:stair_stone_mossy_half" },
{ "moreblocks:slab_stone_quarter", "gloopblocks:slab_stone_mossy_quarter" },
{ "moreblocks:slab_stone", "gloopblocks:slab_stone_mossy" },
{ "moreblocks:slab_stone_three_quarter", "gloopblocks:slab_stone_mossy_three_quarter" },
{ "moreblocks:panel_stone", "gloopblocks:panel_stone_mossy" },
{ "moreblocks:micro_stone", "gloopblocks:micro_stone_mossy" },
{ "moreblocks:stair_stone_alt", "gloopblocks:stair_stone_mossy_alt" },
})
end
elseif minetest.get_modpath("stairs") then
-- Local function so we can apply translations, specifically for inner/outer stairs
local function my_stairs_register_stair_and_slab(subname, recipeitem, groups, images,
desc_stair, desc_slab, sounds)
stairs.register_stair(subname, recipeitem, groups, images, S(desc_stair),
sounds, false)
stairs.register_stair_inner(subname, recipeitem, groups, images, "",
sounds, false, T("Inner " .. desc_stair))
stairs.register_stair_outer(subname, recipeitem, groups, images, "",
sounds, false, T("Outer " .. desc_stair))
stairs.register_slab(subname, recipeitem, groups, images, S(desc_slab),
sounds, false)
end
-- stairs:xxxx_stone_mossy ; xxxx = stair or slab
my_stairs_register_stair_and_slab("stone_mossy", "gloopblocks:stone_mossy",
{cracky=3},
{"gloopblocks_stone_mossy.png"},
"Mossy Stone Stair",
"Mossy Stone Slab",
default.node_sound_stone_defaults())
-- stairs:xxxx_mossycobble
my_stairs_register_stair_and_slab("mossycobble", "default:mossycobble",
{cracky=3},
{"default_mossycobble.png"},
"Mossy Cobblestone Stair",
"Mossy Cobblestone Slab",
default.node_sound_stone_defaults())
-- stairs:xxxx_stone_brick_mossy
my_stairs_register_stair_and_slab("stone_brick_mossy", "gloopblocks:stone_brick_mossy",
{cracky=3},
{"gloopblocks_stone_brick_mossy.png"},
"Mossy Stone Brick Stair",
"Mossy Stone Brick Slab",
default.node_sound_stone_defaults())
-- stairs:xxxx_cobble_road
my_stairs_register_stair_and_slab("cobble_road", "gloopblocks:cobble_road",
{cracky=3},
{"gloopblocks_cobble_road.png"},
"Cobblestone Roadbed Stair",
"Cobblestone Roadbed Slab",
default.node_sound_stone_defaults())
-- stairs:xxxx_cobble_road_mossy
my_stairs_register_stair_and_slab("cobble_road_mossy", "gloopblocks:cobble_road_mossy",
{cracky=3},
{"gloopblocks_cobble_road_mossy.png"},
"Mossy Cobblestone Roadbed Stair",
"Mossy Cobblestone Roadbed Slab",
default.node_sound_stone_defaults())
-- stairs:xxxx_cement
my_stairs_register_stair_and_slab("cement", "gloopblocks:cement",
{cracky=2},
{"basic_materials_cement_block.png"},
"Cement Stair",
"Cement Slab",
default.node_sound_stone_defaults())
-- stairs:xxxx_pavement
my_stairs_register_stair_and_slab("pavement", "gloopblocks:pavement",
{cracky=3, oddly_breakable_by_hand=3},
{"gloopblocks_pavement.png"},
"Pavement Stair",
"Pavement Slab",
default.node_sound_stone_defaults())
my_stairs_register_stair_and_slab("basalt", "gloopblocks:basalt",
{cracky=2},
{"gloopblocks_basalt.png"},
"Basalt Stair",
"Basalt Slab",
default.node_sound_stone_defaults())
my_stairs_register_stair_and_slab("pumice", "gloopblocks:pumice",
{cracky=3},
{"gloopblocks_pumice.png"},
"Pumice Stair",
"Pumice Slab",
default.node_sound_stone_defaults())
my_stairs_register_stair_and_slab("rainbow_block", "gloopblocks:rainbow_block",
{cracky=3},
{"gloopblocks_rainbow_block.png"},
"Rainbow Block Stair",
"Rainbow Block Slab",
default.node_sound_defaults())
if minetest.setting_getbool("gloopblocks_mossy_conversion") ~= false then
gloopblocks_register_mossy_conversion({
{ "default:cobble", "default:mossycobble" },
{ "stairs:stair_cobble", "stairs:stair_mossycobble" },
{ "stairs:slab_cobble", "stairs:slab_mossycobble" },
{ "gloopblocks:cobble_road", "gloopblocks:cobble_road_mossy" },
{ "stairs:stair_cobble_road", "stairs:stair_cobble_road_mossy" },
{ "stairs:slab_cobble_road", "stairs:slab_cobble_road_mossy" },
{ "default:stonebrick", "gloopblocks:stone_brick_mossy" },
{ "stairs:stair_stonebrick", "stairs:stair_stone_brick_mossy" },
{ "stairs:slab_stonebrick", "stairs:slab_stone_brick_mossy" },
{ "default:stone", "gloopblocks:stone_mossy" },
{ "stairs:stair_stone", "stairs:stair_stone_mossy" },
{ "stairs:slab_stone", "stairs:slab_stone_mossy" },
})
end
minetest.register_alias("default:stair_mossycobble", "stairs:stair_mossycobble")
minetest.register_alias("default:slab_mossycobble", "stairs:slab_mossycobble")
minetest.register_alias("gloopblocks:stair_cobble_road", "stairs:stair_cobble_road")
minetest.register_alias("gloopblocks:slab_cobble_road", "stairs:slab_cobble_road")
minetest.register_alias("gloopblocks:stair_cobble_road_mossy", "stairs:stair_cobble_road_mossy")
minetest.register_alias("gloopblocks:slab_cobble_road_mossy", "stairs:slab_cobble_road_mossy")
minetest.register_alias("gloopblocks:stair_stone_brick_mossy", "stairs:stair_stone_brick_mossy")
minetest.register_alias("gloopblocks:slab_stone_brick_mossy", "stairs:slab_stone_brick_mossy")
minetest.register_alias("gloopblocks:stair_stone_mossy", "stairs:stair_stone_mossy")
minetest.register_alias("gloopblocks:slab_stone_mossy", "stairs:slab_stone_mossy")
minetest.register_alias("gloopblocks:stair_cement", "stairs:stair_cement")
minetest.register_alias("gloopblocks:slab_cement", "stairs:slab_cement")
minetest.register_alias("gloopblocks:stair_pavement", "stairs:stair_pavement")
minetest.register_alias("gloopblocks:slab_pavement", "stairs:slab_pavement")
minetest.register_alias("gloopblocks:stair_pumice", "stairs:stair_pumice")
minetest.register_alias("gloopblocks:slab_pumice", "stairs:slab_pumice")
minetest.register_alias("gloopblocks:stair_basalt", "stairs:stair_basalt")
minetest.register_alias("gloopblocks:slab_basalt", "stairs:slab_basalt")
minetest.register_alias("gloopblocks:stair_rainbow_block", "stairs:stair_rainbow_block")
minetest.register_alias("gloopblocks:slab_rainbow_block", "stairs:slab_rainbow_block")
end
-- Tools
minetest.register_tool("gloopblocks:pick_cement", {
description = S("Cement Pickaxe"),
inventory_image = "gloopblocks_cement_pick.png",
tool_capabilities = {
full_punch_interval = 1.0,
max_drop_level=1,
groupcaps={
cracky={times={[1]=3.50, [2]=1.40, [3]=0.90}, uses=25, maxlevel=2}
},
damage_groups = {fleshy=4},
},
})
minetest.register_tool("gloopblocks:shovel_cement", {
description = S("Cement Shovel"),
inventory_image = "gloopblocks_cement_shovel.png",
tool_capabilities = {
full_punch_interval = 1.0,
max_drop_level=1,
groupcaps={
crumbly={times={[1]=1.50, [2]=0.60, [3]=0.45}, uses=25, maxlevel=2}
},
damage_groups = {fleshy=4},
},
})
minetest.register_tool("gloopblocks:axe_cement", {
description = S("Cement Axe"),
inventory_image = "gloopblocks_cement_axe.png",
tool_capabilities = {
full_punch_interval = 1.0,
max_drop_level=1,
groupcaps={
choppy={times={[1]=3.00, [2]=1.30, [3]=0.80}, uses=25, maxlevel=2},
fleshy={times={[2]=1.20, [3]=0.65}, uses=30, maxlevel=1}
},
damage_groups = {fleshy=4},
},
})
minetest.register_tool("gloopblocks:sword_cement", {
description = S("Cement Sword"),
inventory_image = "gloopblocks_cement_sword.png",
tool_capabilities = {
full_punch_interval = 1.0,
max_drop_level=1,
groupcaps={
fleshy={times={[1]=1.60, [2]=0.80, [3]=0.40}, uses=15, maxlevel=2},
snappy={times={[2]=0.75, [3]=0.35}, uses=30, maxlevel=1},
choppy={times={[3]=0.80}, uses=30, maxlevel=0}
},
damage_groups = {fleshy=6},
}
})
minetest.register_tool("gloopblocks:pick_evil", {
description = S("Evil Pickaxe"),
inventory_image = "gloopblocks_evil_pick.png",
tool_capabilities = {
full_punch_interval = 1.0,
max_drop_level=3,
groupcaps={
cracky={times={[1]=0.10, [2]=0.10, [3]=0.10}, uses=10, maxlevel=2}
},
damage_groups = {fleshy=6},
},
})
minetest.register_tool("gloopblocks:shovel_evil", {
description = S("Evil Shovel"),
inventory_image = "gloopblocks_evil_shovel.png",
tool_capabilities = {
full_punch_interval = 1.0,
max_drop_level=3,
groupcaps={
crumbly={times={[1]=0.05, [2]=0.05, [3]=0.05}, uses=10, maxlevel=2}
},
damage_groups = {fleshy=6},
},
})
minetest.register_tool("gloopblocks:axe_evil", {
description = S("Evil Axe"),
inventory_image = "gloopblocks_evil_axe.png",
tool_capabilities = {
full_punch_interval = 1.0,
max_drop_level=3,
groupcaps={
choppy={times={[1]=0.15, [2]=0.15, [3]=0.15}, uses=10, maxlevel=2},
fleshy={times={[1]=0.15, [2]=0.15, [3]=0.15}, uses=10, maxlevel=2}
},
damage_groups = {fleshy=6},
},
})
minetest.register_tool("gloopblocks:sword_evil", {
description = S("Evil Sword"),
inventory_image = "gloopblocks_evil_sword.png",
tool_capabilities = {
full_punch_interval = 1.0,
max_drop_level=3,
groupcaps={
fleshy={times={[1]=0.20, [2]=0.20, [3]=0.20}, uses=10, maxlevel=2},
snappy={times={[1]=0.20, [2]=0.20, [3]=0.20}, uses=10, maxlevel=2},
choppy={times={[1]=0.20, [2]=0.20, [3]=0.20}, uses=10, maxlevel=2}
},
damage_groups = {fleshy=8},
}
})
-- Other items
minetest.register_craftitem("gloopblocks:evil_stick", {
description = S("Evil Stick"),
inventory_image = "gloopblocks_evil_stick.png",
})
local fence_texture =
"default_fence_overlay.png^default_steel_block.png^default_fence_overlay.png^[makealpha:255,126,126"
minetest.register_node("gloopblocks:fence_steel", {
description = S("Steel Fence"),
drawtype = "fencelike",
tiles = {"default_steel_block.png"},
inventory_image = fence_texture,
wield_image = fence_texture,
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
selection_box = {
type = "fixed",
fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7},
},
groups = {choppy = 2, oddly_breakable_by_hand = 2 },
sounds = default.node_sound_stone_defaults(),
})
minetest.register_alias("nyancat:nyancat_rainbow", "gloopblocks:rainbow_block_horizontal")
minetest.register_alias("default:nyancat_rainbow", "gloopblocks:rainbow_block_horizontal")
-- These are dummy calls to S() for the translation updater script.
-- To update this list, add this code to my_stairs_register_stair_and_slab function:
-- for _, x in ipairs({"", "Inner ", "Outer "}) do print(("S(%q)"):format(x .. desc_stair)) end
-- print(("S(%q)"):format(desc_slab))
--[[
S("Mossy Stone Stair")
S("Inner Mossy Stone Stair")
S("Outer Mossy Stone Stair")
S("Mossy Stone Slab")
S("Mossy Cobblestone Stair")
S("Inner Mossy Cobblestone Stair")
S("Outer Mossy Cobblestone Stair")
S("Mossy Cobblestone Slab")
S("Mossy Stone Brick Stair")
S("Inner Mossy Stone Brick Stair")
S("Outer Mossy Stone Brick Stair")
S("Mossy Stone Brick Slab")
S("Cobblestone Roadbed Stair")
S("Inner Cobblestone Roadbed Stair")
S("Outer Cobblestone Roadbed Stair")
S("Cobblestone Roadbed Slab")
S("Mossy Cobblestone Roadbed Stair")
S("Inner Mossy Cobblestone Roadbed Stair")
S("Outer Mossy Cobblestone Roadbed Stair")
S("Mossy Cobblestone Roadbed Slab")
S("Cement Stair")
S("Inner Cement Stair")
S("Outer Cement Stair")
S("Cement Slab")
S("Pavement Stair")
S("Inner Pavement Stair")
S("Outer Pavement Stair")
S("Pavement Slab")
S("Basalt Stair")
S("Inner Basalt Stair")
S("Outer Basalt Stair")
S("Basalt Slab")
S("Pumice Stair")
S("Inner Pumice Stair")
S("Outer Pumice Stair")
S("Pumice Slab")
S("Rainbow Block Stair")
S("Inner Rainbow Block Stair")
S("Outer Rainbow Block Stair")
S("Rainbow Block Slab")
--]]