From da66780a569712c23ae4f2996cfb4608a9f9d69d Mon Sep 17 00:00:00 2001 From: Vanessa Ezekowitz Date: Fri, 1 Apr 2016 20:02:19 -0400 Subject: copy all standard Dreambuilder mods in from the old subgame (exactly as last supplied there, updates to these mods will follow later) --- display_blocks/init.lua | 267 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 267 insertions(+) create mode 100644 display_blocks/init.lua (limited to 'display_blocks/init.lua') diff --git a/display_blocks/init.lua b/display_blocks/init.lua new file mode 100644 index 0000000..28b5d60 --- /dev/null +++ b/display_blocks/init.lua @@ -0,0 +1,267 @@ +local PATH = minetest.get_modpath("display_blocks") + +dofile(PATH.."/config.lua") +dofile(PATH.."/technic.lua") + +if enable_display_uranium == true then + dofile(minetest.get_modpath("display_blocks").."/uranium.lua") +end + +local Scale = 0.9 + +function disp(base, name, light, rec, rp) + minetest.register_node( "display_blocks:"..base.."_base", { + description = name.."Display Base", + tiles = { "display_blocks_"..base.."_block.png" }, + is_ground_content = true, + groups = {cracky=3,}, + light_source = light, + sunlight_propagates = true, + paramtype = "light", + drawtype = "glasslike", + }) + + minetest.register_node( "display_blocks:"..base.."_crystal", { + drawtype = "plantlike", + description = name.." Display Crystal", + tiles = { "display_blocks_"..base.."_crystal.png" }, + is_ground_content = true, + paramtype = "light", + visual_scale = Scale, + groups = {immortal=1, not_in_creative_inventory=1}, + selection_box = { + type = "fixed", + fixed = { -0.15, -0.5, -0.15, 0.15, 0.2, 0.15 }, + }, + walkable = false, + }) + + minetest.register_abm({ + nodenames = {"display_blocks:"..base.."_base"}, + interval = 2.0, + chance = 1.0, + action = function(pos, node, active_object_count, active_object_count_wider) + pos.y = pos.y + 1 + local n = minetest.get_node(pos) + if n and n.name == "air" then + minetest.add_node(pos, {name="display_blocks:"..base.."_crystal"}) + end + end + }) + + function remove_crystal(pos, node, active_object_count, active_object_count_wider) + if node.name == "display_blocks:"..base.."_base" then + pos.y = pos.y + 1 + local n = minetest.get_node(pos) + if n and n.name == "display_blocks:"..base.."_crystal" then + minetest.remove_node(pos) + end + end + end + minetest.register_on_dignode(remove_crystal) + + minetest.register_craft({ + output = 'display_blocks:'..base..'_base 5', + recipe = { + {'', 'default:mese_crystal_fragment', ''}, + {rec, 'display_blocks:empty_display', rec}, + {'', rec, ''}, + }, + replacements = {{rec, rp}, {rec, rp},{rec, rp}}, + }) +end + +-- disp(base, name, rec, rp) +disp("mese", "Mese", 0, "default:mese_block", "") +disp("glass", "Glass", 0, "default:sand", "") +disp("fire", "Fire", 12, "bucket:bucket_lava" ,"bucket:bucket_empty") +disp("air", "Air", 5, "bucket:bucket_empty", "bucket:bucket_empty") +disp("water", "Water", 0, "bucket:bucket_water", "bucket:bucket_empty") +disp("uranium", "Uranium", 10, "display_blocks:uranium_block", "") +disp("earth", "Earth", 0, "display_blocks:compressed_earth", "") +disp("metal", "Metal", 2, "default:steelblock", "") + + +if minetest.get_modpath("titanium") then + disp("titanium", "Titanium", 0, "titanium:block", "") +end + +-- +-- Universia Display +-- + +minetest.register_node( "display_blocks:universia_base", { + description = "Universia Display Base", + tiles = {"display_blocks_universia_block.png"}, + is_ground_content = true, + groups = {cracky=3,}, + light_source = 15, + sunlight_propagates = true, + paramtype = "light", + drawtype = "glasslike", +}) + +minetest.register_node( "display_blocks:universia_crystal", { + description = "Universia Display Crystal", + drawtype = "plantlike", + tiles = {"display_blocks_universia_crystal.png"}, + selection_box = { + type = "fixed", + fixed = { -0.15, -0.5, -0.15, 0.15, 0.2, 0.15 }, + }, + walkable = false, + is_ground_content = true, + paramtype = "light", + visual_scale = Scale, + groups = {immortal=1, not_in_creative_inventory=1}, +}) + +minetest.register_abm({ + nodenames = {"display_blocks:universia_base"}, + interval = 1.0, + chance = 1.0, + action = function(pos, node, active_object_count, active_object_count_wider) + pos.y = pos.y + 1 + minetest.add_node(pos, {name="display_blocks:universia_crystal"}) + end +}) + +function remove_crystal(pos, node, active_object_count, active_object_count_wider) + if + node.name == "display_blocks:universia_base" + then + pos.y = pos.y + 1 + minetest.remove_node(pos, {name="display_blocks:universia_crystal"}) + end +end +minetest.register_on_dignode(remove_crystal) + +minetest.register_craft({ + output = "display_blocks:universia_base", + recipe = { + {'default:mese_crystal', 'default:mese_crystal', 'default:mese_crystal'}, + {'display_blocks:natura_cube', 'default:mese_block', 'display_blocks:industria_cube'}, + {'default:obsidian', 'default:obsidian', 'default:obsidian'}, + }, +}) + +-- +-- Other Blocks +-- + +minetest.register_node("display_blocks:compressed_earth", { + description = "Compressed Earth", + tiles = {"display_blocks_compressed_earth.png"}, + groups = {crumbly=3,soil=1}, + sounds = default.node_sound_dirt_defaults({ + footstep = {name="default_grass_footstep", gain=0.25}, + }), +}) + +minetest.register_node("display_blocks:empty_display", { + description = "Empty Display", + tiles = {"display_blocks_empty_display.png"}, + groups = {cracky=3,oddly_breakable_by_hand=3}, + sounds = default.node_sound_glass_defaults(), + sunlight_propagates = true, + paramtype = "light", + drawtype = "glasslike", + is_ground_content = true, +}) + +minetest.register_node("display_blocks:industria_cube", { + description = "Industria Cube", + tiles = {"display_blocks_industria_cube.png"}, + groups = {cracky=3,oddly_breakable_by_hand=3}, + sounds = default.node_sound_glass_defaults(), + sunlight_propagates = true, + paramtype = "light", + drawtype = "glasslike", + is_ground_content = true, +}) + +minetest.register_node("display_blocks:natura_cube", { + description = "Natura Cube", + tiles = {"display_blocks_natura_cube.png"}, + groups = {cracky=3,oddly_breakable_by_hand=3}, + sounds = default.node_sound_glass_defaults(), + sunlight_propagates = true, + paramtype = "light", + drawtype = "glasslike", + is_ground_content = true, +}) + +minetest.register_craft({ + output= "display_blocks:compressed_earth", + recipe = { + {'default:gravel', 'default:dirt', 'default:gravel'}, + {'default:dirt', 'default:gravel', 'default:dirt'}, + {'default:gravel', 'default:dirt', 'default:gravel'}, + } +}) + +minetest.register_craft({ + output = "display_blocks:empty_display", + recipe = { + {'default:desert_sand', 'default:glass', 'default:sand'}, + {'default:glass', '', 'default:glass'}, + {'default:sand', 'default:glass', 'default:desert_sand'}, + }, +}) + +minetest.register_craft({ + output = "display_blocks: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:industria_cube", + recipe = { + {'', 'display_blocks:mese_base', ''}, + {'display_blocks:metal_base', '', 'display_blocks:glass_base'}, + {'', 'display_blocks:uranium_base', ''}, + }, +}) + +-- +-- Compressed Earth Ore Gen +-- + +minetest.register_ore({ + ore_type = "scatter", + ore = "display_blocks:compressed_earth", + wherein = "default:dirt", + clust_scarcity = 25*25*25, + clust_num_ores = 20, + clust_size = 5, + y_max = -5, + y_min = -15, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "display_blocks:compressed_earth", + wherein = "default:dirt", + clust_scarcity = 20*20*20, + clust_num_ores = 50, + clust_size = 5, + y_max = -16, + y_min = -29, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "display_blocks:compressed_earth", + wherein = "default:dirt", + clust_scarcity = 15*15*15, + clust_num_ores = 80, + clust_size = 5, + y_max = -30, + y_min = -100, +}) + +print("[Display Blocks] Loaded! by jojoa1997 :-)") -- cgit v1.2.3