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 0000000..e12411e Binary files /dev/null and b/textures/fun_caves_eternal_ice_crystal.png differ diff --git a/textures/fun_caves_tesseract_iron_aqua.png b/textures/fun_caves_tesseract_iron_aquamarine.png similarity index 100% rename from textures/fun_caves_tesseract_iron_aqua.png rename to textures/fun_caves_tesseract_iron_aquamarine.png diff --git a/textures/fun_caves_tesseract_iron_coral.png b/textures/fun_caves_tesseract_iron_coral_gem.png similarity index 100% rename from textures/fun_caves_tesseract_iron_coral.png rename to textures/fun_caves_tesseract_iron_coral_gem.png diff --git a/textures/fun_caves_tesseract_iron_moon.png b/textures/fun_caves_tesseract_iron_moonstone.png similarity index 100% rename from textures/fun_caves_tesseract_iron_moon.png rename to textures/fun_caves_tesseract_iron_moonstone.png diff --git a/textures/fun_caves_tesseract_iron_zois.png b/textures/fun_caves_tesseract_iron_zoisite.png similarity index 100% rename from textures/fun_caves_tesseract_iron_zois.png rename to textures/fun_caves_tesseract_iron_zoisite.png diff --git a/textures/fun_caves_tesseract_metallic_ice_aquamarine.png b/textures/fun_caves_tesseract_metallic_ice_aquamarine.png new file mode 100644 index 0000000..5f521db Binary files /dev/null and b/textures/fun_caves_tesseract_metallic_ice_aquamarine.png differ 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 0000000..2c25614 Binary files /dev/null and b/textures/fun_caves_tesseract_metallic_ice_coral_gem.png differ 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 0000000..fae628e Binary files /dev/null and b/textures/fun_caves_tesseract_metallic_ice_garnet.png differ 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 0000000..4b75f8c Binary files /dev/null and b/textures/fun_caves_tesseract_metallic_ice_moonstone.png differ 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 0000000..c5171f5 Binary files /dev/null and b/textures/fun_caves_tesseract_metallic_ice_zoisite.png differ 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(), +}) +