From abffeb54d937ae927fc952dde16d930a386e1f45 Mon Sep 17 00:00:00 2001 From: Duane Date: Tue, 21 Jun 2016 06:43:16 -0500 Subject: [PATCH] Streamline tesseracts and separate trophies. --- nodes.lua | 428 +----------------- tesseract.lua | 253 +++++++++++ textures/fun_caves_eternal_ice_crystal.png | Bin 0 -> 2721 bytes ...> fun_caves_tesseract_iron_aquamarine.png} | Bin ...=> fun_caves_tesseract_iron_coral_gem.png} | Bin ...=> fun_caves_tesseract_iron_moonstone.png} | Bin ...g => fun_caves_tesseract_iron_zoisite.png} | Bin ...aves_tesseract_metallic_ice_aquamarine.png | Bin 0 -> 10873 bytes ...caves_tesseract_metallic_ice_coral_gem.png | Bin 0 -> 11470 bytes ...un_caves_tesseract_metallic_ice_garnet.png | Bin 0 -> 11170 bytes ...caves_tesseract_metallic_ice_moonstone.png | Bin 0 -> 11435 bytes ...n_caves_tesseract_metallic_ice_zoisite.png | Bin 0 -> 10503 bytes trophies.lua | 21 + 13 files changed, 278 insertions(+), 424 deletions(-) create mode 100644 tesseract.lua create mode 100644 textures/fun_caves_eternal_ice_crystal.png rename textures/{fun_caves_tesseract_iron_aqua.png => fun_caves_tesseract_iron_aquamarine.png} (100%) rename textures/{fun_caves_tesseract_iron_coral.png => fun_caves_tesseract_iron_coral_gem.png} (100%) rename textures/{fun_caves_tesseract_iron_moon.png => fun_caves_tesseract_iron_moonstone.png} (100%) rename textures/{fun_caves_tesseract_iron_zois.png => fun_caves_tesseract_iron_zoisite.png} (100%) create mode 100644 textures/fun_caves_tesseract_metallic_ice_aquamarine.png create mode 100644 textures/fun_caves_tesseract_metallic_ice_coral_gem.png create mode 100644 textures/fun_caves_tesseract_metallic_ice_garnet.png create mode 100644 textures/fun_caves_tesseract_metallic_ice_moonstone.png create mode 100644 textures/fun_caves_tesseract_metallic_ice_zoisite.png create mode 100644 trophies.lua diff --git a/nodes.lua b/nodes.lua index 23694a8..8de81ef 100644 --- a/nodes.lua +++ b/nodes.lua @@ -114,410 +114,6 @@ minetest.register_node("fun_caves:water_poison_flowing", newnode) -- pointable = false, --}) -local function teleporter(user, area, power) - if not user then - return - end - - local name = user:get_player_name() - local pos = user:getpos() - - if not fun_caves.db then - fun_caves.db = {} - end - if not fun_caves.db.teleport_data then - fun_caves.db.teleport_data = {} - end - if not fun_caves.db.teleport_data[name] then - fun_caves.db.teleport_data[name] = {} - end - - local out = io.open(fun_caves.world..'/fun_caves_data.txt','w') - if not (out and name) then - return - end - - if fun_caves.db.teleport_data[name].teleported_from then - user:setpos(fun_caves.db.teleport_data[name].teleported_from) - fun_caves.db.teleport_data[name].teleported_from = nil - else - local newpos - if area == 'overworld' then - newpos = {x=(math.random(2)*2-3)*(math.random(math.floor(max_depth/6))+power*math.floor(max_depth/6)), y=120, z=(math.random(2)*2-3)*(math.random(math.floor(max_depth/6))+power*math.floor(max_depth/6))} - elseif area == 'hell' then - newpos = {x=pos.x, y=fun_caves.underzones[({'Caina','Phlegethos','Dis','Minauros', 'Phlegethos','Styx'})[power+1]].ceiling-30, z=pos.z} - elseif area == 'sky' then - newpos = {x=pos.x, y=({4368, 8768, 13168, 4368, 4368, 4368})[power+1]+76, z=pos.z} - elseif area == 'dungeon' then - return - elseif area == 'underworld' then - return - else - return - end - - user:setpos(newpos) - print('Fun Caves: '..name..' teleported to ('..pos.x..','..pos.y..','..pos.z..')') - fun_caves.db.teleport_data[name].teleported_from = pos - out:write(minetest.serialize(fun_caves.db)) - user:set_physics_override({gravity=0.1}) - - minetest.after(20, function() - user:set_physics_override({gravity=1}) - end) - end -end - -minetest.register_craftitem("fun_caves:teleporter_iron_moonstone", { - description = "Iron and Moonstone Tesseract", - drawtype = "plantlike", - paramtype = "light", - tiles = {"fun_caves_tesseract_iron_moon.png"}, - inventory_image = "fun_caves_tesseract_iron_moon.png", - groups = {dig_immediate = 3}, - sounds = default.node_sound_stone_defaults(), - on_use = function(itemstack, user, pointed_thing) - teleporter(user, 'sky', 0) - end, -}) - -minetest.register_craft({ - output = 'fun_caves:teleporter_iron_moonstone', - recipe = { - {'fun_caves:sky_iron', 'fun_caves:pure_copper', 'fun_caves:sky_iron'}, - {'fun_caves:moonstone', 'fun_caves:moonstone', 'fun_caves:moonstone'}, - {'fun_caves:sky_iron', 'default:obsidian_shard', 'fun_caves:sky_iron'}, - } -}) - -minetest.register_craftitem("fun_caves:moonstone", { - description = "Moonstone", - drawtype = "plantlike", - paramtype = "light", - tiles = {"fun_caves_moonstone.png"}, - inventory_image = "fun_caves_moonstone.png", - groups = {dig_immediate = 3}, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("fun_caves:stone_with_moonstones", { - description = "Moonstone Ore", - tiles = {"default_stone.png^fun_caves_mineral_moonstone.png"}, - groups = {cracky = 1}, - drop = "fun_caves:moonstone", - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_ore({ - ore_type = "scatter", - ore = "fun_caves:stone_with_moonstones", - wherein = "default:stone", - clust_scarcity = 21 * 21 * 21, - clust_num_ores = 1, - clust_size = 1, - y_min = -31000, - y_max = 31000, -}) - -minetest.register_craftitem("fun_caves:teleporter_iron_coral", { - description = "Iron and Coral Tesseract", - drawtype = "plantlike", - paramtype = "light", - tiles = {"fun_caves_tesseract_iron_coral.png"}, - inventory_image = "fun_caves_tesseract_iron_coral.png", - groups = {dig_immediate = 3}, - sounds = default.node_sound_stone_defaults(), - on_use = function(itemstack, user, pointed_thing) - teleporter(user, 'hell', 0) - end, -}) - -minetest.register_craft({ - output = 'fun_caves:teleporter_iron_coral', - recipe = { - {'fun_caves:sky_iron', 'fun_caves:pure_copper', 'fun_caves:sky_iron'}, - {'fun_caves:coral_gem', 'fun_caves:coral_gem', 'fun_caves:coral_gem'}, - {'fun_caves:sky_iron', 'default:obsidian_shard', 'fun_caves:sky_iron'}, - } -}) - -minetest.register_craftitem("fun_caves:coral_gem", { - description = "Coral Gem", - drawtype = "plantlike", - paramtype = "light", - tiles = {"fun_caves_coral_gem.png"}, - inventory_image = "fun_caves_coral_gem.png", - groups = {dig_immediate = 3}, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_craft({ - type = "cooking", - output = "fun_caves:coral_gem", - recipe = "fun_caves:precious_coral", - cooktime = 5, -}) - -minetest.register_craftitem("fun_caves:teleporter_iron_garnet", { - description = "Iron and Garnet Tesseract", - drawtype = "plantlike", - paramtype = "light", - tiles = {"fun_caves_tesseract_iron_garnet.png"}, - inventory_image = "fun_caves_tesseract_iron_garnet.png", - groups = {dig_immediate = 3}, - sounds = default.node_sound_stone_defaults(), - on_use = function(itemstack, user, pointed_thing) - teleporter(user, 'underworld', 0) - end, -}) - -minetest.register_craft({ - output = 'fun_caves:teleporter_iron_garnet', - recipe = { - {'fun_caves:sky_iron', 'fun_caves:pure_copper', 'fun_caves:sky_iron'}, - {'fun_caves:garnet', 'fun_caves:garnet', 'fun_caves:garnet'}, - {'fun_caves:sky_iron', 'default:obsidian_shard', 'fun_caves:sky_iron'}, - } -}) - -minetest.register_craftitem("fun_caves:garnet", { - description = "Garnet", - drawtype = "plantlike", - paramtype = "light", - tiles = {"fun_caves_garnet.png"}, - inventory_image = "fun_caves_garnet.png", - groups = {dig_immediate = 3}, - sounds = default.node_sound_glass_defaults(), -}) - -minetest.register_node("fun_caves:stone_with_garnets", { - description = "Garnet Ore", - tiles = {"default_stone.png^fun_caves_mineral_garnet.png"}, - groups = {cracky = 1}, - drop = "fun_caves:garnet", - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_ore({ - ore_type = "scatter", - ore = "fun_caves:stone_with_garnets", - wherein = "default:stone", - clust_scarcity = 21 * 21 * 21, - clust_num_ores = 1, - clust_size = 1, - y_min = -31000, - y_max = 31000, -}) - -minetest.register_craftitem("fun_caves:teleporter_iron_zoisite", { - description = "Iron and Zoisite Tesseract", - drawtype = "plantlike", - paramtype = "light", - tiles = {"fun_caves_tesseract_iron_zois.png"}, - inventory_image = "fun_caves_tesseract_iron_zois.png", - groups = {dig_immediate = 3}, - sounds = default.node_sound_stone_defaults(), - on_use = function(itemstack, user, pointed_thing) - teleporter(user, 'dungeon', 0) - end, -}) - -minetest.register_craft({ - output = 'fun_caves:teleporter_iron_zoisite', - recipe = { - {'fun_caves:sky_iron', 'fun_caves:pure_copper', 'fun_caves:sky_iron'}, - {'fun_caves:zoisite', 'fun_caves:zoisite', 'fun_caves:zoisite'}, - {'fun_caves:sky_iron', 'default:obsidian_shard', 'fun_caves:sky_iron'}, - } -}) - -minetest.register_craftitem("fun_caves:zoisite", { - description = "Zoisite", - drawtype = "plantlike", - paramtype = "light", - tiles = {"fun_caves_zoisite.png"}, - inventory_image = "fun_caves_zoisite.png", - groups = {dig_immediate = 3}, - sounds = default.node_sound_glass_defaults(), -}) - -minetest.register_node("fun_caves:stone_with_zoisites", { - description = "Zoisite Ore", - tiles = {"default_stone.png^fun_caves_mineral_zoisite.png"}, - groups = {cracky = 1}, - drop = "fun_caves:zoisite", - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_ore({ - ore_type = "scatter", - ore = "fun_caves:stone_with_zoisites", - wherein = "default:stone", - clust_scarcity = 21 * 21 * 21, - clust_num_ores = 1, - clust_size = 1, - y_min = -31000, - y_max = 31000, -}) - -minetest.register_craftitem("fun_caves:teleporter_iron_aquamarine", { - description = "Iron and Aquamarine Tesseract", - drawtype = "plantlike", - paramtype = "light", - tiles = {"fun_caves_tesseract_iron_aqua.png"}, - inventory_image = "fun_caves_tesseract_iron_aqua.png", - groups = {dig_immediate = 3}, - sounds = default.node_sound_stone_defaults(), - on_use = function(itemstack, user, pointed_thing) - teleporter(user, 'overworld', 0) - end, -}) - -minetest.register_craft({ - output = 'fun_caves:teleporter_iron_aquamarine', - recipe = { - {'fun_caves:sky_iron', 'fun_caves:pure_copper', 'fun_caves:sky_iron'}, - {'fun_caves:aquamarine', 'fun_caves:aquamarine', 'fun_caves:aquamarine'}, - {'fun_caves:sky_iron', 'default:obsidian_shard', 'fun_caves:sky_iron'}, - } -}) - -minetest.register_craftitem("fun_caves:aquamarine", { - description = "Aquamarine", - drawtype = "plantlike", - paramtype = "light", - tiles = {"fun_caves_aquamarine.png"}, - inventory_image = "fun_caves_aquamarine.png", - groups = {dig_immediate = 3}, - sounds = default.node_sound_glass_defaults(), -}) - -minetest.register_node("fun_caves:stone_with_aquamarines", { - description = "Aquamarine Ore", - tiles = {"default_stone.png^fun_caves_mineral_aquamarine.png"}, - groups = {cracky = 1}, - drop = "fun_caves:aquamarine", - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_ore({ - ore_type = "scatter", - ore = "fun_caves:stone_with_aquamarines", - wherein = "default:stone", - clust_scarcity = 21 * 21 * 21, - clust_num_ores = 1, - clust_size = 1, - y_min = -31000, - y_max = 31000, -}) - -minetest.register_craftitem("fun_caves:meteorite", { - description = "Iron Meteorite", - drawtype = "plantlike", - paramtype = "light", - tiles = {"fun_caves_meteorite.png"}, - inventory_image = "fun_caves_meteorite.png", - groups = {dig_immediate = 3}, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_craftitem("fun_caves:sky_iron", { - description = "Sky Iron", - drawtype = "plantlike", - paramtype = "light", - tiles = {"default_steel_ingot.png"}, - inventory_image = "default_steel_ingot.png", - groups = {dig_immediate = 3}, - sounds = default.node_sound_stone_defaults(), -}) - -local newnode = fun_caves.clone_node("default:stone_with_iron") -newnode.description = "Stone With Sky Iron" -newnode.drop = "fun_caves:sky_iron" -minetest.register_node("fun_caves:stone_with_sky_iron", newnode) - -minetest.register_craftitem("fun_caves:meteoritic_iron_crucible", { - description = "Crucible of Meteoritic Iron", - drawtype = "plantlike", - paramtype = "light", - tiles = {"fun_caves_crucible.png"}, - inventory_image = "fun_caves_crucible.png", - groups = {dig_immediate = 3}, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_craft({ - output = 'fun_caves:meteoritic_iron_crucible', - recipe = { - {'fun_caves:meteorite', 'fun_caves:meteorite', 'fun_caves:meteorite'}, - {'fun_caves:meteorite', 'fun_caves:meteorite', 'fun_caves:meteorite'}, - {'fun_caves:meteorite', 'fun_caves:crucible', 'fun_caves:meteorite'}, - } -}) - -minetest.register_craft({ - type = "cooking", - output = "fun_caves:sky_iron", - recipe = "fun_caves:meteoritic_iron_crucible", - cooktime = 30, -}) - -minetest.register_craftitem("fun_caves:pure_copper", { - description = "Very Pure Copper", - drawtype = "plantlike", - paramtype = "light", - tiles = {"default_copper_ingot.png"}, - inventory_image = "default_copper_ingot.png", - groups = {dig_immediate = 3}, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_craftitem("fun_caves:copper_crucible", { - description = "Crucible of Copper", - drawtype = "plantlike", - paramtype = "light", - tiles = {"fun_caves_crucible.png"}, - inventory_image = "fun_caves_crucible.png", - groups = {dig_immediate = 3}, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_craft({ - output = 'fun_caves:copper_crucible', - recipe = { - {'default:copper_ingot', 'default:copper_ingot', 'default:copper_ingot'}, - {'default:copper_ingot', 'default:copper_ingot', 'default:copper_ingot'}, - {'default:copper_ingot', 'fun_caves:crucible', 'default:copper_ingot'}, - } -}) - -minetest.register_craft({ - type = "cooking", - output = "fun_caves:pure_copper", - recipe = "fun_caves:copper_crucible", - cooktime = 30, -}) - - -minetest.register_craftitem("fun_caves:crucible", { - description = "Crucible", - drawtype = "plantlike", - paramtype = "light", - tiles = {"fun_caves_crucible.png"}, - inventory_image = "fun_caves_crucible.png", - groups = {dig_immediate = 3}, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_craft({ - output = 'fun_caves:crucible', - recipe = { - {'default:clay', '', 'default:clay'}, - {'default:clay', '', 'default:clay'}, - {'', 'default:clay', ''}, - } -}) - local newnode = fun_caves.clone_node("default:dirt") newnode.description = "Meteor Crater" newnode.tiles = {"fun_caves_crater.png", "default_dirt.png", "default_dirt.png", "default_dirt.png", "default_dirt.png", "default_dirt.png"} @@ -576,26 +172,6 @@ newnode.on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) end minetest.register_node("fun_caves:coffer", newnode) -minetest.register_craftitem("fun_caves:unobtainium", { - description = "Unobtainium", - drawtype = "plantlike", - paramtype = "light", - tiles = {"fun_caves_unobtainium.png"}, - inventory_image = "fun_caves_unobtainium.png", - groups = {dig_immediate = 3}, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_craftitem("fun_caves:philosophers_stone", { - description = "Philosopher's Stone", - drawtype = "plantlike", - paramtype = "light", - tiles = {"fun_caves_phil_stone.png"}, - inventory_image = "fun_caves_phil_stone.png", - groups = {dig_immediate = 3}, - sounds = default.node_sound_stone_defaults(), -}) - newnode = fun_caves.clone_node("default:stone") newnode.tiles = {'dna.png'} @@ -699,3 +275,7 @@ minetest.register_craft({ {'fun_caves:dry_fiber', '', 'fun_caves:dry_fiber'}, } }) + + +dofile(fun_caves.path .. "/trophies.lua") +dofile(fun_caves.path .. "/tesseract.lua") diff --git a/tesseract.lua b/tesseract.lua new file mode 100644 index 0000000..83bb15b --- /dev/null +++ b/tesseract.lua @@ -0,0 +1,253 @@ +local max_depth = 31000 + +local function teleporter(user, area, power) + if not user then + return + end + + local name = user:get_player_name() + local pos = user:getpos() + + if not fun_caves.db then + fun_caves.db = {} + end + if not fun_caves.db.teleport_data then + fun_caves.db.teleport_data = {} + end + if not fun_caves.db.teleport_data[name] then + fun_caves.db.teleport_data[name] = {} + end + + local out = io.open(fun_caves.world..'/fun_caves_data.txt','w') + if not (out and name) then + return + end + + if fun_caves.db.teleport_data[name].teleported_from then + user:setpos(fun_caves.db.teleport_data[name].teleported_from) + fun_caves.db.teleport_data[name].teleported_from = nil + else + local newpos + if area == 'overworld' then + newpos = {x=(math.random(2)*2-3)*(math.random(math.floor(max_depth/6))+power*math.floor(max_depth/6)), y=120, z=(math.random(2)*2-3)*(math.random(math.floor(max_depth/6))+power*math.floor(max_depth/6))} + elseif area == 'hell' then + newpos = {x=pos.x, y=fun_caves.underzones[({'Caina','Phlegethos','Dis','Minauros', 'Phlegethos','Styx'})[power+1]].ceiling-30, z=pos.z} + elseif area == 'sky' then + newpos = {x=pos.x, y=({4368, 8768, 13168, 4368, 4368, 4368})[power+1]+76, z=pos.z} + elseif area == 'dungeon' then + return + elseif area == 'underworld' then + return + else + return + end + + user:setpos(newpos) + print('Fun Caves: '..name..' teleported to ('..pos.x..','..pos.y..','..pos.z..')') + fun_caves.db.teleport_data[name].teleported_from = pos + out:write(minetest.serialize(fun_caves.db)) + user:set_physics_override({gravity=0.1}) + + minetest.after(20, function() + user:set_physics_override({gravity=1}) + end) + end +end + +local gems = { + {gem = 'Moonstone', teleport = 'sky', ore = true}, + {gem = 'Garnet', teleport = 'underworld', ore = true}, + {gem = 'Coral Gem', teleport = 'hell'}, + {gem = 'Zoisite', teleport = 'dungeon', ore = true}, + {gem = 'Aquamarine', teleport = 'overworld', ore = true}, +} + +for _, gem in pairs(gems) do + if not gem.lower then + gem.lower = gem.gem:lower() + gem.lower = gem.lower:gsub(' ', '_') + end + + minetest.register_craftitem("fun_caves:"..gem.lower, { + description = gem.gem, + drawtype = "plantlike", + paramtype = "light", + tiles = {'fun_caves_'..gem.lower..'.png'}, + inventory_image = 'fun_caves_'..gem.lower..'.png', + groups = {dig_immediate = 3}, + sounds = default.node_sound_stone_defaults(), + }) + + if gem.ore then + minetest.register_node('fun_caves:stone_with_'..gem.lower..'s', { + description = gem.gem..' Ore', + tiles = {'default_stone.png^fun_caves_mineral_'..gem.lower..'.png'}, + groups = {cracky = 1}, + drop = 'fun_caves:'..gem.lower..'', + sounds = default.node_sound_stone_defaults(), + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = 'fun_caves:stone_with_'..gem.lower..'s', + wherein = "default:stone", + clust_scarcity = 21 * 21 * 21, + clust_num_ores = 1, + clust_size = 1, + y_min = -31000, + y_max = 31000, + }) + end +end + +local metals = { + { + base = 'copper', + crucible = 'copper_crucible', + crucible_desc = 'Crucible of Copper', + level = 0, + metal = 'Copper', + node = 'Very Pure Copper', + node_lower = 'pure_copper', + tile = 'default_copper_ingot.png', + }, + { + base = 'meteorite', + base_desc = 'Iron Meteorite', + crucible = 'meteoritic_iron_crucible', + crucible_desc = 'Crucible of Meteoritic Iron', + level = 0, + metal = 'Iron', + node = 'Sky Iron', + tile = 'default_steel_ingot.png', + }, + { + base = 'eternal_ice_crystal', + base_desc = 'Eternal Ice Crystal', + crucible = 'metallic_ice_crucible', + crucible_desc = 'Crucible of Metallic Ice', + level = 1, + metal = 'Metallic Ice', + node = 'metallic_ice', + tile = 'default_steel_ingot.png^[colorize:#385B72:150', + }, +} + +for _, metal in pairs(metals) do + if not metal.lower then + metal.lower = metal.metal:lower() + metal.lower = metal.lower:gsub(' ', '_') + end + if not metal.node_lower then + metal.node_lower = metal.node:lower() + metal.node_lower = metal.node_lower:gsub(' ', '_') + end + + local full_base + if minetest.registered_items['default:'..metal.base..'_ingot'] then + full_base = 'default:'..metal.base..'_ingot' + else + full_base = 'fun_caves:'..metal.base + minetest.register_craftitem(full_base, { + description = metal.base_desc, + drawtype = "plantlike", + paramtype = "light", + tiles = {'fun_caves_'..metal.base..'.png'}, + inventory_image = 'fun_caves_'..metal.base..'.png', + groups = {dig_immediate = 3}, + sounds = default.node_sound_stone_defaults(), + }) + end + + minetest.register_craftitem("fun_caves:"..metal.node_lower, { + description = metal.node, + drawtype = "plantlike", + paramtype = "light", + tiles = {metal.tile}, + inventory_image = metal.tile, + groups = {dig_immediate = 3}, + sounds = default.node_sound_stone_defaults(), + }) + + minetest.register_craftitem("fun_caves:"..metal.crucible, { + description = metal.crucible_desc, + drawtype = "plantlike", + paramtype = "light", + tiles = {"fun_caves_crucible.png"}, + inventory_image = "fun_caves_crucible.png", + groups = {dig_immediate = 3}, + sounds = default.node_sound_stone_defaults(), + }) + + minetest.register_craft({ + output = 'fun_caves:'..metal.crucible, + recipe = { + {full_base, full_base, full_base}, + {full_base, full_base, full_base}, + {full_base, 'fun_caves:crucible', full_base}, + } + }) + + minetest.register_craft({ + type = "cooking", + output = "fun_caves:"..metal.node_lower, + recipe = "fun_caves:"..metal.crucible, + cooktime = 30, + }) + + if metal.base ~= 'copper' then + for _, gem in pairs(gems) do + minetest.register_craftitem('fun_caves:tesseract_'..metal.lower..'_'..gem.lower, { + description = metal.metal..' and '..gem.gem..' Tesseract', + drawtype = "plantlike", + paramtype = "light", + tiles = {'fun_caves_tesseract_'..metal.lower..'_'..gem.lower..'.png'}, + inventory_image = 'fun_caves_tesseract_'..metal.lower..'_'..gem.lower..'.png', + groups = {dig_immediate = 3}, + sounds = default.node_sound_stone_defaults(), + on_use = function(itemstack, user, pointed_thing) + teleporter(user, gem.teleport, metal.level) + end, + }) + minetest.register_alias('fun_caves:teleporter_'..metal.lower..'_'..gem.lower, 'fun_caves:tesseract_'..metal.lower..'_'..gem.lower) + + minetest.register_craft({ + output = 'fun_caves:tesseract_'..metal.lower..'_'..gem.lower, + recipe = { + {'fun_caves:'..metal.node_lower, 'fun_caves:pure_copper', 'fun_caves:'..metal.node_lower}, + {'fun_caves:'..gem.lower, 'fun_caves:'..gem.lower, 'fun_caves:'..gem.lower}, + {'fun_caves:'..metal.node_lower, 'default:obsidian_shard', 'fun_caves:'..metal.node_lower}, + } + }) + + end + end +end + +minetest.register_craft({ + type = "cooking", + output = "fun_caves:coral_gem", + recipe = "fun_caves:precious_coral", + cooktime = 5, +}) + + +minetest.register_craftitem("fun_caves:crucible", { + description = "Crucible", + drawtype = "plantlike", + paramtype = "light", + tiles = {"fun_caves_crucible.png"}, + inventory_image = "fun_caves_crucible.png", + groups = {dig_immediate = 3}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_craft({ + output = 'fun_caves:crucible', + recipe = { + {'default:clay', '', 'default:clay'}, + {'default:clay', '', 'default:clay'}, + {'', 'default:clay', ''}, + } +}) + diff --git a/textures/fun_caves_eternal_ice_crystal.png b/textures/fun_caves_eternal_ice_crystal.png new file mode 100644 index 0000000000000000000000000000000000000000..e12411e8779b32351d7831f9ee882862490c50e1 GIT binary patch literal 2721 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 P00000NkvXXu0mjf!;>B) literal 0 HcmV?d00001 diff --git a/textures/fun_caves_tesseract_metallic_ice_coral_gem.png b/textures/fun_caves_tesseract_metallic_ice_coral_gem.png new file mode 100644 index 0000000000000000000000000000000000000000..2c256149b1f643c1524c4ca8c66f0814ff445797 GIT binary patch literal 11470 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ⅆN>PDrf4z_Op z(QTuk+S7aG(4MDt=f-PD5BL3P004T{U%}wX6I6z@s@d{BqyN|c^mx3cZc(Od?TWoM z%e+-nhmHB=DR!7Gq$-=aOi#l3Rn$s>@AK_+oPnHAPgRU7)-R_sq;M4orOvyjYVPc2 zj&?(7LV?SvWSN(;23LqF8g1|_2O-4VZ=?iifbSusfv_BcQVCryvc&PoOOt&C2QQbz z48iINdmFC*s8x|T63njt2_=cu{qD=2AFdT_`{ciq)%ahvz$~mQ@VQlQWq8|n z^x5{e8iS92|F`k5o$%ugSMFH)Mx#(JQ&C9ph}p#ok)~O=I0SqlRl{Lj&C=d(KG#zs z?+Gj&%xTH10L)b_@R}c_6{cGvpHA{v(xKOOS!-knUUOCSc}+Oqxnr1Utr3Ao*tYm+ zvV}cqg^E^V=zw`g9!V6?PZSLMmp>gmwy*iw2%EjAdiJmo!Y(^jL*JvCXfiR(iVV`{Fa%W_n|iZ_anIq=gZ9 zh+xh(5S#}f@a8HTwF2cMltTI*MtX*QS%ay-*@+mx zPDivfZDAM&)u(oxx!}n2*Zp>Q;On`;V+ZOkxkXOxd@yL)a6Q?P)BooH%z-dTrtbhJ z7T$)}w?o%%xWydW{pe)k#0&RTl%`J!CtB&$w1i|R7JDRUl0Oexh!E%xwEALmgGs6E z&mEEKyaogT!gtSag8)1iTo*i-An>X3vYg7nwp^GS?HL-RkAGeZG;{QvLx3$blb+=B z)0O-zT@gqjq!2J8 zlVLBtTK0YWeI7vL{N<}73pQ?v*0rt?;i{W`D`Z|#19ydo)rx2!F&v7TxtszTq=}H? zk7^I*G$GIs@$&q-KgV6ut^BmQpKI(So-i;Ci8!CA84Vm>D%t!XQ>FHoqpHHhRDqW& zPxO6l^x2>NJ-~az7~d@t+|d}}$CHKs{~9MdFMA_{&;Oc^<*N}*i%n<4ot*yc7XQ`z zt()I;htt%1kz3pSf$o^iZ52s(lbkVEL_LY^ps?|j#(!0C=2~M=bKPQLp%|N(#D;ZLLIRT!-_oc2kly3R)h@qMcmZYwE`B-xqC0u^3!}RqdGrn2eWCAY;*qf# zeSLc~j}DLj*L03{U2;7GJ0GQc-DXr(uQa2TQeOEPb>{t*3Si!~ci!SPFa2m>M>j01 ziL%ztdaIabiJ6yOAuVlF3(gDvs_#&CwH_`DwKr?1@0Z*4fZd>17Wy5_FX=R>;zx`O9Q?0uodxK*_-fAW ze1e5*S5vB6BL^S|Yf;E~B^vIL$Z5G70Kq>btmfwwm(7j~5=`;Jb$ylWVs_4*GE#h36L0ftL}!f6!FrXJlq_pDJZ6DdbthFoQs$0=MY7ndyA)(DTXM z`F4QL!x}zxlNj9bum5iPy?2=TOBYh=x`N@yzWv(0Dlp?~ zwnVI^-jE%sa6~y(=LI@!TO#jkM>H4Qil5S oNe=Ei#e(%0b9&FN|LeK`Ur(^#T5q@pTmS$707*qoM6N<$f>ere!vFvP literal 0 HcmV?d00001 diff --git a/textures/fun_caves_tesseract_metallic_ice_garnet.png b/textures/fun_caves_tesseract_metallic_ice_garnet.png new file mode 100644 index 0000000000000000000000000000000000000000..fae628e809a2dab867c7464001f1c9dbf3ca1795 GIT binary patch literal 11170 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 A2mk;8 literal 0 HcmV?d00001 diff --git a/textures/fun_caves_tesseract_metallic_ice_moonstone.png b/textures/fun_caves_tesseract_metallic_ice_moonstone.png new file mode 100644 index 0000000000000000000000000000000000000000..4b75f8c2bb3c94c8fb99d022b12425f697183598 GIT binary patch literal 11435 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 FV1kLSs1pDH literal 0 HcmV?d00001 diff --git a/textures/fun_caves_tesseract_metallic_ice_zoisite.png b/textures/fun_caves_tesseract_metallic_ice_zoisite.png new file mode 100644 index 0000000000000000000000000000000000000000..c5171f571769841de4bab6852d5c41f35a38942f GIT binary patch literal 10503 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 JPDHLkV1jOp0CxZY literal 0 HcmV?d00001 diff --git a/trophies.lua b/trophies.lua new file mode 100644 index 0000000..64f2f2b --- /dev/null +++ b/trophies.lua @@ -0,0 +1,21 @@ + +minetest.register_craftitem("fun_caves:unobtainium", { + description = "Unobtainium", + drawtype = "plantlike", + paramtype = "light", + tiles = {"fun_caves_unobtainium.png"}, + inventory_image = "fun_caves_unobtainium.png", + groups = {dig_immediate = 3}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_craftitem("fun_caves:philosophers_stone", { + description = "Philosopher's Stone", + drawtype = "plantlike", + paramtype = "light", + tiles = {"fun_caves_phil_stone.png"}, + inventory_image = "fun_caves_phil_stone.png", + groups = {dig_immediate = 3}, + sounds = default.node_sound_stone_defaults(), +}) +