From f4b69e7117bf2920a3ba1b676967a581ae16a8ca Mon Sep 17 00:00:00 2001 From: cheapie Date: Sun, 10 May 2020 15:12:39 -0500 Subject: Add initial content --- init.lua | 302 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 302 insertions(+) create mode 100644 init.lua (limited to 'init.lua') 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 -- cgit v1.2.3