forked from VoxeLibre/VoxeLibre
Initial compressed block API and several compressed block series
This commit is contained in:
parent
d264ba70d8
commit
ef1853e83e
|
@ -1,5 +1,146 @@
|
|||
local modname = minetest.get_current_modname()
|
||||
local modpath = minetest.get_modpath(modname)
|
||||
local S = minetest.get_translator(modname)
|
||||
local mod = {}
|
||||
mcl_compressed_block = mod
|
||||
|
||||
dofile(modpath.."/nodes.lua")
|
||||
dofile(modpath.."/recipes.lua")
|
||||
local LABELS = {
|
||||
[0] = "@1",
|
||||
"Compressed @1",
|
||||
"Double Compressed @1",
|
||||
"Triple Compressed @1",
|
||||
"Quadruple Compressed @1",
|
||||
"Quintuple Compressed @1",
|
||||
"Sextuple Compressed @1",
|
||||
"Septuple Compressed @1",
|
||||
"Octuple Compressed @1",
|
||||
}
|
||||
local NODE_NAMES = {
|
||||
[0] = "",
|
||||
"compressed_",
|
||||
"double_compressed_",
|
||||
"triple_compressed_",
|
||||
"quadruple_compressed_",
|
||||
"quintuple_compressed_",
|
||||
"sextuple_compressed_",
|
||||
"septuple_compressed_",
|
||||
"octuple_compressed_",
|
||||
}
|
||||
local BLAST_RESISTENCE = {
|
||||
11, 19, 33, 58, 102, 179, 313, 548,
|
||||
}
|
||||
local HARDNESS = {
|
||||
3, 4, 5, 7, 9, 12, 16, 21,
|
||||
}
|
||||
|
||||
local block_name = "Cobblestone"
|
||||
function mod.register_block_compression(base_block, block_name, max_levels, final_drops)
|
||||
local base_nodedef = minetest.registered_nodes[base_block]
|
||||
assert(base_nodedef)
|
||||
|
||||
local prev_name = base_block
|
||||
for i = 1,(max_levels-1) do
|
||||
local overlay_level = math.ceil(i/max_levels * 8)
|
||||
local name = "mcl_compressed_blocks:"..NODE_NAMES[i]..block_name
|
||||
|
||||
minetest.register_node(name,{
|
||||
description = S(LABELS[i], base_nodedef.description),
|
||||
_doc_items_longdesc = (
|
||||
"@1 is a decorative block made from 9 @2. It is useful for saving space in your inventories."
|
||||
):gsub("@1",LABELS[i]:gsub("@1",block_name)):gsub("@2",LABELS[i-1]:gsub("@1",block_name)),
|
||||
_doc_items_hidden = false,
|
||||
tiles = {base_nodedef.tiles[1].."^mcl_compressed_blocks_"..tostring(overlay_level).."x_overlay.png"},
|
||||
is_ground_content = true,
|
||||
stack_max = 64,
|
||||
groups = {pickaxey=1, stone=1, building_block=1},
|
||||
sounds = base_nodedef.sounds,
|
||||
_mcl_blast_resistance = BLAST_RESISTENCE[i],
|
||||
_mcl_hardness = HARDNESS[i],
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = name,
|
||||
recipe = {
|
||||
{ prev_name, prev_name, prev_name },
|
||||
{ prev_name, prev_name, prev_name },
|
||||
{ prev_name, prev_name, prev_name },
|
||||
},
|
||||
})
|
||||
minetest.register_craft({
|
||||
output = prev_name .. " 9",
|
||||
recipe = {
|
||||
{ name },
|
||||
},
|
||||
})
|
||||
prev_name = name
|
||||
end
|
||||
|
||||
-- Compression Terminal Block
|
||||
local name = "mcl_compressed_blocks:"..NODE_NAMES[max_levels]..block_name
|
||||
minetest.register_node(name,{
|
||||
description = S(LABELS[max_levels], base_nodedef.description),
|
||||
_doc_items_longdesc = (
|
||||
"@1 is a decorative block made from 9 @2. It is useful for saving space in your inventories."
|
||||
):gsub("@1",LABELS[max_levels]:gsub("@1",block_name)):gsub("@2",LABELS[max_levels-1]:gsub("@1",block_name)),
|
||||
_doc_items_hidden = false,
|
||||
tiles = {base_nodedef.tiles[1].."^mcl_compressed_blocks_8x_overlay.png"},
|
||||
is_ground_content = true,
|
||||
stack_max = 64,
|
||||
groups = {pickaxey=1, stone=1, building_block=1},
|
||||
drop = final_drops,
|
||||
sounds = base_nodedef.sounds,
|
||||
_mcl_blast_resistance = BLAST_RESISTENCE[max_levels],
|
||||
_mcl_hardness = HARDNESS[max_levels],
|
||||
_mcl_silk_touch_drop = true,
|
||||
})
|
||||
minetest.register_craft({
|
||||
output = name,
|
||||
recipe = {
|
||||
{ prev_name, prev_name, prev_name },
|
||||
{ prev_name, prev_name, prev_name },
|
||||
{ prev_name, prev_name, prev_name },
|
||||
},
|
||||
})
|
||||
minetest.register_craft({
|
||||
output = prev_name .. " 9",
|
||||
recipe = {
|
||||
{ name },
|
||||
},
|
||||
})
|
||||
end
|
||||
|
||||
mod.register_block_compression("mcl_core:cobble", "cobblestone", 8, {
|
||||
max_items = 2,
|
||||
items = {
|
||||
{items = {"mcl_core:diamond 9"}},
|
||||
{items = {"mcl_nether:netherite_scrap 18"}},
|
||||
},
|
||||
})
|
||||
mod.register_block_compression("mcl_deepslate:deepslate_cobbled", "deepslate_cobbled", 8, {
|
||||
max_items = 2,
|
||||
items = {
|
||||
{items = {"mcl_core:diamond 9"}},
|
||||
{items = {"mcl_nether:netherite_scrap 18"}},
|
||||
},
|
||||
})
|
||||
mod.register_block_compression("mcl_core:granite", "granite", 5, {
|
||||
max_items = 2,
|
||||
items = {
|
||||
{items = {"mcl_core:diamond 9"}},
|
||||
{items = {"mcl_nether:netherite_scrap 18"}},
|
||||
},
|
||||
})
|
||||
mod.register_block_compression("mcl_core:diorite", "diorite", 6, {
|
||||
max_items = 2,
|
||||
items = {
|
||||
{items = {"mcl_core:diamond 9"}},
|
||||
{items = {"mcl_nether:netherite_scrap 18"}},
|
||||
},
|
||||
})
|
||||
mod.register_block_compression("mcl_core:andesite", "andesite", 6, {
|
||||
max_items = 2,
|
||||
items = {
|
||||
{items = {"mcl_core:diamond 9"}},
|
||||
{items = {"mcl_nether:netherite_scrap 18"}},
|
||||
},
|
||||
})
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
name = mcl_compressed_blocks
|
||||
depends = mcl_core
|
||||
depends = mcl_core, mcl_deepslate
|
||||
description = adds compressed blocks to voxelibre
|
||||
|
||||
|
|
|
@ -1,124 +0,0 @@
|
|||
local modname = minetest.get_current_modname()
|
||||
local S = minetest.get_translator(modname)
|
||||
|
||||
--Compressed Cobblestone
|
||||
minetest.register_node("mcl_compressed_blocks:compressed_cobblestone", {
|
||||
description = S("Compressed Cobblestone"),
|
||||
_doc_items_longdesc = S("Compressed Cobblestone is a decorative block made from 9 Cobblestone. It is useful for saving space in your inventories."),
|
||||
_doc_items_hidden = false,
|
||||
tiles = {"mcl_compressed_blocks_compressed_cobblestone.png"},
|
||||
is_ground_content = true,
|
||||
stack_max = 64,
|
||||
groups = {pickaxey=1, stone=1, building_block=1},
|
||||
sounds = mcl_sounds.node_sound_stone_defaults(),
|
||||
_mcl_blast_resistance = 11,
|
||||
_mcl_hardness = 3,
|
||||
})
|
||||
|
||||
--Double Compressed Cobble
|
||||
minetest.register_node("mcl_compressed_blocks:double_compressed_cobblestone", {
|
||||
description = S("Double Compressed Cobblestone"),
|
||||
_doc_items_longdesc = S("Double Compressed Cobblestone is a decorative block made from 9 Compressed Cobblestone. It is useful for saving space in your inventories."),
|
||||
_doc_items_hidden = false,
|
||||
tiles = {"mcl_compressed_blocks_double_compressed_cobblestone.png"},
|
||||
is_ground_content = true,
|
||||
stack_max = 64,
|
||||
groups = {pickaxey=1, stone=1, building_block=1},
|
||||
sounds = mcl_sounds.node_sound_stone_defaults(),
|
||||
_mcl_blast_resistance = 19,
|
||||
_mcl_hardness = 4,
|
||||
})
|
||||
|
||||
--Triple Compressed Cobble
|
||||
minetest.register_node("mcl_compressed_blocks:triple_compressed_cobblestone", {
|
||||
description = S("Triple Compressed Cobblestone"),
|
||||
_doc_items_longdesc = S("Triple Compressed Cobblestone is a decorative block made from 9 Double Compressed Cobblestone. It is useful for saving space in your inventories."),
|
||||
_doc_items_hidden = false,
|
||||
tiles = {"mcl_compressed_blocks_triple_compressed_cobblestone.png"},
|
||||
is_ground_content = true,
|
||||
stack_max = 64,
|
||||
groups = {pickaxey=1, stone=1, building_block=1},
|
||||
sounds = mcl_sounds.node_sound_stone_defaults(),
|
||||
_mcl_blast_resistance = 33,
|
||||
_mcl_hardness = 5,
|
||||
})
|
||||
|
||||
--Quadruple Compressed Cobble
|
||||
minetest.register_node("mcl_compressed_blocks:quadruple_compressed_cobblestone", {
|
||||
description = S("Quadruple Compressed Cobblestone"),
|
||||
_doc_items_longdesc = S("Quadruple Compressed Cobblestone is a decorative block made from 9 Triple Compressed Cobblestone. It is useful for saving space in your inventories."),
|
||||
_doc_items_hidden = false,
|
||||
tiles = {"mcl_compressed_blocks_quadruple_compressed_cobblestone.png"},
|
||||
is_ground_content = true,
|
||||
stack_max = 64,
|
||||
groups = {pickaxey=1, stone=1, building_block=1},
|
||||
sounds = mcl_sounds.node_sound_stone_defaults(),
|
||||
_mcl_blast_resistance = 58,
|
||||
_mcl_hardness = 7,
|
||||
})
|
||||
|
||||
--Quintuple Compressed Cobble
|
||||
minetest.register_node("mcl_compressed_blocks:quintuple_compressed_cobblestone", {
|
||||
description = S("Quintuple Compressed Cobblestone"),
|
||||
_doc_items_longdesc = S("Quintuple Compressed Cobblestone is a decorative block made from 9 Quadruple Compressed Cobblestone. It is useful for saving space in your inventories."),
|
||||
_doc_items_hidden = false,
|
||||
tiles = {"mcl_compressed_blocks_quintuple_compressed_cobblestone.png"},
|
||||
is_ground_content = true,
|
||||
stack_max = 64,
|
||||
groups = {pickaxey=1, stone=1, building_block=1},
|
||||
sounds = mcl_sounds.node_sound_stone_defaults(),
|
||||
_mcl_blast_resistance = 102,
|
||||
_mcl_hardness = 9,
|
||||
})
|
||||
|
||||
--Sextuple Compressed Cobble
|
||||
minetest.register_node("mcl_compressed_blocks:sextuple_compressed_cobblestone", {
|
||||
description = S("Sextuple Compressed Cobblestone"),
|
||||
_doc_items_longdesc = S("Sextuple Compressed Cobblestone is a decorative block made from 9 Quintuple Compressed Cobblestone. It is useful for saving space in your inventories."),
|
||||
_doc_items_hidden = false,
|
||||
tiles = {"mcl_compressed_blocks_sextuple_compressed_cobblestone.png"},
|
||||
is_ground_content = true,
|
||||
stack_max = 64,
|
||||
groups = {pickaxey=1, stone=1, building_block=1},
|
||||
sounds = mcl_sounds.node_sound_stone_defaults(),
|
||||
_mcl_blast_resistance = 179,
|
||||
_mcl_hardness = 12,
|
||||
})
|
||||
|
||||
--Septuple Compressed Cobble
|
||||
minetest.register_node("mcl_compressed_blocks:septuple_compressed_cobblestone", {
|
||||
description = S("Septuple Compressed Cobblestone"),
|
||||
_doc_items_longdesc = S("Septuple Compressed Cobblestone is a decorative block made from 9 Sextuple Compressed Cobblestone. It is useful for saving space in your inventories."),
|
||||
_doc_items_hidden = false,
|
||||
tiles = {"mcl_compressed_blocks_septuple_compressed_cobblestone.png"},
|
||||
is_ground_content = true,
|
||||
stack_max = 64,
|
||||
groups = {pickaxey=1, stone=1, building_block=1},
|
||||
sounds = mcl_sounds.node_sound_stone_defaults(),
|
||||
_mcl_blast_resistance = 313,
|
||||
_mcl_hardness = 16,
|
||||
})
|
||||
|
||||
--Ocutple Compressed Cobble
|
||||
minetest.register_node("mcl_compressed_blocks:octuple_compressed_cobblestone", {
|
||||
description = S("Octuple Compressed Cobblestone"),
|
||||
_doc_items_longdesc = S("Octuple Compressed Cobblestone is a decorative block made from 9 Septuple Compressed Cobblestone. It is useful for saving space in your inventories."),
|
||||
_doc_items_hidden = false,
|
||||
tiles = {"mcl_compressed_blocks_octuple_compressed_cobblestone.png"},
|
||||
is_ground_content = true,
|
||||
stack_max = 64,
|
||||
groups = {pickaxey=1, stone=1, building_block=1},
|
||||
drop = {
|
||||
|
||||
max_items = 2,
|
||||
items = {
|
||||
{items = {"mcl_core:diamond 9"}},
|
||||
{items = {"mcl_nether:netherite_scrap 18"}},
|
||||
},
|
||||
},
|
||||
|
||||
sounds = mcl_sounds.node_sound_stone_defaults(),
|
||||
_mcl_blast_resistance = 548,
|
||||
_mcl_hardness = 21,
|
||||
_mcl_silk_touch_drop = true,
|
||||
})
|
|
@ -1,127 +0,0 @@
|
|||
minetest.register_craft({
|
||||
output = "mcl_compressed_blocks:compressed_cobblestone",
|
||||
recipe = {
|
||||
{ "mcl_core:cobble", "mcl_core:cobble", "mcl_core:cobble" },
|
||||
{ "mcl_core:cobble", "mcl_core:cobble", "mcl_core:cobble" },
|
||||
{ "mcl_core:cobble", "mcl_core:cobble", "mcl_core:cobble" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "mcl_core:cobble 9",
|
||||
recipe = {
|
||||
{ "mcl_compressed_blocks:compressed_cobblestone" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "mcl_compressed_blocks:double_compressed_cobblestone",
|
||||
recipe = {
|
||||
{ "mcl_compressed_blocks:compressed_cobblestone", "mcl_compressed_blocks:compressed_cobblestone", "mcl_compressed_blocks:compressed_cobblestone" },
|
||||
{ "mcl_compressed_blocks:compressed_cobblestone", "mcl_compressed_blocks:compressed_cobblestone", "mcl_compressed_blocks:compressed_cobblestone" },
|
||||
{ "mcl_compressed_blocks:compressed_cobblestone", "mcl_compressed_blocks:compressed_cobblestone", "mcl_compressed_blocks:compressed_cobblestone" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "mcl_compressed_blocks:compressed_cobblestone 9",
|
||||
recipe = {
|
||||
{ "mcl_compressed_blocks:double_compressed_cobblestone" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "mcl_compressed_blocks:triple_compressed_cobblestone",
|
||||
recipe = {
|
||||
{ "mcl_compressed_blocks:double_compressed_cobblestone", "mcl_compressed_blocks:double_compressed_cobblestone", "mcl_compressed_blocks:double_compressed_cobblestone" },
|
||||
{ "mcl_compressed_blocks:double_compressed_cobblestone", "mcl_compressed_blocks:double_compressed_cobblestone", "mcl_compressed_blocks:double_compressed_cobblestone" },
|
||||
{ "mcl_compressed_blocks:double_compressed_cobblestone", "mcl_compressed_blocks:double_compressed_cobblestone", "mcl_compressed_blocks:double_compressed_cobblestone" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "mcl_compressed_blocks:double_compressed_cobblestone 9",
|
||||
recipe = {
|
||||
{ "mcl_compressed_blocks:triple_compressed_cobblestone" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "mcl_compressed_blocks:quadruple_compressed_cobblestone",
|
||||
recipe = {
|
||||
{ "mcl_compressed_blocks:triple_compressed_cobblestone", "mcl_compressed_blocks:triple_compressed_cobblestone", "mcl_compressed_blocks:triple_compressed_cobblestone" },
|
||||
{ "mcl_compressed_blocks:triple_compressed_cobblestone", "mcl_compressed_blocks:triple_compressed_cobblestone", "mcl_compressed_blocks:triple_compressed_cobblestone" },
|
||||
{ "mcl_compressed_blocks:triple_compressed_cobblestone", "mcl_compressed_blocks:triple_compressed_cobblestone", "mcl_compressed_blocks:triple_compressed_cobblestone" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "mcl_compressed_blocks:triple_compressed_cobblestone 9",
|
||||
recipe = {
|
||||
{ "mcl_compressed_blocks:quadruple_compressed_cobblestone" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "mcl_compressed_blocks:quintuple_compressed_cobblestone",
|
||||
recipe = {
|
||||
{ "mcl_compressed_blocks:quadruple_compressed_cobblestone", "mcl_compressed_blocks:quadruple_compressed_cobblestone", "mcl_compressed_blocks:quadruple_compressed_cobblestone" },
|
||||
{ "mcl_compressed_blocks:quadruple_compressed_cobblestone", "mcl_compressed_blocks:quadruple_compressed_cobblestone", "mcl_compressed_blocks:quadruple_compressed_cobblestone" },
|
||||
{ "mcl_compressed_blocks:quadruple_compressed_cobblestone", "mcl_compressed_blocks:quadruple_compressed_cobblestone", "mcl_compressed_blocks:quadruple_compressed_cobblestone" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "mcl_compressed_blocks:quadruple_compressed_cobblestone 9",
|
||||
recipe = {
|
||||
{ "mcl_compressed_blocks:quintuple_compressed_cobblestone" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "mcl_compressed_blocks:sextuple_compressed_cobblestone",
|
||||
recipe = {
|
||||
{ "mcl_compressed_blocks:quintuple_compressed_cobblestone", "mcl_compressed_blocks:quintuple_compressed_cobblestone", "mcl_compressed_blocks:quintuple_compressed_cobblestone" },
|
||||
{ "mcl_compressed_blocks:quintuple_compressed_cobblestone", "mcl_compressed_blocks:quintuple_compressed_cobblestone", "mcl_compressed_blocks:quintuple_compressed_cobblestone" },
|
||||
{ "mcl_compressed_blocks:quintuple_compressed_cobblestone", "mcl_compressed_blocks:quintuple_compressed_cobblestone", "mcl_compressed_blocks:quintuple_compressed_cobblestone" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "mcl_compressed_blocks:quintuple_compressed_cobblestone 9",
|
||||
recipe = {
|
||||
{ "mcl_compressed_blocks:sextuple_compressed_cobblestone" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "mcl_compressed_blocks:septuple_compressed_cobblestone",
|
||||
recipe = {
|
||||
{ "mcl_compressed_blocks:sextuple_compressed_cobblestone", "mcl_compressed_blocks:sextuple_compressed_cobblestone", "mcl_compressed_blocks:sextuple_compressed_cobblestone" },
|
||||
{ "mcl_compressed_blocks:sextuple_compressed_cobblestone", "mcl_compressed_blocks:sextuple_compressed_cobblestone", "mcl_compressed_blocks:sextuple_compressed_cobblestone" },
|
||||
{ "mcl_compressed_blocks:sextuple_compressed_cobblestone", "mcl_compressed_blocks:sextuple_compressed_cobblestone", "mcl_compressed_blocks:sextuple_compressed_cobblestone" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "mcl_compressed_blocks:sextuple_compressed_cobblestone 9",
|
||||
recipe = {
|
||||
{ "mcl_compressed_blocks:septuple_compressed_cobblestone" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "mcl_compressed_blocks:octuple_compressed_cobblestone",
|
||||
recipe = {
|
||||
{ "mcl_compressed_blocks:septuple_compressed_cobblestone", "mcl_compressed_blocks:septuple_compressed_cobblestone", "mcl_compressed_blocks:septuple_compressed_cobblestone" },
|
||||
{ "mcl_compressed_blocks:septuple_compressed_cobblestone", "mcl_compressed_blocks:septuple_compressed_cobblestone", "mcl_compressed_blocks:septuple_compressed_cobblestone" },
|
||||
{ "mcl_compressed_blocks:septuple_compressed_cobblestone", "mcl_compressed_blocks:septuple_compressed_cobblestone", "mcl_compressed_blocks:septuple_compressed_cobblestone" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "mcl_compressed_blocks:septuple_compressed_cobblestone 9",
|
||||
recipe = {
|
||||
{ "mcl_compressed_blocks:octuple_compressed_cobblestone" },
|
||||
},
|
||||
})
|
Loading…
Reference in New Issue