quartz/init.lua

205 lines
5.0 KiB
Lua
Raw Normal View History

2016-07-24 13:18:42 +02:00
local settings = Settings(minetest.get_modpath("quartz").."/settings.txt")
2013-11-16 23:11:09 +01:00
-- internationalization boilerplate
local MP = minetest.get_modpath(minetest.get_current_modname())
local S, NS = dofile(MP.."/intllib.lua")
--
-- Item Registration
--
2013-05-15 17:50:35 +02:00
-- Quartz Crystal
2013-05-15 17:50:35 +02:00
minetest.register_craftitem("quartz:quartz_crystal", {
description = S("Quartz Crystal"),
2013-05-15 17:50:35 +02:00
inventory_image = "quartz_crystal_full.png",
})
2013-06-09 16:01:25 +02:00
minetest.register_craftitem("quartz:quartz_crystal_piece", {
description = S("Quartz Crystal Piece"),
2013-06-09 16:01:25 +02:00
inventory_image = "quartz_crystal_piece.png",
})
2013-05-15 17:50:35 +02:00
--
-- Node Registration
--
-- Ore
2013-05-15 17:50:35 +02:00
minetest.register_node("quartz:quartz_ore", {
description = S("Quartz Ore"),
tiles = {"default_stone.png^quartz_ore.png"},
groups = {cracky=3, stone=1},
drop = 'quartz:quartz_crystal',
sounds = default.node_sound_stone_defaults(),
2013-05-15 17:50:35 +02:00
})
2013-05-15 17:50:35 +02:00
minetest.register_ore({
ore_type = "scatter",
ore = "quartz:quartz_ore",
wherein = "default:stone",
clust_scarcity = 10*10*10,
clust_num_ores = 6,
clust_size = 5,
y_min = -31000,
y_max = -5,
2013-05-15 17:50:35 +02:00
})
-- Quartz Block
2013-05-15 17:50:35 +02:00
minetest.register_node("quartz:block", {
description = S("Quartz Block"),
2013-05-15 17:50:35 +02:00
tiles = {"quartz_block.png"},
groups = {cracky=3, oddly_breakable_by_hand=1},
sounds = default.node_sound_glass_defaults(),
2013-05-15 17:50:35 +02:00
})
-- Chiseled Quartz
2013-05-15 17:50:35 +02:00
minetest.register_node("quartz:chiseled", {
description = S("Chiseled Quartz"),
2013-05-15 17:50:35 +02:00
tiles = {"quartz_chiseled.png"},
groups = {cracky=3, oddly_breakable_by_hand=1},
sounds = default.node_sound_glass_defaults(),
2013-05-15 17:50:35 +02:00
})
-- Quartz Pillar
2013-05-15 17:50:35 +02:00
minetest.register_node("quartz:pillar", {
description = S("Quartz Pillar"),
paramtype2 = "facedir",
2019-03-01 05:13:58 +01:00
tiles = {"quartz_pillar_top.png", "quartz_pillar_top.png",
"quartz_pillar_side.png"},
groups = {cracky=3, oddly_breakable_by_hand=1},
sounds = default.node_sound_glass_defaults(),
on_place = minetest.rotate_node
2013-05-15 17:50:35 +02:00
})
-- Stairs & Slabs
2013-05-15 17:50:35 +02:00
stairs.register_stair_and_slab("quartzblock", "quartz:block",
{cracky=3, oddly_breakable_by_hand=1},
2013-05-15 17:50:35 +02:00
{"quartz_block.png"},
S("Quartz stair"),
S("Quartz slab"),
default.node_sound_glass_defaults())
2013-05-15 17:50:35 +02:00
stairs.register_stair_and_slab("quartzstair", "quartz:pillar",
{cracky=3, oddly_breakable_by_hand=1},
2019-03-01 05:13:58 +01:00
{"quartz_pillar_top.png", "quartz_pillar_top.png",
"quartz_pillar_side.png"},
S("Quartz Pillar stair"),
S("Quartz Pillar slab"),
default.node_sound_glass_defaults())
2013-05-15 17:50:35 +02:00
--
-- Crafting
--
2013-05-15 17:50:35 +02:00
-- Quartz Crystal Piece
2013-06-09 16:01:25 +02:00
minetest.register_craft({
output = '"quartz:quartz_crystal_piece" 3',
recipe = {
{'quartz:quartz_crystal'}
}
})
-- Quartz Block
2013-05-15 17:50:35 +02:00
minetest.register_craft({
output = '"quartz:block" 4',
2013-05-15 17:50:35 +02:00
recipe = {
{'quartz:quartz_crystal', 'quartz:quartz_crystal', ''},
{'quartz:quartz_crystal', 'quartz:quartz_crystal', ''},
{'', '', ''}
}
})
-- Chiseled Quartz
2013-05-15 17:50:35 +02:00
minetest.register_craft({
output = 'quartz:chiseled 2',
recipe = {
{'stairs:slab_quartzblock', '', ''},
{'stairs:slab_quartzblock', '', ''},
{'', '', ''},
}
})
-- Chiseled Quartz (for stairsplus)
minetest.register_craft({
output = 'quartz:chiseled 2',
recipe = {
{'quartz:slab_block', '', ''},
{'quartz:slab_block', '', ''},
{'', '', ''},
}
})
-- Quartz Pillar
2013-05-15 17:50:35 +02:00
minetest.register_craft({
output = 'quartz:pillar 2',
recipe = {
{'quartz:block', '', ''},
{'quartz:block', '', ''},
{'', '', ''},
}
})
--
-- ABMS
--
local dirs2 = {12, 9, 18, 7, 12}
-- Replace all instances of the horizontal quartz pillar with the
minetest.register_abm({
nodenames = {"quartz:pillar_horizontal"},
interval = 1,
chance = 1,
action = function(pos, node, active_object_count, active_object_count_wider)
local fdir = node.param2 or 0
nfdir = dirs2[fdir+1]
minetest.add_node(pos, {name = "quartz:pillar", param2 = nfdir})
end,
})
--
-- Compatibility with stairsplus
--
if minetest.global_exists("stairsplus") then
stairsplus:register_all("quartz", "block", "quartz:block", {
description = "Quartz Block",
tiles = {"quartz_block.png"},
groups = {cracky=3},
sounds = default.node_sound_glass_defaults()
})
stairsplus:register_all("quartz", "chiseled", "quartz:chiseled", {
description = "Chiseled Quartz",
tiles = {"quartz_chiseled.png"},
groups = {cracky=3},
sounds = default.node_sound_glass_defaults()
})
stairsplus:register_all("quartz", "pillar", "quartz:pillar", {
description = "Quartz Pillar",
2019-03-01 05:13:58 +01:00
tiles = {"quartz_pillar_top.png", "quartz_pillar_top.png",
"quartz_pillar_side.png"},
groups = {cracky=3},
sounds = default.node_sound_glass_defaults()
})
end
--
-- Deprecated
--
2016-07-24 13:18:42 +02:00
if settings:get_bool("ENABLE_HORIZONTAL_PILLAR") then
-- Quartz Pillar (horizontal)
minetest.register_node("quartz:pillar_horizontal", {
description = "Quartz Pillar Horizontal",
2019-03-01 05:13:58 +01:00
tiles = {"quartz_pillar_side.png", "quartz_pillar_side.png",
"quartz_pillar_side.png^[transformR90",
"quartz_pillar_side.png^[transformR90", "quartz_pillar_top.png",
"quartz_pillar_top.png"},
paramtype2 = "facedir",
drop = 'quartz:pillar',
2019-03-01 05:13:58 +01:00
groups = {cracky=3, oddly_breakable_by_hand=1,
not_in_creative_inventory=1},
sounds = default.node_sound_glass_defaults(),
})
end