summaryrefslogtreecommitdiff
path: root/init.lua
diff options
context:
space:
mode:
authorcheapie <no-email-for-you@example.com>2020-05-10 15:12:39 -0500
committercheapie <no-email-for-you@example.com>2020-05-10 15:12:39 -0500
commitf4b69e7117bf2920a3ba1b676967a581ae16a8ca (patch)
tree72066fb7efb8efddeace5cf2a9fc575b7d361867 /init.lua
downloaddisplay_blocks_redo-f4b69e7117bf2920a3ba1b676967a581ae16a8ca.tar
display_blocks_redo-f4b69e7117bf2920a3ba1b676967a581ae16a8ca.tar.gz
display_blocks_redo-f4b69e7117bf2920a3ba1b676967a581ae16a8ca.tar.bz2
display_blocks_redo-f4b69e7117bf2920a3ba1b676967a581ae16a8ca.tar.xz
display_blocks_redo-f4b69e7117bf2920a3ba1b676967a581ae16a8ca.zip
Add initial contentHEADmaster
Diffstat (limited to 'init.lua')
-rw-r--r--init.lua302
1 files changed, 302 insertions, 0 deletions
diff --git a/init.lua b/init.lua
new file mode 100644
index 0000000..5bf85b0
--- /dev/null
+++ b/init.lua
@@ -0,0 +1,302 @@
+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