add some art
@ -5,27 +5,39 @@ local modmeta = minetest.get_mod_storage()
|
||||
collectible_lore = {}
|
||||
collectible_lore.lorebooks = {}
|
||||
|
||||
collectible_lore.get_player_unlocks = function(player_name)
|
||||
local unlocks_string = modmeta:get("player_" .. player_name)
|
||||
if unlocks_string == nil then
|
||||
collectible_lore.get_player_collected = function(player_name)
|
||||
local collected_string = modmeta:get("player_" .. player_name)
|
||||
if collected_string == nil then
|
||||
return {}
|
||||
else
|
||||
return minetest.deserialize(unlocks_string)
|
||||
return minetest.deserialize(collected_string)
|
||||
end
|
||||
end
|
||||
|
||||
local set_lock = function(player_name, id, state)
|
||||
local unlocks = collectible_lore.get_player_unlocks(player_name)
|
||||
unlocks[id] = state
|
||||
modmeta:set_string("player_" .. player_name, minetest.serialize(unlocks))
|
||||
collectible_lore.get_player_uncollected_list = function(player_name)
|
||||
local collected = collectible_lore.get_player_collected(player_name)
|
||||
--minetest.debug(dump(collected))
|
||||
local uncollected = {}
|
||||
for index, def in pairs(collectible_lore.lorebooks) do
|
||||
if not collected[def.id] then
|
||||
table.insert(uncollected, index)
|
||||
end
|
||||
end
|
||||
return uncollected
|
||||
end
|
||||
|
||||
collectible_lore.unlock = function(player_name, id)
|
||||
set_lock(player_name, id, true)
|
||||
local set_collected = function(player_name, id, state)
|
||||
local collected = collectible_lore.get_player_collected(player_name)
|
||||
collected[id] = state
|
||||
modmeta:set_string("player_" .. player_name, minetest.serialize(collected))
|
||||
end
|
||||
|
||||
collectible_lore.lock = function(player_name, id)
|
||||
set_lock(player_name, id, nil)
|
||||
collectible_lore.collect = function(player_name, id)
|
||||
set_collected(player_name, id, true)
|
||||
end
|
||||
|
||||
collectible_lore.uncollect = function(player_name, id)
|
||||
set_collected(player_name, id, nil)
|
||||
end
|
||||
|
||||
local collectible_lore_sort = function(first, second)
|
||||
@ -56,27 +68,27 @@ end
|
||||
|
||||
|
||||
minetest.register_chatcommand("collectible", {
|
||||
params = "[lock|unlock|clear|show] <player_name> <id>", -- Short parameter description
|
||||
description = "Remove privilege from player",
|
||||
params = "[collect|uncollect|clear|show] <player_name> <id>", -- Short parameter description
|
||||
description = S("Administrative control of collectibles"),
|
||||
privs = {server=true},
|
||||
func = function(name, param)
|
||||
local first, second, third = param:match("^([^%s]+)%s+(%S+)%s*(.*)")
|
||||
if third == "" then third = nil end
|
||||
if first == "lock" and second and third then
|
||||
collectible_lore.lock(second, third)
|
||||
if first == "uncollect" and second and third then
|
||||
collectible_lore.uncollect(second, third)
|
||||
return
|
||||
elseif first == "unlock" and second and third then
|
||||
collectible_lore.unlock(second, third)
|
||||
elseif first == "collect" and second and third then
|
||||
collectible_lore.collect(second, third)
|
||||
return
|
||||
elseif first == "clear" and second then
|
||||
modmeta:set_string("player_" .. second, minetest.serialize({}))
|
||||
return
|
||||
elseif first == "show" and second then
|
||||
minetest.chat_send_player(name, dump(collectible_lore.get_player_unlocks(second)))
|
||||
minetest.chat_send_player(name, dump(collectible_lore.get_player_collected(second)))
|
||||
return
|
||||
end
|
||||
|
||||
minetest.chat_send_player(name, "error parsing command")
|
||||
minetest.chat_send_player(name, S("error parsing command"))
|
||||
end,
|
||||
})
|
||||
|
||||
|
@ -1,6 +1,8 @@
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
local modmeta = minetest.get_mod_storage()
|
||||
|
||||
cairn_spacing = tonumber(minetest.settings:get("collectible_lore_cairn_spacing")) or 500
|
||||
|
||||
local cairn_area = AreaStore()
|
||||
|
||||
local existing_area = modmeta:get("areastore_cairn")
|
||||
@ -25,15 +27,25 @@ local cairn_loot = function(pos, player)
|
||||
if not player_name then return end
|
||||
|
||||
local list = get_cairn_looted_by_list(pos)
|
||||
if list[player_name] then
|
||||
return false
|
||||
-- if list[player_name] then
|
||||
-- minetest.chat_send_player(player_name, S("You've already collected the contents of this cairn."))
|
||||
-- return false
|
||||
-- end
|
||||
list[player_name] = true
|
||||
|
||||
local uncollected = collectible_lore.get_player_uncollected_list(player_name)
|
||||
--minetest.debug(dump(uncollected))
|
||||
if next(uncollected) then
|
||||
local random_lorebook = uncollected[math.random(#uncollected)]
|
||||
collectible_lore.collect(player_name, collectible_lore.lorebooks[random_lorebook].id)
|
||||
minetest.show_formspec(player_name, "collectible_lore:collected",
|
||||
"formspec_version[6]size[8,2]label[0.5,0.5;" .. S("You've found a collectible item of lore titled:\n@1", collectible_lore.lorebooks[random_lorebook].title) .. "]")
|
||||
list[player_name] = true
|
||||
set_cairn_looted_by_list(pos, list)
|
||||
else
|
||||
minetest.show_formspec(player_name, "collectible_lore:collected",
|
||||
"formspec_version[6]size[8,2]label[0.5,0.5;" .. S("You've found all of the collectible items contained in cairns like this one").."]")
|
||||
end
|
||||
list[player_name] = true
|
||||
local lore_id = collectible_lore.lorebooks[math.random(#(collectible_lore.lorebooks))].id
|
||||
collectible_lore.unlock(player_name, lore_id)
|
||||
minetest.debug("unlocked " .. lore_id)
|
||||
list[player_name] = true
|
||||
set_cairn_looted_by_list(pos, list)
|
||||
|
||||
local leftover = player:get_inventory():add_item("main", "collectible_lore:satchel")
|
||||
if not leftover:is_empty() then
|
||||
@ -42,9 +54,6 @@ local cairn_loot = function(pos, player)
|
||||
return true
|
||||
end
|
||||
|
||||
|
||||
local range = 10
|
||||
|
||||
minetest.register_node("collectible_lore:cairn", {
|
||||
description = S("Cairn"),
|
||||
drawtype = "nodebox",
|
||||
@ -91,17 +100,17 @@ minetest.register_node("collectible_lore:cairn", {
|
||||
end
|
||||
end,
|
||||
on_construct = function(pos)
|
||||
local nearby = cairn_area:get_areas_in_area(vector.subtract(pos, range/2), vector.add(pos, range/2))
|
||||
local nearby = cairn_area:get_areas_in_area(vector.subtract(pos, cairn_spacing/2), vector.add(pos, cairn_spacing/2))
|
||||
if next(nearby) then
|
||||
minetest.debug("Cairn placed too close to other cairns. Placed at: " .. minetest.pos_to_string(pos) .."\nnearby:\n" .. dump(nearby))
|
||||
minetest.log("error", "Cairn placed too close to other cairns. Placed at: " .. minetest.pos_to_string(pos) .."\nnearby:\n" .. dump(nearby))
|
||||
end
|
||||
cairn_area:insert_area(pos, pos, "")
|
||||
modmeta:set_string("areastore_cairn", cairn_area:to_string())
|
||||
end,
|
||||
})
|
||||
|
||||
collectible_lore.get_nearby_cairns = function(pos)
|
||||
local nearby = cairn_area:get_areas_in_area(vector.subtract(pos, range/2), vector.add(pos, range/2))
|
||||
collectible_lore.get_nearby_cairns = function(pos, spacing)
|
||||
local nearby = cairn_area:get_areas_in_area(vector.subtract(pos, spacing/2), vector.add(pos, spacing/2))
|
||||
if next(nearby) then
|
||||
return nearby
|
||||
end
|
||||
@ -109,47 +118,52 @@ collectible_lore.get_nearby_cairns = function(pos)
|
||||
end
|
||||
|
||||
collectible_lore.place_cairn = function(pos)
|
||||
cairn_area:insert_area(pos, pos, "")
|
||||
modmeta:set_string("areastore_cairn", cairn_area:to_string())
|
||||
local nearby = collectible_lore.get_nearby_cairns(pos, cairn_spacing)
|
||||
if nearby then return end
|
||||
minetest.place_node(pos, {name="collectible_lore:cairn"})
|
||||
end
|
||||
|
||||
local player_state = {}
|
||||
|
||||
|
||||
local get_formspec_for_player = function(player_name)
|
||||
local selected
|
||||
local state = player_state[player_name] or 1
|
||||
local unlocks = collectible_lore.get_player_unlocks(player_name)
|
||||
local collected = collectible_lore.get_player_collected(player_name)
|
||||
local collected_count = 0
|
||||
for index, val in pairs(collected) do
|
||||
collected_count = collected_count + 1
|
||||
end
|
||||
|
||||
local form = {}
|
||||
table.insert(form, "formspec_version[6]size[10,8]")
|
||||
table.insert(form, "textlist[0,0;4,7;list;")
|
||||
local count = 1
|
||||
for index, value in pairs(collectible_lore.lorebooks) do
|
||||
local unlocked = unlocks[value.id]
|
||||
if unlocked and state == count then
|
||||
selected = value
|
||||
table.insert(form, "formspec_version[6]size[14,8]")
|
||||
table.insert(form, "textlist[0.5,0.5;5,6.5;list;")
|
||||
if collected_count > 0 then
|
||||
local count = 1
|
||||
for index, value in pairs(collectible_lore.lorebooks) do
|
||||
local iscollected = collected[value.id]
|
||||
if iscollected and state == count then
|
||||
selected = value
|
||||
end
|
||||
count = count + 1
|
||||
if iscollected then
|
||||
table.insert(form, minetest.formspec_escape(value.title))
|
||||
else
|
||||
table.insert(form, S("<Not found yet>"))
|
||||
end
|
||||
table.insert(form, ",")
|
||||
end
|
||||
count = count + 1
|
||||
if unlocked then
|
||||
table.insert(form, minetest.formspec_escape(value.title))
|
||||
else
|
||||
table.insert(form, S("<Locked>"))
|
||||
end
|
||||
table.insert(form, ",")
|
||||
table.remove(form) -- removes trailing comma
|
||||
end
|
||||
table.remove(form) -- removes trailing comma
|
||||
table.insert(form, ";" .. state .. "]")
|
||||
|
||||
table.insert(form, "textarea[4.5,0;5.5,7;;text;")
|
||||
|
||||
if selected then
|
||||
local str = selected.text
|
||||
table.insert(form, minetest.formspec_escape(str))
|
||||
else
|
||||
table.insert(form, " ")
|
||||
table.insert(form, "label[6,0.5;" .. minetest.formspec_escape(selected.title) .. "]")
|
||||
if selected.text then
|
||||
table.insert(form, "textarea[6,1;7.5,6.5;;;" .. minetest.formspec_escape(selected.text) .. "]")
|
||||
elseif selected.image then
|
||||
table.insert(form, "image[6.5,1;6.5,6.5;" .. selected.image .. "]")
|
||||
end
|
||||
end
|
||||
table.insert(form, "]")
|
||||
table.insert(form, "label[0.5,7.5;" .. S("Collected: @1/@2", collected_count, #(collectible_lore.lorebooks)) .. "]")
|
||||
|
||||
return table.concat(form)
|
||||
end
|
||||
|
@ -1,8 +1,19 @@
|
||||
# textdomain: collectible_lore
|
||||
|
||||
|
||||
### init.lua ###
|
||||
|
||||
Administrative control of collectibles=
|
||||
error parsing command=
|
||||
|
||||
### items.lua ###
|
||||
|
||||
<Locked>=
|
||||
<Not found yet>=
|
||||
Cairn=
|
||||
Collected: @1/@2=
|
||||
Collectibles Satchel=
|
||||
You've already collected the contents of this cairn.=
|
||||
You've found a collectible item of lore titled:@n@1=
|
||||
|
||||
You've found all of the collectible items contained in cairns like this one=
|
||||
|
||||
|
1
collectible_lore/settingtypes.txt
Normal file
@ -0,0 +1 @@
|
||||
collectible_lore_cairn_spacing (Minimum distance between collectible cairns) int 500
|
@ -239,16 +239,16 @@ Professor Amelia Rose]]),
|
||||
collectible_lore.register_lorebook({
|
||||
id = "rose ice sprites",
|
||||
title = S("Ice Sprites"),
|
||||
text = S([[Today I had the privilege of witnessing a truly remarkable sight. Deep in the Nether cap caverns, I came across the most beautiful creatures I have ever seen. They were tiny, glowing blue insects that flitted around the tips of the icicles, like tiny fairy lights. I couldn't help but feel enchanted by their beauty.
|
||||
text = S([[Today I had the privilege of witnessing a truly remarkable sight. Deep in the @1 caverns, I came across the most beautiful creatures I have ever seen. They were tiny, glowing blue insects that flitted around the tips of the icicles, like tiny fairy lights. I couldn't help but feel enchanted by their beauty.
|
||||
|
||||
These creatures are called Ice Sprites and they seem to be perfectly at home in the cold, icy environment of the Nether cap caverns. Their glow is intermittent, and when it shuts off, they are nigh invisible. I found it fascinating how such a small creature could survive in such a harsh environment.
|
||||
These creatures are called Ice Sprites and they seem to be perfectly at home in the cold, icy environment of the @2 caverns. Their glow is intermittent, and when it shuts off, they are nigh invisible. I found it fascinating how such a small creature could survive in such a harsh environment.
|
||||
|
||||
I was able to capture one of the Ice Sprites and contain it in a jar. I wanted to study it further and understand more about its biology. But as I sat looking at it, I realized that I had no idea how to keep it alive in the long term. I couldn't bring myself to subject it to a slow and painful death in the name of science. So I made the difficult decision to release it back into its natural habitat.
|
||||
|
||||
The more I explore these caverns, the more I am amazed by the strange and wonderful forms of life that exist here. The Ice Sprites have added another layer of mystery to the already puzzling biology of the Nether cap caverns. I am eager to continue my exploration and unravel more of the secrets that lay hidden here.
|
||||
The more I explore these caverns, the more I am amazed by the strange and wonderful forms of life that exist here. The Ice Sprites have added another layer of mystery to the already puzzling biology of the @3 caverns. I am eager to continue my exploration and unravel more of the secrets that lay hidden here.
|
||||
|
||||
Sincerely,
|
||||
Professor Amelia Rose]]),
|
||||
Professor Amelia Rose]], df_dependencies.nethercap_name, df_dependencies.nethercap_name, df_dependencies.nethercap_name),
|
||||
sort = base + 16,
|
||||
})
|
||||
|
||||
|
@ -73,26 +73,26 @@ Professor Amelia Rose]]),
|
||||
|
||||
collectible_lore.register_lorebook({
|
||||
id = "rose nether cap",
|
||||
title = S("Marvelous Nether Cap"),
|
||||
text = S([[Today, my team and I made a fascinating discovery in the deep caverns - the existence of Nether Cap mushrooms. These mushrooms possess an unusual biochemistry that allows them to subsist on ambient heat, in violation of all known laws of thermodynamics. We found them growing in frigid, icy caverns that should, by all rights, be simmering in the heat welling up from below.
|
||||
title = S("Marvelous @1", df_dependencies.nethercap_name),
|
||||
text = S([[Today, my team and I made a fascinating discovery in the deep caverns - the existence of @1 mushrooms. These mushrooms possess an unusual biochemistry that allows them to subsist on ambient heat, in violation of all known laws of thermodynamics. We found them growing in frigid, icy caverns that should, by all rights, be simmering in the heat welling up from below.
|
||||
|
||||
The Nether Cap mushroom is a true marvel of nature. The wood of the mushroom, in addition to being a beautiful blue hue, retains the odd heat-draining ability of living Nether Caps and is able to quickly freeze nearby water solid. This makes it an incredibly unique and valuable resource, as it could have a wide range of industrial and scientific applications.
|
||||
The @2 mushroom is a true marvel of nature. The wood of the mushroom, in addition to being a beautiful blue hue, retains the odd heat-draining ability of living @3 and is able to quickly freeze nearby water solid. This makes it an incredibly unique and valuable resource, as it could have a wide range of industrial and scientific applications.
|
||||
|
||||
Furthermore, the Nether Cap mushroom is also a valuable tool for understanding the underground ecosystem. The discovery of this species challenges our current understanding of how organisms can survive and thrive in extreme environments. It is clear that there is still much to learn about the deep caverns and the life that lives within them.
|
||||
Furthermore, the @4 mushroom is also a valuable tool for understanding the underground ecosystem. The discovery of this species challenges our current understanding of how organisms can survive and thrive in extreme environments. It is clear that there is still much to learn about the deep caverns and the life that lives within them.
|
||||
|
||||
Sincerely,
|
||||
Professor Amelia Rose]]),
|
||||
Professor Amelia Rose]], df_dependencies.nethercap_name, df_dependencies.nethercap_name, df_dependencies.nethercap_name, df_dependencies.nethercap_name),
|
||||
sort = base + 5,
|
||||
})
|
||||
|
||||
collectible_lore.register_lorebook({
|
||||
id = "banks nether cap",
|
||||
title = S("Infuriating Nether Cap"),
|
||||
text = S([[I have just encountered the Nether cap mushrooms, and I have to admit that my scientific mind is thoroughly flummoxed by them. These enormous blue mushrooms grow deep underground, in caverns that geologically speaking, should be extremely hot. But instead of generating heat, the Nether cap mushrooms are somehow capable of absorbing it.
|
||||
title = S("Infuriating @1", df_dependencies.nethercap_name),
|
||||
text = S([[I have just encountered the @1 mushrooms, and I have to admit that my scientific mind is thoroughly flummoxed by them. These enormous blue mushrooms grow deep underground, in caverns that geologically speaking, should be extremely hot. But instead of generating heat, the @2 mushrooms are somehow capable of absorbing it.
|
||||
|
||||
This is beyond comprehension, as it defies the laws of thermodynamics. It is simply not possible for a biological organism to feed directly on heat. But yet, here they are. The caverns that they are found in are frigid and icy, which only adds to the confusion.
|
||||
|
||||
To make matters worse, the wood of the Nether cap somehow retains this heat-sapping ability even after it's cut. I have never seen anything like it before, and I must admit that I am at a loss for an explanation.
|
||||
To make matters worse, the wood of the @3 somehow retains this heat-sapping ability even after it's cut. I have never seen anything like it before, and I must admit that I am at a loss for an explanation.
|
||||
|
||||
At times like this, it can be difficult to be a man of science. I would love to exterminate this species and put an end to this absurdity, but of course, that is not the way of science. We must study, we must observe, and we must learn. I will have to gather more data and try to make sense of what I am seeing.
|
||||
|
||||
@ -101,23 +101,21 @@ Despite my frustration, I must admit that these mushrooms are a remarkable disco
|
||||
It is frustrating, but the life of a scientist is not always easy. We must be willing to accept that sometimes, our predictions are wrong and that there are things that we simply cannot explain. But that's what makes this journey so exciting. We never know what new wonders await us in the depths of these caverns.
|
||||
|
||||
Signed,
|
||||
Dr. Theodore Banks]]),
|
||||
Dr. Theodore Banks]], df_dependencies.nethercap_name, df_dependencies.nethercap_name, df_dependencies.nethercap_name),
|
||||
sort = base + 6,
|
||||
})
|
||||
|
||||
|
||||
local tt_text2 = ""
|
||||
if df_trees.config.enable_tnt then
|
||||
S([[One of the most interesting adaptations of the Tunnel Tube is its method of spore dispersal. The fruiting bodies of these fungi accumulate high-energy compounds that, when ignited, produce a vigorous detonation that flings their spores great distances. This adaptation allows them to spread their spores in the still air of the caverns they grow in.
|
||||
|
||||
However, this adaptation also makes them a potential hazard. I would advise against making a campfire in a cavern that is home to Tunnel Tubes, as the explosive nature of these fungi could cause unexpected and potentially dangerous consequences.]])
|
||||
end
|
||||
collectible_lore.register_lorebook({
|
||||
id = "rose tunnel tube",
|
||||
title = S("Tunnel Tube Ecology"),
|
||||
text = S([[Today, I had the opportunity to study a particularly fascinating species of subterranean fungus, the Tunnel Tube. These towering growths, typically standing between 10 to 20 feet tall, are characterized by a hollow curved trunk that supports a large fruiting body at the top. The trunk of the Tunnel Tube is a striking purple hue and can be cut and processed to produce sheets of a woody material.]]),
|
||||
text2 = tt_text2,
|
||||
author = S("Professor Amelia Rose"),
|
||||
text = S([[Today, I had the opportunity to study a particularly fascinating species of subterranean fungus, the Tunnel Tube. These towering growths, typically standing between 10 to 20 feet tall, are characterized by a hollow curved trunk that supports a large fruiting body at the top. The trunk of the Tunnel Tube is a striking purple hue and can be cut and processed to produce sheets of a woody material.
|
||||
|
||||
One of the most interesting adaptations of the Tunnel Tube is its method of spore dispersal. The fruiting bodies of these fungi accumulate high-energy compounds that, when ignited, produce a vigorous detonation that flings their spores great distances. This adaptation allows them to spread their spores in the still air of the caverns they grow in.
|
||||
|
||||
However, this adaptation also makes them a potential hazard. I would advise against making a campfire in a cavern that is home to Tunnel Tubes, as the explosive nature of these fungi could cause unexpected and potentially dangerous consequences.
|
||||
|
||||
Sincerely,
|
||||
Professor Amelia Rose]]),
|
||||
sort = base + 7,
|
||||
})
|
||||
|
||||
@ -204,8 +202,10 @@ collectible_lore.register_lorebook({
|
||||
|
||||
I write to you today to express my frustration with the abundance of Spindlestem mushrooms throughout the caverns I have explored. These blasted mushrooms are everywhere, making it difficult to determine one's location within the caverns based on the local flora. Their inedibility only adds to my disappointment.
|
||||
|
||||
It is perhaps a petty thing to write a missive containing nothing but a short complaint directed at this most base and useless of of fungus, but one must give vent at times. These caverns are filled with wonders and yet these tedious growths clutter them. They are hardly worth the time to write about, which gives me such annoyance that I find I must regardless.]]),
|
||||
author = S("Sir Reginald Sterling"),
|
||||
It is perhaps a petty thing to write a missive containing nothing but a short complaint directed at this most base and useless of of fungus, but one must give vent at times. These caverns are filled with wonders and yet these tedious growths clutter them. They are hardly worth the time to write about, which gives me such annoyance that I find I must regardless.
|
||||
|
||||
Yours,
|
||||
Sir Reginald Sterling]]),
|
||||
sort = base + 12,
|
||||
})
|
||||
|
||||
|
@ -35,7 +35,6 @@ Dr. Theodore Banks]]),
|
||||
sort = base + 1,
|
||||
})
|
||||
|
||||
|
||||
--The Great Caverns general morphology (major caverns, warrens)
|
||||
|
||||
collectible_lore.register_lorebook({
|
||||
@ -201,8 +200,6 @@ Dr. Theodore Banks]]),
|
||||
sort = base + 11,
|
||||
})
|
||||
|
||||
|
||||
|
||||
--Cave pearls
|
||||
collectible_lore.register_lorebook({
|
||||
id = "banks pearls",
|
||||
|
@ -7,3 +7,4 @@ dofile(modpath.."/ecology_flora.lua")
|
||||
dofile(modpath.."/ecology_trees.lua")
|
||||
dofile(modpath.."/geology_the_great_caverns.lua")
|
||||
dofile(modpath.."/underworld_and_primordial.lua")
|
||||
dofile(modpath.."/watercolours.lua")
|
||||
|
@ -51,7 +51,7 @@ Today I had the opportunity to observe and study a most peculiar fungus, known a
|
||||
|
||||
Today I had the opportunity to see the rare and beautiful Castle Corals in the depths of the Sunless Sea. These formations truly resemble miniature undersea castles, complete with towers and battlements, and their delicate structure and intricate details are a sight to behold.@n@nGetting to see the Castle Corals was no small feat, however. The journey was long and treacherous, and the pressure at such depths is intense. But despite the difficulties, the sight of the Castle Corals was more than worth it. Their delicate beauty is unmatched, and the fact that they can only be found in such a remote and challenging location only adds to their value.@n@nIn terms of practical use, the Castle Corals are of little value, as their delicate structure makes them unsuitable for most construction purposes. But for someone like me, who values the beauty and wonder of nature, the Castle Corals are a true treasure.@n@nSincerely,@nProfessor Amelia Rose=
|
||||
|
||||
Today I had the privilege of witnessing a truly remarkable sight. Deep in the Nether cap caverns, I came across the most beautiful creatures I have ever seen. They were tiny, glowing blue insects that flitted around the tips of the icicles, like tiny fairy lights. I couldn't help but feel enchanted by their beauty.@n@nThese creatures are called Ice Sprites and they seem to be perfectly at home in the cold, icy environment of the Nether cap caverns. Their glow is intermittent, and when it shuts off, they are nigh invisible. I found it fascinating how such a small creature could survive in such a harsh environment.@n@nI was able to capture one of the Ice Sprites and contain it in a jar. I wanted to study it further and understand more about its biology. But as I sat looking at it, I realized that I had no idea how to keep it alive in the long term. I couldn't bring myself to subject it to a slow and painful death in the name of science. So I made the difficult decision to release it back into its natural habitat.@n@nThe more I explore these caverns, the more I am amazed by the strange and wonderful forms of life that exist here. The Ice Sprites have added another layer of mystery to the already puzzling biology of the Nether cap caverns. I am eager to continue my exploration and unravel more of the secrets that lay hidden here.@n@nSincerely,@nProfessor Amelia Rose=
|
||||
Today I had the privilege of witnessing a truly remarkable sight. Deep in the @1 caverns, I came across the most beautiful creatures I have ever seen. They were tiny, glowing blue insects that flitted around the tips of the icicles, like tiny fairy lights. I couldn't help but feel enchanted by their beauty.@n@nThese creatures are called Ice Sprites and they seem to be perfectly at home in the cold, icy environment of the @2 caverns. Their glow is intermittent, and when it shuts off, they are nigh invisible. I found it fascinating how such a small creature could survive in such a harsh environment.@n@nI was able to capture one of the Ice Sprites and contain it in a jar. I wanted to study it further and understand more about its biology. But as I sat looking at it, I realized that I had no idea how to keep it alive in the long term. I couldn't bring myself to subject it to a slow and painful death in the name of science. So I made the difficult decision to release it back into its natural habitat.@n@nThe more I explore these caverns, the more I am amazed by the strange and wonderful forms of life that exist here. The Ice Sprites have added another layer of mystery to the already puzzling biology of the @3 caverns. I am eager to continue my exploration and unravel more of the secrets that lay hidden here.@n@nSincerely,@nProfessor Amelia Rose=
|
||||
|
||||
Today I stumbled upon a bountiful patch of plump helmets. These thick, fleshy mushrooms are a common sight in the caverns and serve as a staple food source for both lost cave explorers and the fauna that preys on them. Though they can be eaten fresh, I found that they can be quite monotonous on their own. However, when prepared in a more complex dish, they add a nice meaty texture and earthy flavor. It's always a relief to come across a reliable source of sustenance in these underground depths. I will be sure to gather as many as I can to bring back to camp for tonight's meal.@n@n@n@nSincerely,@nProfessor Amelia Rose=
|
||||
|
||||
@ -84,25 +84,20 @@ Black Cap=
|
||||
Blasted Spindlestems=
|
||||
Bloodthorn=
|
||||
|
||||
Dear Members of the Royal Adventurers Society,@n@nI write to you today to express my frustration with the abundance of Spindlestem mushrooms throughout the caverns I have explored. These blasted mushrooms are everywhere, making it difficult to determine one's location within the caverns based on the local flora. Their inedibility only adds to my disappointment.@n@nIt is perhaps a petty thing to write a missive containing nothing but a short complaint directed at this most base and useless of of fungus, but one must give vent at times. These caverns are filled with wonders and yet these tedious growths clutter them. They are hardly worth the time to write about, which gives me such annoyance that I find I must regardless.=
|
||||
Dear Members of the Royal Adventurers Society,@n@nI write to you today to express my frustration with the abundance of Spindlestem mushrooms throughout the caverns I have explored. These blasted mushrooms are everywhere, making it difficult to determine one's location within the caverns based on the local flora. Their inedibility only adds to my disappointment.@n@nIt is perhaps a petty thing to write a missive containing nothing but a short complaint directed at this most base and useless of of fungus, but one must give vent at times. These caverns are filled with wonders and yet these tedious growths clutter them. They are hardly worth the time to write about, which gives me such annoyance that I find I must regardless.@n@nYours,@nSir Reginald Sterling=
|
||||
|
||||
Fungiwood=
|
||||
Goblin Cap=
|
||||
|
||||
I have been conducting experiments on the Tunnel Tubes, a species of fungi that can be found growing deep underground in the caverns. I have successfully harvested the fruiting bodies of the Tunnel Tubes and have been experimenting with refining a gunpowder-like explosive from them. This explosive has shown great potential in mining and construction, but I must note that my experiments were cut short due to several casualties among my crew caused by careless detonations.@n @nIn addition to the explosive potential of the Tunnel Tubes, I have also discovered that the wood produced from their trunks has a unique cross-grained texture that makes it incredibly strong and flexible. This could have a wide range of uses in construction and carpentry. However, I must mention that the purple hue of the wood is unfortunately unpleasant and I have yet to devise a way to bleach the wood to make it more appealing.@n@nOverall, the Tunnel Tubes have a lot of potential for industrial use, but we must be careful in handling them and make sure to take proper safety precautions when working with them. I will continue my experiments and report any further findings.@n@nSigned,@nDr. Theodore Banks=
|
||||
|
||||
I have just encountered the Nether cap mushrooms, and I have to admit that my scientific mind is thoroughly flummoxed by them. These enormous blue mushrooms grow deep underground, in caverns that geologically speaking, should be extremely hot. But instead of generating heat, the Nether cap mushrooms are somehow capable of absorbing it.@n@nThis is beyond comprehension, as it defies the laws of thermodynamics. It is simply not possible for a biological organism to feed directly on heat. But yet, here they are. The caverns that they are found in are frigid and icy, which only adds to the confusion.@n@nTo make matters worse, the wood of the Nether cap somehow retains this heat-sapping ability even after it's cut. I have never seen anything like it before, and I must admit that I am at a loss for an explanation.@n@nAt times like this, it can be difficult to be a man of science. I would love to exterminate this species and put an end to this absurdity, but of course, that is not the way of science. We must study, we must observe, and we must learn. I will have to gather more data and try to make sense of what I am seeing.@n@nDespite my frustration, I must admit that these mushrooms are a remarkable discovery. They have the potential to completely change our understanding of geothermal heat flows. I just need to stay objective and stick to the facts.@n@nIt is frustrating, but the life of a scientist is not always easy. We must be willing to accept that sometimes, our predictions are wrong and that there are things that we simply cannot explain. But that's what makes this journey so exciting. We never know what new wonders await us in the depths of these caverns.@n@nSigned,@nDr. Theodore Banks=
|
||||
I have just encountered the @1 mushrooms, and I have to admit that my scientific mind is thoroughly flummoxed by them. These enormous blue mushrooms grow deep underground, in caverns that geologically speaking, should be extremely hot. But instead of generating heat, the @2 mushrooms are somehow capable of absorbing it.@n@nThis is beyond comprehension, as it defies the laws of thermodynamics. It is simply not possible for a biological organism to feed directly on heat. But yet, here they are. The caverns that they are found in are frigid and icy, which only adds to the confusion.@n@nTo make matters worse, the wood of the @3 somehow retains this heat-sapping ability even after it's cut. I have never seen anything like it before, and I must admit that I am at a loss for an explanation.@n@nAt times like this, it can be difficult to be a man of science. I would love to exterminate this species and put an end to this absurdity, but of course, that is not the way of science. We must study, we must observe, and we must learn. I will have to gather more data and try to make sense of what I am seeing.@n@nDespite my frustration, I must admit that these mushrooms are a remarkable discovery. They have the potential to completely change our understanding of geothermal heat flows. I just need to stay objective and stick to the facts.@n@nIt is frustrating, but the life of a scientist is not always easy. We must be willing to accept that sometimes, our predictions are wrong and that there are things that we simply cannot explain. But that's what makes this journey so exciting. We never know what new wonders await us in the depths of these caverns.@n@nSigned,@nDr. Theodore Banks=
|
||||
|
||||
Infuriating Nether Cap=
|
||||
Infuriating @1=
|
||||
|
||||
It appears that Dr. Banks' log on Spindlestems has caused some confusion and I would like to set the record straight. While it is true that the microorganisms living within the caps of Spindlestems are affected by the trace minerals present in the water where they grow, there are other factors at play that he seems to have overlooked.@n@nFirst, I would like to point out that when growing near Goblin Caps, Spindlestems always glow red regardless of the minerals in the soil. This is a fascinating observation that I believe warrants further study. Second, when growing near Tower Caps, Spindlestems don't glow at all. This is another intriguing observation that I believe is worth investigating.@n@nI would like to remind my colleagues that not everything can be reduced to chemistry, and that there is still much we do not understand about the complex interactions between different subterranean organisms. Furthermore, Banks has no explanation for the rare yellow Spindlestem, which is a beautiful and unique variant of this mushroom species.@n@nOn a final note, I would like to point out that the extract of Spindlestems, while transient and limited in palette, is a beautiful and versatile pigment that can be used in many artistic applications. The beauty of the underground world is not limited to just the resources it provides, but also in the subtle and delicate forms that can be found there.@n@nSincerely,@nProfessor Amelia Rose=
|
||||
|
||||
Marvelous Nether Cap=
|
||||
|
||||
One of the most interesting adaptations of the Tunnel Tube is its method of spore dispersal. The fruiting bodies of these fungi accumulate high-energy compounds that, when ignited, produce a vigorous detonation that flings their spores great distances. This adaptation allows them to spread their spores in the still air of the caverns they grow in.@n@nHowever, this adaptation also makes them a potential hazard. I would advise against making a campfire in a cavern that is home to Tunnel Tubes, as the explosive nature of these fungi could cause unexpected and potentially dangerous consequences.=
|
||||
|
||||
Professor Amelia Rose=
|
||||
Sir Reginald Sterling=
|
||||
Marvelous @1=
|
||||
Spindlestem Complexities=
|
||||
Spindlestem Lanterns=
|
||||
Spindlestem as Mineral Marker=
|
||||
@ -116,7 +111,7 @@ Today we came across a truly extraordinary discovery. As we were exploring one o
|
||||
|
||||
Today we came across a truly remarkable sight in the caverns - a group of Goblin Cap mushrooms, each one larger than any I have ever seen before. These massive fungi stand at least 10 feet tall and have a squat, bulbous shape that makes them look like little cottages. It's not hard to imagine that some of the more primitive denizens of the deeps might carve out a hollow in the stem of one of these mushrooms to use as a home.@n@nThe stems and caps of the Goblin Cap mushrooms are made of a wood that is both dense and strong. It can be cut into two different hues, a subdued cream and a bright orange-red. The cream colored wood is particularly hard and heavy, while the orange-red wood is lighter and more porous. Both types of wood can be used for construction and other practical applications, but I suspect that the orange-red wood may also have some artistic value.@n@nSincerely,@nProfessor Amelia Rose=
|
||||
|
||||
Today, I had the opportunity to study a particularly fascinating species of subterranean fungus, the Tunnel Tube. These towering growths, typically standing between 10 to 20 feet tall, are characterized by a hollow curved trunk that supports a large fruiting body at the top. The trunk of the Tunnel Tube is a striking purple hue and can be cut and processed to produce sheets of a woody material.=
|
||||
Today, I had the opportunity to study a particularly fascinating species of subterranean fungus, the Tunnel Tube. These towering growths, typically standing between 10 to 20 feet tall, are characterized by a hollow curved trunk that supports a large fruiting body at the top. The trunk of the Tunnel Tube is a striking purple hue and can be cut and processed to produce sheets of a woody material.@n@nOne of the most interesting adaptations of the Tunnel Tube is its method of spore dispersal. The fruiting bodies of these fungi accumulate high-energy compounds that, when ignited, produce a vigorous detonation that flings their spores great distances. This adaptation allows them to spread their spores in the still air of the caverns they grow in.@n@nHowever, this adaptation also makes them a potential hazard. I would advise against making a campfire in a cavern that is home to Tunnel Tubes, as the explosive nature of these fungi could cause unexpected and potentially dangerous consequences.@n@nSincerely,@nProfessor Amelia Rose=
|
||||
|
||||
Today, I had the opportunity to study the Spindlestem mushrooms, a common and useful resource for underground travelers. These mushrooms are too big to easily pluck by hand, but too small to be called a proper tree. Despite their thinness, they can grow quite tall and their stem is surprisingly sturdy. They can be used as a wood substitute in many crafting recipes.@n@nThe most distinctive feature of Spindlestem mushrooms is their glow, with some varieties having caps that glow in a red, green, cyan, or even sometimes golden hue. This glow is generated by some form of microorganism that lives within the Spindlestem's caps and can be extracted and bottled to produce a long-lasting source of light.@n@nThe brightness of this light varies with the colour of the cap, but even the dim red Spindlestem extract makes a useful trail marker in these dark caverns. This makes them an excellent resource for underground explorers and spelunkers. The abundance of Spindlestems may render our reliance on foul, smoky torches obsolete.@n@nSincerely,@nProfessor Amelia Rose=
|
||||
|
||||
@ -126,7 +121,7 @@ Today, my graduate students and I ventured deeper into the caverns than we ever
|
||||
|
||||
Today, my team and I came across a truly remarkable discovery. Deep in the caverns, we stumbled upon a grove of towering mushrooms unlike any we have ever seen before. These mushrooms, which I have named 'Tower Caps', stand at least thirty feet tall when fully grown and have massive stems. The oldest of these mushrooms could be decades old, perhaps even centuries in some rare cases, but under the right conditions, they grow rapidly to full size.@n@nTheir stems and caps provide ample quantities of woody material when cut down and processed. We were able to gather large amounts of this material and it holds great promise for use in construction and as a source of fuel for our expeditions. The discovery of these Tower Caps is not only significant for the practical applications of their wood, but also for the understanding of the unique ecosystem that exists within the caverns. The possibilities for study and research are endless. I can hardly wait to return to the grove and continue our investigations.@n@nSincerely,@nProfessor Amelia Rose=
|
||||
|
||||
Today, my team and I made a fascinating discovery in the deep caverns - the existence of Nether Cap mushrooms. These mushrooms possess an unusual biochemistry that allows them to subsist on ambient heat, in violation of all known laws of thermodynamics. We found them growing in frigid, icy caverns that should, by all rights, be simmering in the heat welling up from below.@n@nThe Nether Cap mushroom is a true marvel of nature. The wood of the mushroom, in addition to being a beautiful blue hue, retains the odd heat-draining ability of living Nether Caps and is able to quickly freeze nearby water solid. This makes it an incredibly unique and valuable resource, as it could have a wide range of industrial and scientific applications.@n@nFurthermore, the Nether Cap mushroom is also a valuable tool for understanding the underground ecosystem. The discovery of this species challenges our current understanding of how organisms can survive and thrive in extreme environments. It is clear that there is still much to learn about the deep caverns and the life that lives within them.@n@nSincerely,@nProfessor Amelia Rose=
|
||||
Today, my team and I made a fascinating discovery in the deep caverns - the existence of @1 mushrooms. These mushrooms possess an unusual biochemistry that allows them to subsist on ambient heat, in violation of all known laws of thermodynamics. We found them growing in frigid, icy caverns that should, by all rights, be simmering in the heat welling up from below.@n@nThe @2 mushroom is a true marvel of nature. The wood of the mushroom, in addition to being a beautiful blue hue, retains the odd heat-draining ability of living @3 and is able to quickly freeze nearby water solid. This makes it an incredibly unique and valuable resource, as it could have a wide range of industrial and scientific applications.@n@nFurthermore, the @4 mushroom is also a valuable tool for understanding the underground ecosystem. The discovery of this species challenges our current understanding of how organisms can survive and thrive in extreme environments. It is clear that there is still much to learn about the deep caverns and the life that lives within them.@n@nSincerely,@nProfessor Amelia Rose=
|
||||
|
||||
Today, while conducting a survey of the subterranean fungi, I made a discovery that I found to be quite interesting. As I was observing a group of Spindlestem mushrooms, I noticed that their caps were emitting a red glow. Being an experienced geologist, I immediately suspected that this might be an indication of nearby iron deposits.@n@nTo test this hypothesis, I ventured further into the cavern and found another group of Spindlestems, this time emitting a green glow. I hypothesized that this might be an indication of nearby copper deposits. I conducted a series of experiments to confirm my suspicions, and to my delight, my hypothesis was correct.@n@nI also found that some Spindlestems were emitting a cyan glow, which I suspect is an indication of a mix of both iron and copper deposits. I found this discovery to be quite exciting, and I believe it could have significant implications for underground mining operations.@n@nIt's a shame that Professor Amelia Rose, whose journal entry about Spindlestems I read earlier, failed to mention this important discovery. I suppose it just goes to show that sometimes, a little rigor in scientific observation can go a long way.@n@nSigned,@nDr. Theodore Banks=
|
||||
|
||||
@ -264,3 +259,18 @@ Puzzle Seals=
|
||||
Slade=
|
||||
The Underworld=
|
||||
Underworld Ruins=
|
||||
|
||||
### watercolours.lua ###
|
||||
|
||||
A Towercap, By Amelia Rose=
|
||||
Bloodthorn, By Amelia Rose=
|
||||
Chasm Wall, By Amelia Rose=
|
||||
Coral Glow, By Amelia Rose=
|
||||
Destination of Life, By Amelia Rose=
|
||||
Forest of Dust, By Amelia Rose=
|
||||
Fungiwood, By Amelia Rose=
|
||||
Goblin Cap, By Amelia Rose=
|
||||
Sunset Sans Sun, By Amelia Rose=
|
||||
The Cold Path, By Amelia Rose=
|
||||
Torches in the Dark, By Amelia Rose=
|
||||
Tunnel, By Amelia Rose=
|
||||
|
BIN
df_lorebooks/textures/df_lorebooks_black_cap.jpg
Normal file
After Width: | Height: | Size: 81 KiB |
BIN
df_lorebooks/textures/df_lorebooks_bloodthorn.jpg
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
df_lorebooks/textures/df_lorebooks_chasm_wall.jpg
Normal file
After Width: | Height: | Size: 85 KiB |
BIN
df_lorebooks/textures/df_lorebooks_fungiwood.jpg
Normal file
After Width: | Height: | Size: 137 KiB |
BIN
df_lorebooks/textures/df_lorebooks_goblin_cap.jpg
Normal file
After Width: | Height: | Size: 98 KiB |
BIN
df_lorebooks/textures/df_lorebooks_nethercap.jpg
Normal file
After Width: | Height: | Size: 125 KiB |
BIN
df_lorebooks/textures/df_lorebooks_spore_trees.jpg
Normal file
After Width: | Height: | Size: 109 KiB |
BIN
df_lorebooks/textures/df_lorebooks_sunless_sea.jpg
Normal file
After Width: | Height: | Size: 107 KiB |
BIN
df_lorebooks/textures/df_lorebooks_sunless_sea_2.jpg
Normal file
After Width: | Height: | Size: 116 KiB |
BIN
df_lorebooks/textures/df_lorebooks_sunless_sea_3.jpg
Normal file
After Width: | Height: | Size: 132 KiB |
BIN
df_lorebooks/textures/df_lorebooks_towercap.jpg
Normal file
After Width: | Height: | Size: 97 KiB |
BIN
df_lorebooks/textures/df_lorebooks_tunnel_tube.jpg
Normal file
After Width: | Height: | Size: 88 KiB |
89
df_lorebooks/watercolours.lua
Normal file
@ -0,0 +1,89 @@
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
local base = 150
|
||||
|
||||
----------------------------------------------------------
|
||||
collectible_lore.register_lorebook({
|
||||
id = "rose watercolor tower cap",
|
||||
title = S("A Towercap, By Amelia Rose"),
|
||||
image = "df_lorebooks_towercap.jpg",
|
||||
sort = base + 0,
|
||||
})
|
||||
|
||||
collectible_lore.register_lorebook({
|
||||
id = "rose watercolor chasm wall",
|
||||
title = S("Chasm Wall, By Amelia Rose"),
|
||||
image = "df_lorebooks_chasm_wall.jpg",
|
||||
sort = base + 1,
|
||||
})
|
||||
|
||||
collectible_lore.register_lorebook({
|
||||
id = "rose watercolor fungiwood",
|
||||
title = S("Fungiwood, By Amelia Rose"),
|
||||
image = "df_lorebooks_fungiwood.jpg",
|
||||
sort = base + 2,
|
||||
})
|
||||
|
||||
collectible_lore.register_lorebook({
|
||||
id = "rose watercolor spore trees",
|
||||
title = S("Forest of Dust, By Amelia Rose"),
|
||||
image = "df_lorebooks_spore_trees.jpg",
|
||||
sort = base + 3,
|
||||
})
|
||||
|
||||
collectible_lore.register_lorebook({
|
||||
id = "rose watercolor tunnel tube",
|
||||
title = S("Tunnel, By Amelia Rose"),
|
||||
image = "df_lorebooks_tunnel_tube.jpg",
|
||||
sort = base + 4,
|
||||
})
|
||||
|
||||
collectible_lore.register_lorebook({
|
||||
id = "rose watercolor goblin cap",
|
||||
title = S("Goblin Cap, By Amelia Rose"),
|
||||
image = "df_lorebooks_goblin_cap.jpg",
|
||||
sort = base + 5,
|
||||
})
|
||||
|
||||
collectible_lore.register_lorebook({
|
||||
id = "rose watercolor nether cap",
|
||||
title = S("The Cold Path, By Amelia Rose"),
|
||||
image = "df_lorebooks_nethercap.jpg",
|
||||
sort = base + 6,
|
||||
})
|
||||
|
||||
collectible_lore.register_lorebook({
|
||||
id = "rose watercolor black cap",
|
||||
title = S("Torches in the Dark, By Amelia Rose"),
|
||||
image = "df_lorebooks_black_cap.jpg",
|
||||
sort = base + 7,
|
||||
})
|
||||
|
||||
collectible_lore.register_lorebook({
|
||||
id = "rose watercolor bloodthorn",
|
||||
title = S("Bloodthorn, By Amelia Rose"),
|
||||
image = "df_lorebooks_bloodthorn.jpg",
|
||||
sort = base + 8,
|
||||
})
|
||||
|
||||
|
||||
collectible_lore.register_lorebook({
|
||||
id = "rose watercolor sunless sea",
|
||||
title = S("Sunset Sans Sun, By Amelia Rose"),
|
||||
image = "df_lorebooks_sunless_sea.jpg",
|
||||
sort = base + 9,
|
||||
})
|
||||
|
||||
collectible_lore.register_lorebook({
|
||||
id = "rose watercolor sunless sea 2",
|
||||
title = S("Coral Glow, By Amelia Rose"),
|
||||
image = "df_lorebooks_sunless_sea_2.jpg",
|
||||
sort = base + 10,
|
||||
})
|
||||
|
||||
collectible_lore.register_lorebook({
|
||||
id = "rose watercolor sunless sea 3",
|
||||
title = S("Destination of Life, By Amelia Rose"),
|
||||
image = "df_lorebooks_sunless_sea_3.jpg",
|
||||
sort = base + 11,
|
||||
})
|