4394beec6a
Integrated into the game is most of minetest_game as the stable base
303 lines
8.3 KiB
Lua
303 lines
8.3 KiB
Lua
local disptypes = {
|
|
{
|
|
name = "Mese",
|
|
light_source = 0,
|
|
craft_type = "normal",
|
|
craft_item = "default:mese",
|
|
},
|
|
{
|
|
name = "Glass",
|
|
light_source = 0,
|
|
craft_type = "normal",
|
|
craft_item = "default:glass",
|
|
},
|
|
{
|
|
name = "Fire",
|
|
light_source = 12,
|
|
craft_type = "normal",
|
|
craft_item = "bucket:bucket_lava",
|
|
},
|
|
{
|
|
name = "Air",
|
|
light_source = 5,
|
|
craft_type = "normal",
|
|
craft_item = "bucket:bucket_empty",
|
|
},
|
|
{
|
|
name = "Water",
|
|
light_source = 0,
|
|
craft_type = "normal",
|
|
craft_item = "bucket:bucket_water",
|
|
},
|
|
{
|
|
name = "Uranium",
|
|
light_source = 10,
|
|
craft_type = "normal",
|
|
craft_item = "group:uranium_block",
|
|
},
|
|
{
|
|
name = "Earth",
|
|
light_source = 0,
|
|
craft_type = "normal",
|
|
craft_item = "default:dirt",
|
|
},
|
|
{
|
|
name = "Metal",
|
|
light_source = 2,
|
|
craft_type = "normal",
|
|
craft_item = "default:steelblock",
|
|
},
|
|
{
|
|
name = "Empty",
|
|
light_source = 0,
|
|
suppress_crystal = true,
|
|
craft_type = "special",
|
|
craft_recipe = {
|
|
{"default:desert_sand","default:glass","default:sand",},
|
|
{"default:glass","","default:glass",},
|
|
{"default:sand","default:glass","default:desert_sand",},
|
|
},
|
|
},
|
|
{
|
|
name = "Universia",
|
|
light_source = 14,
|
|
craft_type = "special",
|
|
craft_recipe = {
|
|
{"default:mese_crystal","default:mese_crystal","default:mese_crystal",},
|
|
{"display_blocks_redo:natura_cube","default:mese","display_blocks_redo:industria_cube",},
|
|
{"default:obsidian","default:obsidian","default:obsidian",},
|
|
},
|
|
},
|
|
}
|
|
|
|
if minetest.get_modpath("titanium") then
|
|
table.insert(disptypes,{
|
|
name = "Titanium",
|
|
light_source = 0,
|
|
craft_type = "normal",
|
|
craft_item = "titanium:block",
|
|
})
|
|
end
|
|
|
|
local function regcraft(def)
|
|
local lname = string.lower(def.name)
|
|
if def.craft_type == "normal" then
|
|
local craft = {}
|
|
craft.output = string.format("display_blocks_redo:%s_base",lname)
|
|
craft.recipe = {
|
|
{"","default:mese_crystal_fragment","",},
|
|
{def.craft_item,"display_blocks_redo:empty_base",def.craft_item,},
|
|
{"",def.craft_item,"",},
|
|
}
|
|
if string.sub(def.craft_item,1,7) == "bucket:" then
|
|
craft.replacements = {}
|
|
for i=1,3,1 do
|
|
table.insert(craft.replacements,{def.craft_item,"bucket:bucket_empty",})
|
|
end
|
|
end
|
|
minetest.register_craft(craft)
|
|
elseif def.craft_type == "special" then
|
|
local craft = {}
|
|
craft.output = string.format("display_blocks_redo:%s_base",lname)
|
|
craft.recipe = def.craft_recipe
|
|
minetest.register_craft(craft)
|
|
end
|
|
end
|
|
|
|
for _,def in ipairs(disptypes) do
|
|
local lname = string.lower(def.name)
|
|
if not def.suppress_crystal then
|
|
minetest.register_node(string.format("display_blocks_redo:%s_crystal",lname),{
|
|
description = string.format("%s Display Crystal (you hacker you!)",def.name),
|
|
drawtype = "plantlike",
|
|
drop = "",
|
|
groups = {
|
|
not_in_creative_inventory = 1,
|
|
},
|
|
paramtype = "light",
|
|
tiles = {
|
|
string.format("display_blocks_redo_%s_crystal.png",lname),
|
|
},
|
|
light_source = def.light_source,
|
|
visual_scale = 0.9,
|
|
selection_box = {
|
|
type = "fixed",
|
|
fixed = {-0.15,-0.5,-0.15,0.15,0.2,0.15},
|
|
},
|
|
walkable = false,
|
|
})
|
|
minetest.register_alias(string.format("display_blocks:%s_crystal",lname),string.format("display_blocks_redo:%s_crystal",lname))
|
|
end
|
|
minetest.register_node(string.format("display_blocks_redo:%s_base",lname),{
|
|
description = string.format("%s Display Base",def.name),
|
|
groups = {
|
|
cracky = 3,
|
|
},
|
|
sounds = minetest.global_exists("default") and default.node_sound_glass_defaults(),
|
|
paramtype = "light",
|
|
light_source = def.light_source,
|
|
tiles = {
|
|
string.format("display_blocks_redo_%s_base.png",lname),
|
|
},
|
|
drawtype = "glasslike",
|
|
after_place_node = function(pos,_,stack)
|
|
if def.suppress_crystal then return end
|
|
local crystalpos = vector.add(pos,vector.new(0,1,0))
|
|
if minetest.get_node(crystalpos).name == "air" then
|
|
local node = {}
|
|
node.name = string.format("display_blocks_redo:%s_crystal",lname)
|
|
minetest.set_node(crystalpos,node)
|
|
stack:take_item(1)
|
|
return stack
|
|
else
|
|
minetest.set_node(pos,{name = "air"})
|
|
return stack
|
|
end
|
|
end,
|
|
after_destruct = function(pos)
|
|
if def.suppress_crystal then return end
|
|
local crystalpos = vector.add(pos,vector.new(0,1,0))
|
|
if minetest.get_node(crystalpos).name == string.format("display_blocks_redo:%s_crystal",lname) then
|
|
minetest.set_node(crystalpos,{name = "air"})
|
|
end
|
|
end,
|
|
})
|
|
regcraft(def)
|
|
minetest.register_alias(string.format("display_blocks:%s_base",lname),string.format("display_blocks_redo:%s_base",lname))
|
|
end
|
|
|
|
minetest.register_alias("display_blocks:empty_display","display_blocks_redo:empty_base")
|
|
minetest.register_alias("display_blocks:compressed_earth","default:dirt")
|
|
|
|
minetest.register_node("display_blocks_redo:natura_cube",{
|
|
description = "Natura Cube",
|
|
tiles = {
|
|
"display_blocks_redo_natura_cube.png",
|
|
},
|
|
groups = {
|
|
cracky = 3,
|
|
oddly_breakable_by_hand = 3,
|
|
},
|
|
paramtype = "light",
|
|
drawtype = "glasslike",
|
|
sounds = minetest.global_exists("default") and default.node_sound_glass_defaults(),
|
|
})
|
|
|
|
minetest.register_alias("display_blocks:natura_cube","display_blocks_redo:natura_cube")
|
|
|
|
minetest.register_node("display_blocks_redo:industria_cube",{
|
|
description = "Industria Cube",
|
|
tiles = {
|
|
"display_blocks_redo_industria_cube.png",
|
|
},
|
|
groups = {
|
|
cracky = 3,
|
|
oddly_breakable_by_hand = 3,
|
|
},
|
|
paramtype = "light",
|
|
drawtype = "glasslike",
|
|
sounds = minetest.global_exists("default") and default.node_sound_glass_defaults(),
|
|
})
|
|
|
|
minetest.register_alias("display_blocks:industria_cube","display_blocks_redo:industria_cube")
|
|
|
|
minetest.register_craft({
|
|
output = "display_blocks_redo:natura_cube",
|
|
recipe = {
|
|
{"","display_blocks:air_base","",},
|
|
{"display_blocks:fire_base","","display_blocks:water_base",},
|
|
{"","display_blocks:earth_base","",},
|
|
},
|
|
})
|
|
|
|
minetest.register_craft({
|
|
output = "display_blocks_redo:industria_cube",
|
|
recipe = {
|
|
{"","display_blocks:mese_base","",},
|
|
{"display_blocks:metal_base","","display_blocks:glass_base",},
|
|
{"","display_blocks:uranium_base","",},
|
|
},
|
|
})
|
|
|
|
if minetest.get_modpath("technic_worldgen") then
|
|
minetest.register_alias("display_blocks:uranium_ore","technic:mineral_uranium")
|
|
minetest.register_alias("display_blocks:uranium_dust","technic:uranium_dust")
|
|
minetest.register_alias("display_blocks:uranium_block","technic:uranium_block")
|
|
minetest.register_alias("display_blocks_redo:uranium_ore","technic:mineral_uranium")
|
|
minetest.register_alias("display_blocks_redo:uranium_dust","technic:uranium_dust")
|
|
minetest.register_alias("display_blocks_redo:uranium_block","technic:uranium_block")
|
|
else
|
|
minetest.register_node("display_blocks_redo:uranium_ore",{
|
|
description = "Uranium Ore",
|
|
drop = "display_blocks_redo:uranium_dust 3",
|
|
paramtype = "light",
|
|
light_source = 2,
|
|
groups = {
|
|
cracky = 3,
|
|
},
|
|
tiles = {
|
|
"default_stone.png^display_blocks_redo_uranium_ore.png",
|
|
},
|
|
is_ground_content = true,
|
|
})
|
|
|
|
minetest.register_node("display_blocks_redo:uranium_block",{
|
|
description = "Uranium Block",
|
|
paramtype = "light",
|
|
light_source = 7,
|
|
groups = {
|
|
snappy = 1,
|
|
},
|
|
tiles = {
|
|
"display_blocks_redo_uranium_block.png",
|
|
},
|
|
})
|
|
|
|
minetest.register_craftitem("display_blocks_redo:uranium_dust",{
|
|
description = "Uranium Dust",
|
|
inventory_image = "display_blocks_redo_uranium_dust.png",
|
|
})
|
|
|
|
minetest.register_craft({
|
|
type = "shapeless",
|
|
output = "display_blocks_redo:uranium_block",
|
|
recipe = {
|
|
"display_blocks_redo:uranium_dust",
|
|
"display_blocks_redo:uranium_dust",
|
|
"display_blocks_redo:uranium_dust",
|
|
"display_blocks_redo:uranium_dust",
|
|
"display_blocks_redo:uranium_dust",
|
|
"display_blocks_redo:uranium_dust",
|
|
"display_blocks_redo:uranium_dust",
|
|
"display_blocks_redo:uranium_dust",
|
|
"display_blocks_redo:uranium_dust",
|
|
},
|
|
})
|
|
|
|
minetest.register_ore({
|
|
ore_type = "scatter",
|
|
ore = "display_blocks_redo:uranium_ore",
|
|
wherein = "default:stone",
|
|
clust_scarcity = 10*10*10,
|
|
clust_num_ores = 18,
|
|
clust_size = 3,
|
|
y_min = -3000,
|
|
y_max = -2000,
|
|
})
|
|
|
|
minetest.register_ore({
|
|
ore_type = "scatter",
|
|
ore = "display_blocks_redo:uranium_ore",
|
|
wherein = "default:stone",
|
|
clust_scarcity = 20*20*20,
|
|
clust_num_ores = 40,
|
|
clust_size = 4,
|
|
y_min = -31000,
|
|
y_max = -5000,
|
|
})
|
|
|
|
minetest.register_alias("display_blocks:uranium_ore","display_blocks_redo:uranium_ore")
|
|
minetest.register_alias("display_blocks:uranium_dust","display_blocks_redo:uranium_dust")
|
|
minetest.register_alias("display_blocks:uranium_block","display_blocks_redo:uranium_block")
|
|
end
|