1
0
forked from MTSR/jonez
jonez/init.lua
Aleksandr Avdeev 5ec0f2dbde mtsr version
2024-08-31 11:07:49 +03:00

575 lines
19 KiB
Lua

--Variables
jonez = {}
local mod_name = minetest.get_current_modname()
local mod_path = minetest.get_modpath(mod_name)
local S = minetest.get_translator(mod_name)
assert(loadfile(mod_path .. "/chisel.lua"))(S)
local function firstToUpper(str)
return (str:gsub("^%l", string.upper))
end
jonez.chisel.register_chiselable("jonez:marble", "jonez:marble", "raw" )
minetest.register_node("jonez:marble", {
description = S("Ancient Marble"),
tiles = {"jonez_marble.png"},
is_ground_content = true,
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
})
jonez.chisel.register_chiselable("jonez:marble_polished", "jonez:marble", "polished" )
minetest.register_node("jonez:marble_polished", {
description = S("Ancient Polished Marble"),
tiles = {"jonez_marble_polished.png"},
is_ground_content = true,
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
})
jonez.chisel.register_chiselable_stair_and_slab("marble", "marble", "raw" )
stairs.register_stair_and_slab(
"marble",
"jonez:marble",
{cracky = 2, stone = 1},
{"jonez_marble.png"},
S("Ancient Marble Stair"),
S("Ancient Marble Slab"),
default.node_sound_stone_defaults()
)
jonez.chisel.register_chiselable("jonez:marble_brick", "jonez:marble_brick", "raw" )
minetest.register_node("jonez:marble_brick", {
description = S("Ancient Marble Brick"),
tiles = {"jonez_marble_brick.png"},
is_ground_content = false,
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
})
jonez.chisel.register_chiselable_stair_and_slab("marble_brick", "marble_brick", "raw" )
stairs.register_stair_and_slab(
"marble_brick",
"jonez:marble_brick",
{cracky = 2, stone = 1},
{"jonez_marble_brick.png"},
S("Ancient Marble Brick Stair"),
S("Ancient Marble Brick Slab"),
default.node_sound_stone_defaults()
)
jonez.chisel.register_chiselable("jonez:marble_brick_polished", "jonez:marble_brick", "polished" )
minetest.register_node("jonez:marble_brick_polished", {
description = S("Ancient Marble Polished Brick"),
tiles = {"jonez_marble_brick_polished.png"},
is_ground_content = false,
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
})
jonez.chisel.register_chiselable_stair_and_slab("marble_polished", "marble", "polished" )
stairs.register_stair_and_slab(
"marble_polished",
"jonez:marble_polished",
{cracky = 2, stone = 1},
{"jonez_marble_polished.png"},
S("Ancient Polished Marble Stair"),
S("Ancient Polished Marble Slab"),
default.node_sound_stone_defaults()
)
jonez.chisel.register_chiselable_stair_and_slab("marble_brick_polished", "marble_brick", "polished" )
stairs.register_stair_and_slab(
"marble_brick_polished",
"jonez:marble_brick_polished",
{cracky = 2, stone = 1},
{"jonez_marble_brick_polished.png"},
S("Ancient Polished Marble Brick Stair"),
S("Ancient Polished Marble Brick Slab"),
default.node_sound_stone_defaults()
)
minetest.register_craft({
output = 'jonez:marble_brick',
recipe = {
{'jonez:marble', 'jonez:marble'},
{'jonez:marble', 'jonez:marble'},
}
})
minetest.register_craft({
output = 'jonez:marble_brick_polished',
recipe = {
{'jonez:marble_polished', 'jonez:marble_polished'},
{'jonez:marble_polished', 'jonez:marble_polished'},
}
})
minetest.register_ore({
ore_type = "scatter",
ore = "jonez:marble",
wherein = "default:stone",
clust_scarcity = 7*7*7,
clust_num_ores = 5,
clust_size = 3,
height_min = -512,
height_max = -65,
flags = "absheight",
})
local styles = {
"roman",
"greek",
"germanic",
"tuscan",
"romanic",
"nabataean",
"artdeco",
"minoan",
"attic",
"versailles",
"medieval",
"gothic",
"pompeiian",
"corinthian",
"carthaginian",
"industrial",
"romanesque",
"cimmerian",
"nubian",
"norman",
"romantic",
"persian"
}
-- The Crafting of the Greek Set
minetest.register_craft({
output = 'jonez:greek_shaft 3',
type = "shaped",
recipe = {
{'', 'jonez:marble_polished', ''},
{'', 'jonez:marble_polished', ''},
{'', 'jonez:marble_polished', ''},
},
})
minetest.register_craft({
output = 'jonez:greek_architrave 3',
type = "shaped",
recipe = {
{'', '', ''},
{'', '', ''},
{'stairs:slab_marble_polished', 'stairs:slab_marble_polished', 'stairs:slab_marble_polished'},
},
})
minetest.register_craft({
output = 'jonez:greek_base 2',
type = "shaped",
recipe = {
{'', '', ''},
{'', 'jonez:marble_polished', ''},
{'', 'stairs:slab_marble_polished', ''},
},
})
minetest.register_craft({
output = 'jonez:greek_capital 2',
type = "shaped",
recipe = {
{'', '', ''},
{'', 'stairs:slab_marble_polished', ''},
{'', 'jonez:marble_polished', ''},
},
})
for i = 1, #styles do
jonez.chisel.register_chiselable("jonez:"..styles[i].."_architrave", "jonez:architrave", styles[i] )
minetest.register_node("jonez:"..styles[i].."_architrave", {
description = S("Ancient").." "..S(firstToUpper(styles[i])).." "..S("Architrave"),
tiles = {"jonez_"..styles[i].."_top_bottom.png", "jonez_"..styles[i].."_top_bottom.png", "jonez_"..
styles[i].."_architrave.png"},
is_ground_content = false,
groups = {cracky=3},
paramtype2 = "facedir",
sounds = default.node_sound_stone_defaults(),
})
jonez.chisel.register_chiselable("jonez:"..styles[i].."_capital", "jonez:capital", styles[i] )
minetest.register_node("jonez:"..styles[i].."_capital", {
description = S("Ancient").." "..S(firstToUpper(styles[i])).." "..S("Capital"),
tiles = {"jonez_"..styles[i].."_top_bottom.png", "jonez_"..styles[i].."_top_bottom.png", "jonez_"..styles[i]..
"_capital.png"},
is_ground_content = false,
groups = {cracky=3},
paramtype2 = "facedir",
sounds = default.node_sound_stone_defaults(),
})
jonez.chisel.register_chiselable("jonez:"..styles[i].."_shaft", "jonez:shaft", styles[i] )
minetest.register_node("jonez:"..styles[i].."_shaft", {
description = S("Ancient").." "..S(firstToUpper(styles[i])).." "..S("Shaft"),
tiles = {"jonez_"..styles[i].."_top_bottom.png", "jonez_"..styles[i].."_top_bottom.png", "jonez_"..styles[i]..
"_shaft.png"},
is_ground_content = false,
groups = {cracky=3},
paramtype2 = "facedir",
sounds = default.node_sound_stone_defaults(),
})
jonez.chisel.register_chiselable("jonez:"..styles[i].."_base", "jonez:base", styles[i] )
minetest.register_node("jonez:"..styles[i].."_base", {
description = S("Ancient").." "..S(firstToUpper(styles[i])).." "..S("Base"),
tiles = {"jonez_"..styles[i].."_top_bottom.png", "jonez_"..styles[i].."_top_bottom.png", "jonez_"..styles[i]..
"_base.png"},
is_ground_content = false,
groups = {cracky=3},
paramtype2 = "facedir",
sounds = default.node_sound_stone_defaults(),
})
end
local vines = {
{name= "jonez:swedish_ivy", description= "Swedish Ivy", texture= "jonez_sweedish_ivy.png"},
{name= "jonez:ruin_creeper", description= "Ruin Creeper", texture= "jonez_ruin_creeper.png"},
{name= "jonez:ruin_vine", description= "Ruin Vine", texture= "jonez_ruin_vine.png"},
{name= "jonez:climbing_rose", description= "Climbing Rose", texture= "jonez_climbing_rose.png"},
}
for i = 1, #vines do
minetest.register_node(vines[i].name, {
description = S(vines[i].description),
drawtype = "nodebox",
walkable = true,
paramtype = "light",
paramtype2 = "facedir",
tiles = {vines[i].texture},
use_texture_alpha = "clip",
inventory_image = vines[i].texture,
wield_image = vines[i].texture,
node_box = {
type = "fixed",
fixed = {-0.5, -0.5, 0.49, 0.5, 0.5, 0.5}
},
groups = {
snappy = 2, flammable = 3, oddly_breakable_by_hand = 3, choppy = 2, carpet = 1, leafdecay = 3, leaves = 1
},
sounds = default.node_sound_leaves_defaults(),
})
end
local panels = {
{name= "jonez_panel_1", description= "Mosaic Glass Panel", textures={front= "jonez_panel_1.png",
edge="jonez_panes_edge.png"},
recipe = {
{"dye:blue", "dye:black", "dye:pink"},
{"dye:red", "xpanes:pane_flat", "dye:green"},
{"dye:yellow", "dye:black", "dye:orange"},
}
},
{name= "jonez_panel_2", description= "Blossom Glass Panel", textures={front="jonez_panel_2.png",
edge="jonez_panes_edge.png"},
recipe = {
{"dye:blue", "dye:red", "dye:green"},
{"dye:yellow", "xpanes:pane_flat", "dye:yellow"},
{"dye:green", "dye:red", "dye:orange"},
}
},
{name= "wrought_lattice_bottom", description= "Ancient Wrought Lattice (Bottom)",
textures={front="jonez_wrought_lattice_bottom.png", edge="jonez_panes_edge.png"},
use_texture_alpha = "clip",
recipe = {
{'', '', ''},
{'default:steel_ingot', 'default:tin_ingot', 'default:steel_ingot'},
{'default:steel_ingot', 'default:tin_ingot', 'default:steel_ingot'},
}
},
{name= "palace_window_top", description= "Palace Window (Top)",
textures={front="jonez_palace_window_top.png", edge="default_wood.png"},
use_texture_alpha = "clip",
recipe = {
{'', 'xpanes:pane_flat', ''},
{'', 'xpanes:pane_flat', ''},
{'', '', ''},
}
},
{name= "palace_window_bottom", description= "Palace Window (Bottom)",
textures={front="jonez_palace_window_bottom.png", edge="default_wood.png"},
use_texture_alpha = "clip",
recipe = {
{'', '', ''},
{'', 'xpanes:pane_flat', ''},
{'', 'xpanes:pane_flat', ''},
}
},
}
for j=1, #panels do
xpanes.register_pane(panels[j].name, {
description = S(panels[j].description),
textures = {panels[j].textures.front, nil, panels[j].textures.edge},
use_texture_alpha = panels[j].use_texture_alpha,
inventory_image = panels[j].textures.front,
wield_image = panels[j].textures.front,
sounds = default.node_sound_glass_defaults(),
groups = {snappy=2, cracky=3, oddly_breakable_by_hand=3},
recipe = panels[j].recipe
})
end
local pavements= {
{name= "jonez:blossom_pavement", description= "Ancient Blossom Pavement", texture= "jonez_blossom_pavement.png",
recipe = {
{'', 'stairs:slab_marble', ''},
{'stairs:slab_marble', 'stairs:slab_marble', 'stairs:slab_marble'},
{'', 'stairs:slab_marble', ''},
}
},
{name= "jonez:tiled_pavement", description= "Ancient Tiled Pavement", texture= "jonez_tiled_pavement.png",
recipe = {
{'stairs:slab_marble_brick', 'stairs:slab_marble_brick', ''},
{'', 'stairs:slab_marble_brick', 'stairs:slab_marble_brick'},
{'stairs:slab_marble_brick', 'stairs:slab_marble_brick', ''},
}
},
{name= "jonez:mosaic_pavement", description= "Ancient Mosaic Pavement", texture= "jonez_mosaic_pavement.png",
recipe = {
{'stairs:slab_marble_brick', 'stairs:slab_marble_brick', 'stairs:slab_marble_brick'},
{'stairs:slab_marble_brick', 'stairs:slab_marble_brick', 'stairs:slab_marble_brick'},
{'stairs:slab_marble_brick', 'stairs:slab_marble_brick', 'stairs:slab_marble_brick'},
}
},
{name= "jonez:diamond_pavement", description= "Ancient Diamond Pavement", texture= "jonez_diamond_pavement.png",
recipe = {
{'', 'stairs:slab_marble', ''},
{'stairs:slab_marble', '', 'stairs:slab_marble'},
{'', 'stairs:slab_marble', ''},
}
},
{name= "jonez:pebbled_pavement", description= "Ancient Pebbled Pavement", texture= "jonez_pebbled_pavement.png",
recipe = {
{'', 'stairs:slab_marble_brick_polished', ''},
{'stairs:slab_marble_brick_polished', 'stairs:slab_marble_brick_polished',
'stairs:slab_marble_brick_polished'},
{'', 'stairs:slab_marble_brick_polished', ''},
}
},
{name= "jonez:pebbled_medieval_pavement", description= "Ancient Pebbled Medieval Pavement",
texture= "jonez_pebbled_medieval_pavement.png",
recipe = {
{'stairs:slab_marble_brick_polished', 'stairs:slab_marble_brick_polished', ''},
{'stairs:slab_marble_brick_polished', 'stairs:slab_marble_brick_polished',
'stairs:slab_marble_brick_polished'},
{'', 'stairs:slab_marble_brick_polished', 'stairs:slab_marble_brick_polished'},
}
},
{name= "jonez:pebbled_gothic_pavement", description= "Ancient Pebbled Gothic Pavement",
texture= "jonez_pebbled_gothic_pavement.png",
recipe = {
{'stairs:slab_marble_brick_polished', 'stairs:slab_marble_brick_polished', ''},
{'', 'stairs:slab_marble_brick_polished', ''},
{'', 'stairs:slab_marble_brick_polished', 'stairs:slab_marble_brick_polished'},
}
},
{name= "jonez:pebbled_wall", description= "Ancient Pebbled Wall", texture= "jonez_pebbled_wall.png",
recipe = {
{'', 'stairs:slab_marble_brick_polished', ''},
{'stairs:slab_marble_brick_polished', 'stairs:slab_marble_brick_polished',
'stairs:slab_marble_brick_polished'},
{'', 'stairs:slab_marble_brick_polished', ''},
}
},
{name= "jonez:gothic_wall", description= "Ancient Gothic Wall", texture= "jonez_gothic_top_bottom.png",
recipe = {
{'', 'stairs:slab_marble_brick', ''},
{'stairs:slab_marble_brick', 'stairs:slab_marble_brick', 'stairs:slab_marble_brick'},
{'', 'stairs:slab_marble_brick', ''},
}
},
{name= "jonez:pompeiian_wall", description= "Ancient Pompeiian Wall", texture= "jonez_pompeiian_wall.png",
recipe = {
{'', 'stairs:slab_marble_brick_polished', ''},
{'stairs:slab_marble_brick', 'stairs:slab_marble_brick_polished', 'stairs:slab_marble_brick'},
{'', 'stairs:slab_marble_brick_polished', ''},
}
},
{name= "jonez:pompeiian_pavement", description= "Ancient Pompeiian Pavement",
texture= "jonez_pompeiian_pavement.png",
recipe = {
{'stairs:slab_marble_brick', 'stairs:slab_marble_brick_polished', 'stairs:slab_marble_brick'},
{'stairs:slab_marble_brick', 'stairs:slab_marble_brick_polished', 'stairs:slab_marble_brick'},
{'stairs:slab_marble_brick', 'stairs:slab_marble_brick_polished', 'stairs:slab_marble_brick'},
}
},
{name= "jonez:pompeiian_path", description= "Ancient Pompeiian Path", texture= "jonez_pompeiian_path.png",
amount = 4,
recipe = {
{'stairs:slab_marble_brick_polished', 'stairs:slab_marble_brick', 'stairs:slab_marble_brick_polished'},
{'stairs:slab_marble_brick', 'stairs:slab_marble_brick', 'stairs:slab_marble_brick'},
{'stairs:slab_marble_brick_polished', 'stairs:slab_marble_brick', 'stairs:slab_marble_brick_polished'},
}
},
{name= "jonez:carthaginian_pavement", description= "Carthaginian Pavement",
texture= "jonez_carthaginian_pavement.png", amount = 4,
recipe = {
{'stairs:slab_marble_brick', 'stairs:slab_marble_brick_polished', 'stairs:slab_marble_brick'},
{'stairs:slab_marble_brick', 'stairs:slab_marble_brick', 'stairs:slab_marble_brick'},
{'stairs:slab_marble_brick', 'stairs:slab_marble_brick_polished', 'stairs:slab_marble_brick'},
}
},
{name= "jonez:carthaginian_wall", description= "Carthaginian Wall", texture= "jonez_carthaginian_wall.png",
amount = 4,
recipe = {
{'stairs:slab_marble_brick_polished', 'stairs:slab_marble_brick', 'stairs:slab_marble_brick_polished'},
{'stairs:slab_marble_brick', 'stairs:slab_marble_brick_polished', 'stairs:slab_marble_brick'},
{'stairs:slab_marble_brick_polished', 'stairs:slab_marble_brick', 'stairs:slab_marble_brick_polished'},
}
},
{name= "jonez:nubian_wall", description= "Nubian Wall", texture= "jonez_nubian_wall.png", amount = 9,
recipe = {
{'default:sandstonebrick', 'default:sandstonebrick', 'default:sandstonebrick'},
{'default:sandstonebrick', 'default:sandstonebrick', 'default:sandstonebrick'},
{'default:sandstonebrick', 'default:sandstonebrick', 'default:sandstonebrick'},
}
},
}
for i = 1, #pavements do
minetest.register_node(pavements[i].name, {
description = S(pavements[i].description),
tiles = {pavements[i].texture},
is_ground_content = true,
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
})
local amount
if pavements[i].amount then
amount = tostring(pavements[i].amount)
else
amount = "1"
end
minetest.register_craft({
output = pavements[i].name .. " " .. amount,
type = 'shaped',
recipe = pavements[i].recipe,
})
end
minetest.register_node("jonez:wrought_lattice_top", {
description = S("Ancient Wrought Lattice (Top)"),
is_ground_content = true,
groups = {cracky=3},
walkable = true,
sounds = default.node_sound_stone_defaults(),
paramtype = "light",
paramtype2 = "facedir",
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, -0.0, 0.5, 0.1875, 0.0},
}
},
tiles = {
nil,
nil,
nil,
nil,
"jonez_wrought_lattice_top.png",
"jonez_wrought_lattice_top.png"
},
use_texture_alpha = "clip",
})
minetest.register_craft({
output = 'jonez:wrought_lattice_top',
recipe = {
{'default:steel_ingot', 'default:tin_ingot', 'default:steel_ingot'},
{'default:steel_ingot', 'default:tin_ingot', 'default:steel_ingot'},
{'', '', ''},
}
})
minetest.register_node("jonez:versailles_pavement", {
description = S("Versailles Pavement"),
tiles = {"jonez_versailles_pavement.png"},
is_ground_content = false,
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_craft({
output = 'jonez:versailles_pavement',
type = "shaped",
recipe = {
{'', '', ''},
{'', 'stairs:slab_marble_brick', ''},
{'stairs:slab_marble_brick', '', 'stairs:slab_marble_brick'},
},
})
minetest.register_node("jonez:versailles_tile", {
description = S("Versailles Tile"),
tiles = {"jonez_versailles_tile.png"},
is_ground_content = false,
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_craft({
output = 'jonez:versailles_tile 9',
type = "shapeless",
recipe = {
'jonez:diamond_pavement', 'stairs:slab_marble_brick', 'jonez:diamond_pavement',
'stairs:slab_marble_brick', 'jonez:diamond_pavement', 'stairs:slab_marble_brick',
'jonez:diamond_pavement', 'stairs:slab_marble_brick', 'jonez:diamond_pavement',
},
})
minetest.register_node("jonez:pompeiian_altar", {
description = S("Ancient Pompeiian Altar"),
tiles = {"jonez_pompeiian_top_bottom.png", "jonez_pompeiian_top_bottom.png", "jonez_pompeiian_altar.png"},
is_ground_content = false,
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_craft({
output = 'jonez:pompeiian_altar',
type = "shaped",
recipe = {
{'', '', ''},
{'', 'stairs:slab_marble_brick_polished', ''},
{'', 'jonez:marble_polished', ''},
},
})
minetest.register_node("jonez:censer", {
description = S("Censer"),
tiles = {"jonez_censer_top.png", "jonez_censer_top.png", "jonez_censer_front.png"},
drawtype = "nodebox",
paramtype = "light",
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, -0.5, 0.5, -0.375, 0.5}, -- NodeBox1
{-0.4375, -0.375, -0.4375, 0.4375, -0.3125, 0.4375}, -- NodeBox2
{-0.375, -0.3125, -0.375, 0.375, -0.25, 0.375}, -- NodeBox3
{-0.3125, -0.3125, -0.3125, 0.3125, 0.25, 0.3125}, -- NodeBox4
{-0.375, 0.25, -0.375, 0.375, 0.3125, 0.375}, -- NodeBox5
{-0.4375, 0.3125, -0.4375, 0.4375, 0.375, -0.375}, -- NodeBox6
{-0.5, 0.375, -0.5, 0.5, 0.5, -0.4375}, -- NodeBox7
{-0.4375, 0.3125, 0.375, 0.4375, 0.375, 0.4375}, -- NodeBox8
{-0.5, 0.375, 0.4375, 0.5, 0.5, 0.5}, -- NodeBox9
{0.375, 0.3125, -0.4375, 0.4375, 0.375, 0.4375}, -- NodeBox10
{0.4375, 0.375, -0.5, 0.5, 0.5, 0.5}, -- NodeBox11
{-0.5, 0.375, -0.5, -0.4375, 0.5, 0.5}, -- NodeBox12
{-0.4375, 0.3125, -0.4375, -0.375, 0.375, 0.4375}, -- NodeBox13
},
},
groups = {cracky=1},
})