many worldgen mods and gonna try technic now
@@ -0,0 +1,117 @@
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
---------------------------------------------------------------------------------------
|
||||
-- Glownode and stalk
|
||||
|
||||
minetest.register_node("df_primordial_items:glownode", {
|
||||
description = S("Primordial Fungal Lantern"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.glownode_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.glownode_usage,
|
||||
drawtype = "glasslike",
|
||||
tiles = {"dfcaverns_mush_glownode.png"},
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
is_ground_content = false,
|
||||
groups = {cracky = 3, oddly_breakable_by_hand = 3, handy=1, glass=1, building_block=1, material_glass=1},
|
||||
sounds = df_dependencies.sound_glass(),
|
||||
light_source = minetest.LIGHT_MAX,
|
||||
_mcl_blast_resistance = 0.3,
|
||||
_mcl_hardness = 0.3,
|
||||
})
|
||||
|
||||
minetest.register_node("df_primordial_items:glownode_stalk", {
|
||||
description = S("Primordial Fungal Lantern Stalk"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.glownode_stalk_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.glownode_stalk_usage,
|
||||
tiles = {"dfcaverns_mush_stalk_top.png", "dfcaverns_mush_stalk_top.png", "dfcaverns_mush_stalk_side.png"},
|
||||
paramtype2 = "facedir",
|
||||
is_ground_content = false,
|
||||
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2, handy=1,axey=1,building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
|
||||
sounds = df_dependencies.sound_wood(),
|
||||
on_place = minetest.rotate_node,
|
||||
_mcl_blast_resistance = 2,
|
||||
_mcl_hardness = 2,
|
||||
})
|
||||
|
||||
minetest.register_node("df_primordial_items:glow_orb_hanging", {
|
||||
description = S("Primordial Fungal Orb"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.glow_orb_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.glow_orb_usage,
|
||||
tiles = {"dfcaverns_mush_orb_vert.png"},
|
||||
inventory_image = "dfcaverns_mush_orb_vert.png",
|
||||
wield_image = "dfcaverns_mush_orb_vert.png",
|
||||
groups = {snappy = 3, flammable = 1, attached_node = 1, plant = 1, handy=1, swordy=1, hoey=1, destroy_by_lava_flow=1,dig_by_piston=1},
|
||||
paramtype = "light",
|
||||
paramtype2 = "degrotate",
|
||||
drawtype = "plantlike",
|
||||
buildable_to = true,
|
||||
is_ground_content = false,
|
||||
walkable = false,
|
||||
light_source = 6,
|
||||
sounds = df_dependencies.sound_leaves(),
|
||||
use_texture_alpha = "clip",
|
||||
sunlight_propagates = true,
|
||||
_mcl_blast_resistance = 0.2,
|
||||
_mcl_hardness = 0.2,
|
||||
})
|
||||
|
||||
local c_stalk = minetest.get_content_id("df_primordial_items:glownode_stalk")
|
||||
local c_node = minetest.get_content_id("df_primordial_items:glownode")
|
||||
local c_air = minetest.get_content_id("air")
|
||||
|
||||
df_primordial_items.spawn_ceiling_spire_vm = function(vi, area, data)
|
||||
local spire_height = math.random(1,10)
|
||||
|
||||
local ystride = area.ystride
|
||||
local zstride = area.zstride
|
||||
|
||||
for i = 0, spire_height do
|
||||
if data[vi-i*ystride] == c_air then
|
||||
data[vi-i*ystride] = c_stalk
|
||||
end
|
||||
end
|
||||
local bottom = vi - (spire_height +1) * ystride
|
||||
if data[bottom] == c_air then
|
||||
data[bottom] = c_node
|
||||
end
|
||||
|
||||
if spire_height > 4 then -- thicken it all up
|
||||
for i = 0, math.floor(spire_height/2) do
|
||||
local current_vi = vi-i*ystride
|
||||
if data[current_vi+1] == c_air then
|
||||
data[current_vi+1] = c_stalk
|
||||
end
|
||||
if data[current_vi-1] == c_air then
|
||||
data[current_vi-1] = c_stalk
|
||||
end
|
||||
if data[current_vi+zstride] == c_air then
|
||||
data[current_vi+zstride] = c_stalk
|
||||
end
|
||||
if data[current_vi-zstride] == c_air then
|
||||
data[current_vi-zstride] = c_stalk
|
||||
end
|
||||
end
|
||||
|
||||
if spire_height > 7 then
|
||||
bottom = bottom-ystride
|
||||
if data[bottom] == c_air then
|
||||
data[bottom] = c_node
|
||||
end
|
||||
if data[bottom-ystride] == c_air then
|
||||
data[bottom-ystride] = c_node
|
||||
end
|
||||
if data[bottom+1] == c_air then
|
||||
data[bottom+1] = c_node
|
||||
end
|
||||
if data[bottom-1] == c_air then
|
||||
data[bottom-1] = c_node
|
||||
end
|
||||
if data[bottom+zstride] == c_air then
|
||||
data[bottom+zstride] = c_node
|
||||
end
|
||||
if data[bottom-zstride] == c_air then
|
||||
data[bottom-zstride] = c_node
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,80 @@
|
||||
if not minetest.get_modpath("doc") then
|
||||
return
|
||||
end
|
||||
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
df_primordial_items.doc.big_mushroom_desc = S("Compared to the behemoths found elsewhere in the deep places of the world, the giant mushrooms of the primordial jungles are on the smaller side - often overwhelmed by the green plants that grow in the mysterious light below. Still, they can become substantial resources.")
|
||||
df_primordial_items.doc.big_mushroom_usage = S("The soft flesh of these large mushrooms is much less woody than other giant mushrooms, making it ill-suited to structural use. This makes it rather more nutritious, however.")
|
||||
|
||||
df_primordial_items.doc.dirt_with_jungle_grass_desc = S("The soil of the primordial jungle is rife with strange life at every scale.")
|
||||
df_primordial_items.doc.dirt_with_jungle_grass_usage = S("When left uncultivated primordial jungle soil will sprout all manner of strange wild plants.")
|
||||
df_primordial_items.doc.dirt_with_mycelium_desc = S("Fungal fibers have infiltrated the ground in a spongy mass, making the soil half mineral and half living matter.")
|
||||
df_primordial_items.doc.dirt_with_mycelium_usage = S("When left uncultivated mycelial soil will sprout all manner of strange wild fungi.")
|
||||
|
||||
df_primordial_items.doc.fern_desc = S("The dark-leaved ferns of the primordial jungle harken back to an earlier era of life in the world.")
|
||||
--df_primordial_items.doc.fern_usage =
|
||||
df_primordial_items.doc.grass_desc = S("These fibrous plants that grow in the deep appear similar to grass at a glance, but they are more closely related to horsetails - a form of vegetation from before the advent of modern plant forms. Ironically, pale cave wheat is more kin to surface grass than this is.")
|
||||
--df_primordial_items.doc.grass_usage =
|
||||
|
||||
df_primordial_items.doc.ivy_desc = S("Tangled weaves of ivy hang from the ceiling where there are wide enough gaps between the bright sources of light.")
|
||||
df_primordial_items.doc.ivy_usage = S("Ivy is climbable, if it hangs close enough to the ground it can serve as a path between floor and ceiling.")
|
||||
df_primordial_items.doc.roots_desc = S("Somewhere above an enormous plant has wedged its roots down through the rock and emerged from the ceiling of another cavern.")
|
||||
df_primordial_items.doc.roots_usage = S("These hanging roots are climbable.")
|
||||
|
||||
df_primordial_items.doc.fungal_grass_desc = S("Questing fibers of fungal mycelium sometimes erupt from the soil and reach upward, driven by chemical cues to seek out nourishment above. They look a lot like white grass, at a glance.")
|
||||
--df_primordial_items.doc.fungal_grass_usage =
|
||||
|
||||
df_primordial_items.doc.tree_desc = S("The large woody plants of the primordial jungle are similar in appearance to the jungle trees of the surface, but are a result of convergent evolution from ancient cycad plants toward a common form.")
|
||||
df_primordial_items.doc.tree_usage = S("Like wood of the surface world, primordial jungle trees can be chopped and carved as building material or as fuel.")
|
||||
df_primordial_items.doc.tree_glowing_desc = S("The cracks in the bark of some primordial jungle trees become host to phosphorescent veins of symbiotic fungus.")
|
||||
df_primordial_items.doc.tree_glowing_usage = S("The glowing bark fungus doesn't extend into the wood of the trunk, resulting in surprisingly mundane building material when hewn.")
|
||||
--df_primordial_items.doc.leaves_desc =
|
||||
--df_primordial_items.doc.leaves_usage =
|
||||
df_primordial_items.doc.glowing_leaves_desc = S("Some fronds of primordial jungle trees also become host to the phosphorescent fungus that creeps through cracks in the bark.")
|
||||
--df_primordial_items.doc.glowing_leaves_usage =
|
||||
|
||||
df_primordial_items.doc.giant_fern_desc = S("The still air of these ancient caverns have allowed ferns to grow to prodigious sizes, where storms and rain would normally tear their weaker fronds off on the surface of the world.")
|
||||
df_primordial_items.doc.giant_fern_usage = S("When a fern grows to such sizes its stem becomes dense enough to be used as a form of wood.")
|
||||
|
||||
df_primordial_items.doc.giant_hyphae_desc = S("Fungus in its purest form, these gigantic rope-like hyphae creep over the surface of soil and burrow in to feed wherever nutrients are sensed.")
|
||||
df_primordial_items.doc.giant_hyphae_usage = S("Much like a rope, hyphae have fibers inside that can be unraveled and used for a variety of crafts.")
|
||||
df_primordial_items.doc.mycelial_fibers_desc = S("Fibers extracted from gigantic fungal hyphae.")
|
||||
--df_primordial_items.doc.mycelial_fibers_usage =
|
||||
df_primordial_items.doc.mycelial_thread_desc = df_primordial_items.doc.mycelial_fibers_desc
|
||||
--df_primordial_items.doc.mycelial_thread_usage =
|
||||
|
||||
df_primordial_items.doc.giant_mushroom_desc = S("The grandest of the great mushroom species can be found in the deepest primordial caverns. Their broad caps have hanging gills.")
|
||||
df_primordial_items.doc.giant_mushroom_usage = S("Much like the giant mushrooms of higher cavern layers, these can be carved into woody material for use as fuel or for building things. The grain of these primordial mushrooms is knurled.")
|
||||
--df_primordial_items.doc.gills_desc =
|
||||
--df_primordial_items.doc.gills_usage =
|
||||
|
||||
--df_primordial_items.doc.glow_orb_desc =
|
||||
--df_primordial_items.doc.glow_orb_usage =
|
||||
--df_primordial_items.doc.glow_plant_desc =
|
||||
--df_primordial_items.doc.glow_plant_usage =
|
||||
--df_primordial_items.doc.glow_pod_desc =
|
||||
--df_primordial_items.doc.glow_pod_usage =
|
||||
|
||||
-- The giant hanging fungal structures from the ceiling
|
||||
--df_primordial_items.doc.glownode_desc =
|
||||
--df_primordial_items.doc.glownode_usage =
|
||||
--df_primordial_items.doc.glownode_stalk_desc =
|
||||
--df_primordial_items.doc.glownode_stalk_usage =
|
||||
|
||||
df_primordial_items.doc.packed_roots_desc = S("The steady light and unchanging growing conditions of the primordial caverns have led to great mountainous masses of plant material growing in particularly fertile spots, hardly identifiable as individual organisms.")
|
||||
df_primordial_items.doc.packed_roots_usage = S("The gnarled interwoven root-like foundations of this plant material is not useful as building material, but can serve as a fuel source.")
|
||||
df_primordial_items.doc.plant_matter_desc = df_primordial_items.doc.packed_roots_desc
|
||||
df_primordial_items.doc.plant_matter_usage = df_primordial_items.doc.packed_roots_usage
|
||||
|
||||
--df_primordial_items.doc.small_mushroom_desc =
|
||||
--df_primordial_items.doc.small_mushroom_usage =
|
||||
--
|
||||
--df_primordial_items.doc.thorn_desc =
|
||||
--df_primordial_items.doc.thorn_usage =
|
||||
|
||||
df_primordial_items.doc.primordial_fruit_desc = S("This strange fruit from the depths has absorbed healthful energies.")
|
||||
df_primordial_items.doc.primordial_fruit_usage = S("Eating this fruit will improve your vitality.")
|
||||
|
||||
df_primordial_items.doc.glowtato_desc = S("A strangely glowing starchy nodule from a plant that grew deeper than any plant has a right to.")
|
||||
df_primordial_items.doc.glowtato_usage = S("Much energy is contained in this tuber. It tastes surprisingly good, too. You could cook with it but any change in its pure state would only reduce its value.")
|
||||
@@ -0,0 +1,25 @@
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
minetest.register_craftitem("df_primordial_items:primordial_fruit", {
|
||||
description = S("Primordial Fruit"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.primordial_fruit_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.primordial_fruit_usage,
|
||||
inventory_image = "dfcaverns_primordial_fruit.png",
|
||||
groups = {food = 8, eatable=8, plant=1},
|
||||
sound = {eat = {name = "df_farming_gummy_chew", gain = 1.0}},
|
||||
on_use = minetest.item_eat(8),
|
||||
_hunger_ng = {heals = 8},
|
||||
_mcl_saturation = 12,
|
||||
})
|
||||
|
||||
minetest.register_craftitem("df_primordial_items:glowtato", {
|
||||
description = S("Glowtato"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.glowtato_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.glowtato_usage,
|
||||
inventory_image = "dfcaverns_glowtato.png",
|
||||
sound = {eat = {name = "df_farming_chomp_crunch", gain = 1.0}},
|
||||
groups = {food = 8, dfcaverns_cookable = 1, eatable=8, plant=1},
|
||||
on_use = minetest.item_eat(8),
|
||||
_hunger_ng = {satiates = 8},
|
||||
_mcl_saturation = 8,
|
||||
})
|
||||
@@ -0,0 +1,174 @@
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
-----------------------------------------------------------------------------------------------
|
||||
-- Plants
|
||||
|
||||
-- Grass
|
||||
|
||||
minetest.register_node("df_primordial_items:fungal_grass_1", {
|
||||
description = S("Primordial Fungal Grass"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.fungal_grass_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.fungal_grass_usage,
|
||||
tiles = {"dfcaverns_mush_grass_01.png"},
|
||||
inventory_image = "dfcaverns_mush_grass_01.png",
|
||||
wield_image = "dfcaverns_mush_grass_01.png",
|
||||
groups = {snappy = 3, attached_node = 1, flammable = 1, primordial_fungal_plant = 1, light_sensitive_fungus = 11, plant=1, handy=1, swordy=1, hoey=1, destroy_by_lava_flow=1,dig_by_piston=1},
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
buildable_to = true,
|
||||
is_ground_content = false,
|
||||
walkable = false,
|
||||
floodable = true,
|
||||
sounds = df_dependencies.sound_leaves(),
|
||||
use_texture_alpha = "clip",
|
||||
sunlight_propagates = true,
|
||||
_mcl_blast_resistance = 0.2,
|
||||
_mcl_hardness = 0.2,
|
||||
})
|
||||
|
||||
minetest.register_node("df_primordial_items:fungal_grass_2", {
|
||||
description = S("Primordial Fungal Grass"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.fungal_grass_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.fungal_grass_usage,
|
||||
tiles = {"dfcaverns_mush_grass_02.png"},
|
||||
inventory_image = "dfcaverns_mush_grass_02.png",
|
||||
wield_image = "dfcaverns_mush_grass_02.png",
|
||||
groups = {snappy = 3, attached_node = 1, flammable = 1, primordial_fungal_plant = 1, light_sensitive_fungus = 11, plant=1, handy=1, swordy=1, hoey=1, destroy_by_lava_flow=1,dig_by_piston=1},
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
buildable_to = true,
|
||||
is_ground_content = false,
|
||||
walkable = false,
|
||||
floodable = true,
|
||||
place_param2 = 3,
|
||||
sounds = df_dependencies.sound_leaves(),
|
||||
use_texture_alpha = "clip",
|
||||
sunlight_propagates = true,
|
||||
_mcl_blast_resistance = 0.2,
|
||||
_mcl_hardness = 0.2,
|
||||
})
|
||||
|
||||
-- Glowing
|
||||
|
||||
minetest.register_node("df_primordial_items:glow_orb", {
|
||||
description = S("Primordial Fungal Orb"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.glow_orb_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.glow_orb_usage,
|
||||
tiles = {"dfcaverns_mush_orb.png"},
|
||||
inventory_image = "dfcaverns_mush_orb.png",
|
||||
wield_image = "dfcaverns_mush_orb.png",
|
||||
groups = {snappy = 3, attached_node = 1, flammable = 1, primordial_fungal_plant = 1, light_sensitive_fungus = 13, plant=1, handy=1, swordy=1, hoey=1, destroy_by_lava_flow=1,dig_by_piston=1},
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
buildable_to = true,
|
||||
is_ground_content = false,
|
||||
walkable = false,
|
||||
floodable = true,
|
||||
light_source = 9,
|
||||
sounds = df_dependencies.sound_leaves(),
|
||||
use_texture_alpha = "clip",
|
||||
sunlight_propagates = true,
|
||||
_mcl_blast_resistance = 0.2,
|
||||
_mcl_hardness = 0.2,
|
||||
})
|
||||
|
||||
minetest.register_node("df_primordial_items:glow_orb_stalks", {
|
||||
description = S("Primordial Fungal Orb"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.glow_orb_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.glow_orb_usage,
|
||||
tiles = {"dfcaverns_mush_stalks.png"},
|
||||
inventory_image = "dfcaverns_mush_stalks.png",
|
||||
wield_image = "dfcaverns_mush_stalks.png",
|
||||
groups = {snappy = 3, attached_node = 1, flammable = 1, primordial_fungal_plant = 1, light_sensitive_fungus = 13, plant=1, handy=1, swordy=1, hoey=1, destroy_by_lava_flow=1,dig_by_piston=1},
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
buildable_to = true,
|
||||
is_ground_content = false,
|
||||
walkable = false,
|
||||
floodable = true,
|
||||
light_source = 6,
|
||||
sounds = df_dependencies.sound_leaves(),
|
||||
use_texture_alpha = "clip",
|
||||
sunlight_propagates = true,
|
||||
_mcl_blast_resistance = 0.2,
|
||||
_mcl_hardness = 0.2,
|
||||
})
|
||||
|
||||
minetest.register_node("df_primordial_items:glow_pods", {
|
||||
description = S("Primordial Fungal Pod"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.glow_pod_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.glow_pod_usage,
|
||||
tiles = {"dfcaverns_mush_pods.png"},
|
||||
inventory_image = "dfcaverns_mush_pods.png",
|
||||
wield_image = "dfcaverns_mush_pods.png",
|
||||
groups = {snappy = 3, attached_node = 1, flammable = 1, primordial_fungal_plant = 1, light_sensitive_fungus = 13, plant=1, handy=1, swordy=1, hoey=1, destroy_by_lava_flow=1,dig_by_piston=1},
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
drop = {
|
||||
max_items = 2,
|
||||
items = {
|
||||
{
|
||||
rarity = 3,
|
||||
items = {"df_primordial_items:primordial_fruit"},
|
||||
},
|
||||
{
|
||||
rarity = 3,
|
||||
items = {"df_primordial_items:primordial_fruit"},
|
||||
},
|
||||
},
|
||||
},
|
||||
buildable_to = true,
|
||||
is_ground_content = false,
|
||||
walkable = false,
|
||||
floodable = true,
|
||||
light_source = 6,
|
||||
sounds = df_dependencies.sound_leaves(),
|
||||
use_texture_alpha = "clip",
|
||||
sunlight_propagates = true,
|
||||
_mcl_blast_resistance = 0.2,
|
||||
_mcl_hardness = 0.2,
|
||||
})
|
||||
|
||||
------------------------------------------------------------------------------------
|
||||
-- Dirt
|
||||
|
||||
minetest.register_node("df_primordial_items:dirt_with_mycelium", {
|
||||
description = S("Dirt with Primordial Mycelium"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.dirt_with_mycelium_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.dirt_with_mycelium_usage,
|
||||
tiles = {"dfcaverns_mush_soil.png"},
|
||||
groups = {crumbly = 3, soil = 1, light_sensitive_fungus = 13, handy=1,shovely=1, dirt=2, building_block=1, opaque=1},
|
||||
_dfcaverns_dead_node = df_dependencies.node_name_dirt,
|
||||
is_ground_content = false,
|
||||
paramtype = "light",
|
||||
drop = df_dependencies.node_name_dirt,
|
||||
sounds = df_dependencies.sound_dirt(),
|
||||
light_source = 3,
|
||||
_mcl_blast_resistance = 0.5,
|
||||
_mcl_hardness = 0.6,
|
||||
})
|
||||
|
||||
minetest.register_abm{
|
||||
label = "df_primordial_items:dirt_with_mycelium_spread",
|
||||
nodenames = {df_dependencies.node_name_dirt},
|
||||
neighbors = {"df_primordial_items:dirt_with_mycelium"},
|
||||
interval = 60,
|
||||
chance = 50,
|
||||
catch_up = true,
|
||||
action = function(pos)
|
||||
minetest.swap_node(pos, {name="df_primordial_items:dirt_with_mycelium"})
|
||||
end,
|
||||
}
|
||||
|
||||
if minetest.get_modpath("footprints") then
|
||||
local HARDPACK_PROBABILITY = minetest.settings:get("footprints_hardpack_probability") or 0.9 -- Chance walked dirt/grass is worn and compacted to footprints:trail.
|
||||
local HARDPACK_COUNT = minetest.settings:get("footprints_hardpack_count") or 10 -- Number of times the above chance needs to be passed for soil to compact.
|
||||
|
||||
footprints.register_trample_node("df_primordial_items:dirt_with_mycelium", {
|
||||
trampled_node_def_override = {description = S("Dirt with Primordial Mycelium and Footprint"),},
|
||||
footprint_opacity = 196,
|
||||
hard_pack_node_name = "footprints:trail",
|
||||
hard_pack_probability = HARDPACK_PROBABILITY,
|
||||
hard_pack_count = HARDPACK_COUNT,
|
||||
})
|
||||
end
|
||||
@@ -0,0 +1,351 @@
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
------------------------------------------------------------------------------------
|
||||
-- Nodes
|
||||
|
||||
minetest.register_node("df_primordial_items:giant_fern_tree", {
|
||||
description = S("Giant Fern Stem"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.giant_fern_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.giant_fern_usage,
|
||||
tiles = {"dfcaverns_jungle_fern_stem.png","dfcaverns_jungle_fern_stem.png","dfcaverns_jungle_fern_bark.png",},
|
||||
groups = {tree=1, choppy=2, oddly_breakable_by_hand=1, flammable= 2, fern_stem = 1, handy=1,axey=1, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
|
||||
is_ground_content = false,
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
sounds = df_dependencies.sound_wood(),
|
||||
sunlight_propagates = true,
|
||||
on_place = minetest.rotate_node,
|
||||
_mcl_blast_resistance = 2,
|
||||
_mcl_hardness = 1,
|
||||
})
|
||||
|
||||
minetest.register_node("df_primordial_items:giant_fern_tree_slant_bottom", {
|
||||
description = S("Giant Fern Stem"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.giant_fern_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.giant_fern_usage,
|
||||
tiles = {
|
||||
"dfcaverns_jungle_fern_stem.png",
|
||||
"dfcaverns_jungle_fern_bark.png",
|
||||
"dfcaverns_jungle_fern_stem.png",
|
||||
"dfcaverns_jungle_fern_bark.png",
|
||||
"dfcaverns_jungle_fern_bark.png",
|
||||
"dfcaverns_jungle_fern_bark.png",
|
||||
},
|
||||
paramtype2 = "facedir",
|
||||
drawtype = "mesh",
|
||||
mesh = "dfcaverns_fern_slant.obj",
|
||||
paramtype = "light",
|
||||
drop = "df_primordial_items:giant_fern_tree",
|
||||
groups = {choppy = 2, tree = 1, oddly_breakable_by_hand=1, flammable = 2, fern_stem = 1, handy=1,axey=1, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
|
||||
sounds = df_dependencies.sound_wood(),
|
||||
is_ground_content = false,
|
||||
on_place = minetest.rotate_node,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.5, -0.5, -0.625, 0.5, 0.0, 0.375},
|
||||
{-0.5, 0.0, -0.875, 0.5, 0.5, 0.125},
|
||||
},
|
||||
},
|
||||
collision_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.5, -0.5, -0.625, 0.5, 0.0, 0.375},
|
||||
{-0.5, 0.0, -0.875, 0.5, 0.5, 0.125},
|
||||
},
|
||||
},
|
||||
_mcl_blast_resistance = 2,
|
||||
_mcl_hardness = 1,
|
||||
})
|
||||
|
||||
minetest.register_node("df_primordial_items:giant_fern_tree_slant_top", {
|
||||
description = S("Giant Fern Stem"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.giant_fern_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.giant_fern_usage,
|
||||
tiles = {
|
||||
"dfcaverns_jungle_fern_stem.png",
|
||||
"dfcaverns_jungle_fern_bark.png",
|
||||
"dfcaverns_jungle_fern_stem.png",
|
||||
"dfcaverns_jungle_fern_bark.png",
|
||||
"dfcaverns_jungle_fern_bark.png",
|
||||
"dfcaverns_jungle_fern_bark.png",
|
||||
},
|
||||
paramtype2 = "facedir",
|
||||
drawtype = "mesh",
|
||||
mesh = "dfcaverns_fern_slant_2.obj",
|
||||
paramtype = "light",
|
||||
drop = "df_primordial_items:giant_fern_tree",
|
||||
groups = {choppy = 2, tree = 1, oddly_breakable_by_hand=1, flammable = 2, fern_stem = 1, handy=1,axey=1, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
|
||||
sounds = df_dependencies.sound_wood(),
|
||||
is_ground_content = false,
|
||||
on_place = minetest.rotate_node,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.5, -0.5, -0.125, 0.5, 0.0, 0.875},
|
||||
{-0.5, 0.0, -0.375, 0.5, 0.5, 0.625},
|
||||
},
|
||||
},
|
||||
collision_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.5, -0.5, -0.125, 0.5, 0.0, 0.875},
|
||||
{-0.5, 0.0, -0.375, 0.5, 0.5, 0.625},
|
||||
},
|
||||
},
|
||||
_mcl_blast_resistance = 2,
|
||||
_mcl_hardness = 1,
|
||||
})
|
||||
|
||||
minetest.register_node("df_primordial_items:giant_fern_tree_slant_full", {
|
||||
description = S("Giant Fern Stem"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.giant_fern_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.giant_fern_usage,
|
||||
tiles = {
|
||||
"dfcaverns_jungle_fern_stem.png",
|
||||
"dfcaverns_jungle_fern_bark.png",
|
||||
"dfcaverns_jungle_fern_bark.png",
|
||||
"dfcaverns_jungle_fern_bark.png",
|
||||
"dfcaverns_jungle_fern_bark.png",
|
||||
"dfcaverns_jungle_fern_bark.png",
|
||||
},
|
||||
paramtype2 = "facedir",
|
||||
drawtype = "mesh",
|
||||
mesh = "dfcaverns_fern_slant_full.obj",
|
||||
paramtype = "light",
|
||||
drop = "df_primordial_items:giant_fern_tree",
|
||||
groups = {choppy = 2, tree = 1, oddly_breakable_by_hand=1, flammable = 2, fern_stem = 1, handy=1,axey=1, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
|
||||
sounds = df_dependencies.sound_wood(),
|
||||
is_ground_content = false,
|
||||
on_place = minetest.rotate_node,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.5, -0.5, -0.75, 0.5, 0, 0.25},
|
||||
{-0.5, 0, -1.25, 0.5, 0.5, -0.25},
|
||||
},
|
||||
},
|
||||
collision_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.5, -0.5, -0.75, 0.5, 0, 0.25},
|
||||
{-0.5, 0, -1.25, 0.5, 0.5, -0.25},
|
||||
},
|
||||
},
|
||||
_mcl_blast_resistance = 2,
|
||||
_mcl_hardness = 1,
|
||||
})
|
||||
|
||||
minetest.register_node("df_primordial_items:fern_wood", {
|
||||
description = S("Fern Wood"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.giant_fern_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.giant_fern_usage,
|
||||
paramtype2 = "facedir",
|
||||
tiles = {df_dependencies.texture_wood .. "^[multiply:#10FF10"},
|
||||
is_ground_content = false,
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, wood = 1, handy=1,axey=1, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=10},
|
||||
sounds = df_dependencies.sound_wood(),
|
||||
_mcl_blast_resistance = 3,
|
||||
_mcl_hardness = 1,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "df_primordial_items:fern_wood 4",
|
||||
recipe = {
|
||||
{"group:fern_stem"},
|
||||
}
|
||||
})
|
||||
|
||||
df_dependencies.register_all_stairs_and_fences("fern_wood", {burntime=7})
|
||||
|
||||
minetest.register_node("df_primordial_items:giant_fern_leaves", {
|
||||
description = S("Giant Fern Leaves"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.giant_fern_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.giant_fern_usage,
|
||||
tiles = {"dfcaverns_jungle_fern_leaves_01.png"},
|
||||
visual_scale = 1.41,
|
||||
inventory_image = "dfcaverns_jungle_fern_leaves_01.png",
|
||||
wield_image = "dfcaverns_jungle_fern_leaves_01.png",
|
||||
groups = {snappy = 3, leafdecay = 2, flammable = 2, leaves = 1, handy=1, hoey=1, shearsy=1, swordy=1, deco_block=1, dig_by_piston=1, fire_encouragement=15, fire_flammability=30, compostability=30},
|
||||
is_ground_content = false,
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
buildable_to = true,
|
||||
walkable = false,
|
||||
waving = 2,
|
||||
sounds = df_dependencies.sound_leaves(),
|
||||
use_texture_alpha = "clip",
|
||||
sunlight_propagates = true,
|
||||
after_place_node = df_dependencies.after_place_leaves,
|
||||
place_param2 = 1, -- Prevent leafdecay for placed nodes
|
||||
drop = {
|
||||
max_items = 1,
|
||||
items = {
|
||||
{
|
||||
-- player will get sapling with 1/10 chance
|
||||
items = {"df_primordial_items:fern_sapling"},
|
||||
rarity = 10,
|
||||
},
|
||||
{
|
||||
items = {"df_primordial_items:giant_fern_leaves"},
|
||||
}
|
||||
}
|
||||
},
|
||||
_mcl_blast_resistance = 0.2,
|
||||
_mcl_hardness = 0.2,
|
||||
})
|
||||
|
||||
df_dependencies.register_leafdecay({
|
||||
trunks = {"df_primordial_items:giant_fern_tree_slant_full", "df_primordial_items:giant_fern_tree_slant_top", "df_primordial_items:giant_fern_tree_slant_bottom", "df_primordial_items:giant_fern_tree"},
|
||||
leaves = {"df_primordial_items:giant_fern_leaves"},
|
||||
radius = 2,
|
||||
})
|
||||
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "df_primordial_items:fern_wood",
|
||||
burntime = 7,
|
||||
})
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "group:fern_stem",
|
||||
burntime = 28,
|
||||
})
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "df_primordial_items:giant_fern_leaves",
|
||||
burntime = 2,
|
||||
})
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "df_primordial_items:fern_sapling",
|
||||
burntime = 2,
|
||||
})
|
||||
------------------------------------------------------------------------------------
|
||||
-- Schematics
|
||||
|
||||
local n1 = { name = "air", prob = 0 }
|
||||
local n2 = { name = "df_primordial_items:giant_fern_leaves" }
|
||||
local n3 = { name = "df_primordial_items:giant_fern_tree_slant_top" }
|
||||
local n4 = { name = "df_primordial_items:giant_fern_tree_slant_full" }
|
||||
local n5 = { name = "df_primordial_items:giant_fern_tree" }
|
||||
local n6 = { name = "df_primordial_items:giant_fern_tree_slant_bottom" }
|
||||
|
||||
|
||||
local fern_4_nodes_tall = {
|
||||
size = {y = 4, x = 3, z = 4},
|
||||
center_pos = {y = 0, x = 1, z = 3},
|
||||
data = {
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n2, n1, n1, n1, n1, n1, n1,
|
||||
n1, n2, n1, n2, n1, n1, n1, n1, n1, n1, n2, n3, n2, n1, n4, n1, n1,
|
||||
n1, n1, n1, n6, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
}
|
||||
}
|
||||
|
||||
local fern_5_nodes_tall = {
|
||||
size = {y = 5, x = 3, z = 4},
|
||||
center_pos = {y = 0, x = 1, z = 3},
|
||||
data = {
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n2, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n2, n1, n2, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n2, n3, n2, n1, n4, n1, n1, n1, n1, n1, n5, n1, n2, n6, n2,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
}
|
||||
}
|
||||
|
||||
local fern_6_nodes_tall = {
|
||||
size = {y = 6, x = 5, z = 4},
|
||||
center_pos = {y = 0, x = 2, z = 3},
|
||||
data = {
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n2, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n2, n1, n2, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n2, n2, n3, n2, n2, n1, n1, n4, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n5, n1, n1, n1, n2, n5, n2, n1, n2, n2,
|
||||
n6, n2, n2, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1,
|
||||
}
|
||||
}
|
||||
|
||||
local fern_9_nodes_tall = {
|
||||
size = {y = 9, x = 5, z = 5},
|
||||
center_pos = {y = 0, x = 2, z = 4},
|
||||
data = {
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n2, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n2, n1, n2, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n2, n2, n3, n2, n2, n1, n1, n4, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n2, n2, n3, n2, n2, n2, n2, n6, n2, n2, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n5, n1, n1, n1, n1,
|
||||
n5, n1, n1, n1, n2, n5, n2, n1, n1, n2, n6, n2, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1,
|
||||
}
|
||||
}
|
||||
|
||||
local ferns = {fern_4_nodes_tall, fern_5_nodes_tall, fern_6_nodes_tall, fern_9_nodes_tall}
|
||||
local rotations = {0, 90, 180, 270}
|
||||
|
||||
df_primordial_items.get_fern_schematic = function()
|
||||
return ferns[math.random(1,4)]
|
||||
end
|
||||
|
||||
minetest.register_node("df_primordial_items:fern_sapling", {
|
||||
description = S("Giant Fern Sapling"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.giant_fern_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.giant_fern_usage,
|
||||
tiles = {"dfcaverns_jungle_fern_03.png"},
|
||||
inventory_image = "dfcaverns_jungle_fern_03.png",
|
||||
wield_image = "dfcaverns_jungle_fern_03.png",
|
||||
groups = {snappy = 3, attached_node = 1, flammable = 1, sapling = 1, light_sensitive_fungus = 13, attached_node=1,dig_by_piston=1,destroy_by_lava_flow=1,deco_block=1, compostability=30,dig_immediate=3},
|
||||
_dfcaverns_dead_node = df_dependencies.node_name_dry_shrub,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16}
|
||||
},
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
buildable_to = true,
|
||||
is_ground_content = false,
|
||||
walkable = false,
|
||||
sounds = df_dependencies.sound_leaves(),
|
||||
use_texture_alpha = "clip",
|
||||
sunlight_propagates = true,
|
||||
_mcl_blast_resistance = 0.2,
|
||||
_mcl_hardness = 0.2,
|
||||
on_construct = function(pos)
|
||||
if df_primordial_items.giant_fern_growth_permitted(pos) then
|
||||
minetest.get_node_timer(pos):start(math.random(
|
||||
df_trees.config.tree_min_growth_delay,
|
||||
df_trees.config.tree_max_growth_delay))
|
||||
end
|
||||
end,
|
||||
on_destruct = function(pos)
|
||||
minetest.get_node_timer(pos):stop()
|
||||
end,
|
||||
on_timer = function(pos, elapsed)
|
||||
if df_farming and df_farming.kill_if_sunlit(pos) then
|
||||
return
|
||||
end
|
||||
|
||||
if minetest.get_node_light(pos) > 6 then
|
||||
df_primordial_items.spawn_giant_fern(pos)
|
||||
else
|
||||
minetest.get_node_timer(pos):start(df_trees.config.tree_min_growth_delay)
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
df_primordial_items.spawn_giant_fern = function(pos)
|
||||
local fern = df_primordial_items.get_fern_schematic()
|
||||
local rotation = rotations[math.random(1,#rotations)]
|
||||
minetest.set_node(pos, {name="air"}) -- clear sapling so fern can replace it
|
||||
mapgen_helper.place_schematic(pos, fern, rotation)
|
||||
end
|
||||
@@ -0,0 +1,441 @@
|
||||
-- This file defines a type of root-like growth that spreads over the surface of the ground in a random web-like pattern
|
||||
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
-- hub_thickness -- the bit in the middle that's seen at the ends and corners of long hypha runs
|
||||
-- connector_thickness
|
||||
local get_node_box = function(hub_thickness, connector_thickness)
|
||||
return {
|
||||
type = "connected",
|
||||
fixed = {-hub_thickness,-hub_thickness,-hub_thickness,hub_thickness,hub_thickness,hub_thickness},
|
||||
connect_top = {-connector_thickness, 0, -connector_thickness, connector_thickness, 0.5, connector_thickness},
|
||||
connect_bottom = {-connector_thickness, -0.5, -connector_thickness, connector_thickness, 0, connector_thickness},
|
||||
connect_back = {-connector_thickness, -connector_thickness, 0, connector_thickness, connector_thickness, 0.5},
|
||||
connect_right = {0, -connector_thickness, -connector_thickness, 0.5, connector_thickness, connector_thickness},
|
||||
connect_front = {-connector_thickness, -connector_thickness, -0.5, connector_thickness, connector_thickness, 0},
|
||||
connect_left = {-0.5, -connector_thickness, -connector_thickness, 0, connector_thickness, connector_thickness},
|
||||
disconnected = {-connector_thickness, -connector_thickness, -connector_thickness, connector_thickness, connector_thickness, connector_thickness},
|
||||
}
|
||||
end
|
||||
|
||||
minetest.register_node("df_primordial_items:giant_hypha_root", {
|
||||
description = S("Rooted Giant Hypha"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.giant_hyphae_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.giant_hyphae_usage,
|
||||
tiles = {
|
||||
{name="dfcaverns_mush_giant_hypha.png"},
|
||||
},
|
||||
connects_to = {"group:soil", "group:hypha"},
|
||||
connect_sides = { "top", "bottom", "front", "left", "back", "right" },
|
||||
drawtype = "nodebox",
|
||||
node_box = get_node_box(0.1875, 0.25),
|
||||
collision_box = get_node_box(0.125, 0.1875),
|
||||
paramtype = "light",
|
||||
light_source = 2,
|
||||
is_ground_content = false,
|
||||
climbable = true,
|
||||
groups = {oddly_breakable_by_hand = 1, choppy = 2, hypha = 1, handy=1,axey=1, tree=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=1, fire_flammability=1},
|
||||
sounds = df_trees.node_sound_tree_soft_fungus_defaults(),
|
||||
drop = {
|
||||
max_items = 1,
|
||||
items = {
|
||||
{
|
||||
items = {"df_primordial_items:mycelial_fibers","df_primordial_items:giant_hypha_apical_meristem"},
|
||||
rarity = 100,
|
||||
},
|
||||
{
|
||||
items = {"df_primordial_items:mycelial_fibers"},
|
||||
},
|
||||
},
|
||||
},
|
||||
_mcl_blast_resistance = 2,
|
||||
_mcl_hardness = 2,
|
||||
})
|
||||
minetest.register_node("df_primordial_items:giant_hypha", {
|
||||
description = S("Giant Hypha"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.giant_hyphae_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.giant_hyphae_usage,
|
||||
tiles = {
|
||||
{name="dfcaverns_mush_giant_hypha.png"},
|
||||
},
|
||||
connects_to = {"group:hypha"},
|
||||
connect_sides = { "top", "bottom", "front", "left", "back", "right" },
|
||||
drawtype = "nodebox",
|
||||
node_box = get_node_box(0.1875, 0.25),
|
||||
collision_box = get_node_box(0.125, 0.1875),
|
||||
paramtype = "light",
|
||||
light_source = 2,
|
||||
is_ground_content = false,
|
||||
climbable = true,
|
||||
groups = {oddly_breakable_by_hand = 1, choppy = 2, hypha = 1, handy=1,axey=1, tree=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=1, fire_flammability=1},
|
||||
sounds = df_trees.node_sound_tree_soft_fungus_defaults(),
|
||||
drop = {
|
||||
max_items = 1,
|
||||
items = {
|
||||
{
|
||||
items = {"df_primordial_items:mycelial_fibers","df_primordial_items:giant_hypha_apical_meristem"},
|
||||
rarity = 100,
|
||||
},
|
||||
{
|
||||
items = {"df_primordial_items:mycelial_fibers"},
|
||||
},
|
||||
},
|
||||
},
|
||||
_mcl_blast_resistance = 2,
|
||||
_mcl_hardness = 2,
|
||||
})
|
||||
|
||||
minetest.register_craftitem("df_primordial_items:mycelial_fibers", {
|
||||
description = S("Giant Mycelial Fibers"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.mycelial_fibers_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.mycelial_fibers_usage,
|
||||
groups = {wool = 1},
|
||||
inventory_image = "dfcaverns_mush_mycelial_fibers.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("df_primordial_items:mycelial_thread", {
|
||||
description = S("Mycelial thread"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.mycelial_thread_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.mycelial_thread_usage,
|
||||
inventory_image = "dfcaverns_pig_tail_thread.png",
|
||||
groups = {flammable = 1, thread = 1},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "df_primordial_items:mycelial_thread 4",
|
||||
type = "shapeless",
|
||||
recipe = { "df_primordial_items:mycelial_fibers"},
|
||||
})
|
||||
|
||||
-- Check each of the six cardinal directions to see if it's buildable-to,
|
||||
-- if it has an adjacent "soil" node (or if it's going out over the corner of an adjacent soil node),
|
||||
-- and does *not* have an adjacent hypha already.
|
||||
-- By growing with these conditions hyphae will hug the ground and will not immediately loop back on themselves
|
||||
-- (though they can run into other pre-existing growths, forming larger loops - which is fine, large loops are nice)
|
||||
|
||||
local ystride = 3
|
||||
local zstride = 9
|
||||
local get_item_group = minetest.get_item_group
|
||||
local get_node = minetest.get_node
|
||||
local registered_nodes = minetest.registered_nodes
|
||||
local math_random = math.random
|
||||
|
||||
local find_mycelium_growth_targets = function(pos)
|
||||
local nodes = {}
|
||||
local pos_x = pos.x
|
||||
local pos_y = pos.y
|
||||
local pos_z = pos.z
|
||||
|
||||
for x = -1, 1 do
|
||||
for y = -1, 1 do
|
||||
for z = -1, 1 do
|
||||
if not (x == y and y == z) then -- we don't care about the diagonals or the center node
|
||||
local node = get_node({x=pos_x+x, y=pos_y+y, z=pos_z+z})
|
||||
local node_name = node.name
|
||||
if node_name == "ignore" then
|
||||
-- Pause growth! We're at the edge of the known world.
|
||||
return nil
|
||||
end
|
||||
if get_item_group(node_name, "soil") > 0 or
|
||||
get_item_group(node_name, "stone") > 0 and math_random() < 0.5 then -- let hyphae explore out over stone
|
||||
nodes[x + y*ystride + z*zstride] = "soil"
|
||||
elseif get_item_group(node_name, "hypha") > 0 then
|
||||
nodes[x + y*ystride + z*zstride] = "hypha"
|
||||
elseif registered_nodes[node_name] and registered_nodes[node_name].buildable_to then
|
||||
nodes[x + y*ystride + z*zstride] = "buildable"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--TODO there's probably some clever way to turn this into a subroutine, but I'm tired right now and
|
||||
--copy and pasting is easy and nobody's going to decide whether to hire or fire me based on this
|
||||
--particular snippet of code so what the hell. I'll fix it later when that clever way comes to me.
|
||||
local valid_targets = {}
|
||||
if nodes[-1] == "buildable" and
|
||||
-- test for soil to directly support new growth
|
||||
(nodes[-1 -ystride] == "soil" or
|
||||
nodes[-1 +ystride] == "soil" or
|
||||
nodes[-1 -zstride] == "soil" or
|
||||
nodes[-1 +zstride] == "soil" or
|
||||
-- test for soil "around the corner" to allow for growth over an edge
|
||||
nodes[-ystride] == "soil" or
|
||||
nodes[ystride] == "soil" or
|
||||
nodes[-zstride] == "soil" or
|
||||
nodes[zstride] == "soil")
|
||||
and not -- no adjacent hypha
|
||||
(nodes[-1 -ystride] == "hypha" or
|
||||
nodes[-1 +ystride] == "hypha" or
|
||||
nodes[-1 -zstride] == "hypha" or
|
||||
nodes[-1 +zstride] == "hypha")
|
||||
then
|
||||
table.insert(valid_targets, {x=pos_x-1, y=pos_y, z=pos_z})
|
||||
end
|
||||
if nodes[1] == "buildable" and
|
||||
-- test for soil to directly support new growth
|
||||
(nodes[1 -ystride] == "soil" or
|
||||
nodes[1 +ystride] == "soil" or
|
||||
nodes[1 -zstride] == "soil" or
|
||||
nodes[1 +zstride] == "soil" or
|
||||
-- test for soil "around the corner" to allow for growth over an edge
|
||||
nodes[-ystride] == "soil" or
|
||||
nodes[ystride] == "soil" or
|
||||
nodes[-zstride] == "soil" or
|
||||
nodes[zstride] == "soil")
|
||||
and not -- no adjacent hypha
|
||||
(nodes[1 -ystride] == "hypha" or
|
||||
nodes[1 +ystride] == "hypha" or
|
||||
nodes[1 -zstride] == "hypha" or
|
||||
nodes[1 +zstride] == "hypha")
|
||||
then
|
||||
table.insert(valid_targets, {x=pos_x+1, y=pos_y, z=pos_z})
|
||||
end
|
||||
if nodes[-ystride] == "buildable" and
|
||||
-- test for soil to directly support new growth
|
||||
(nodes[-1 -ystride] == "soil" or
|
||||
nodes[1 -ystride] == "soil" or
|
||||
nodes[-ystride -zstride] == "soil" or
|
||||
nodes[-ystride +zstride] == "soil" or
|
||||
-- test for soil "around the corner" to allow for growth over an edge
|
||||
nodes[-1] == "soil" or
|
||||
nodes[1] == "soil" or
|
||||
nodes[-zstride] == "soil" or
|
||||
nodes[zstride] == "soil")
|
||||
and not -- no adjacent hypha
|
||||
(nodes[-1 -ystride] == "hypha" or
|
||||
nodes[1 -ystride] == "hypha" or
|
||||
nodes[-ystride -zstride] == "hypha" or
|
||||
nodes[-ystride +zstride] == "hypha")
|
||||
then
|
||||
table.insert(valid_targets, {x=pos_x, y=pos_y-1, z=pos_z})
|
||||
end
|
||||
if nodes[ystride] == "buildable" and
|
||||
-- test for soil to directly support new growth
|
||||
(nodes[-1 +ystride] == "soil" or
|
||||
nodes[1 +ystride] == "soil" or
|
||||
nodes[ystride -zstride] == "soil" or
|
||||
nodes[ystride +zstride] == "soil" or
|
||||
-- test for soil "around the corner" to allow for growth over an edge
|
||||
nodes[-1] == "soil" or
|
||||
nodes[1] == "soil" or
|
||||
nodes[-zstride] == "soil" or
|
||||
nodes[zstride] == "soil")
|
||||
and not -- no adjacent hypha
|
||||
(nodes[-1] == "hypha" or
|
||||
nodes[1 + ystride] == "hypha" or
|
||||
nodes[ystride -zstride] == "hypha" or
|
||||
nodes[ystride +zstride] == "hypha")
|
||||
then
|
||||
table.insert(valid_targets, {x=pos_x, y=pos_y+1, z=pos_z})
|
||||
end
|
||||
if nodes[-zstride] == "buildable" and
|
||||
-- test for soil to directly support new growth
|
||||
(nodes[-1 -zstride] == "soil" or
|
||||
nodes[1 -zstride] == "soil" or
|
||||
nodes[-ystride -zstride] == "soil" or
|
||||
nodes[ystride -zstride] == "soil" or
|
||||
-- test for soil "around the corner" to allow for growth over an edge
|
||||
nodes[-1] == "soil" or
|
||||
nodes[1] == "soil" or
|
||||
nodes[-ystride] == "soil" or
|
||||
nodes[ystride] == "soil")
|
||||
and not -- no adjacent hypha
|
||||
(nodes[-1 -zstride] == "hypha" or
|
||||
nodes[1 -zstride] == "hypha" or
|
||||
nodes[-ystride -zstride] == "hypha" or
|
||||
nodes[ystride -zstride] == "hypha")
|
||||
then
|
||||
table.insert(valid_targets, {x=pos_x, y=pos_y, z=pos_z-1})
|
||||
end
|
||||
if nodes[zstride] == "buildable" and
|
||||
-- test for soil to directly support new growth
|
||||
(nodes[-1 +zstride] == "soil" or
|
||||
nodes[1 +zstride] == "soil" or
|
||||
nodes[-ystride +zstride] == "soil" or
|
||||
nodes[ystride +zstride] == "soil" or
|
||||
-- test for soil "around the corner" to allow for growth over an edge
|
||||
nodes[-1] == "soil" or
|
||||
nodes[1] == "soil" or
|
||||
nodes[-ystride] == "soil" or
|
||||
nodes[ystride] == "soil")
|
||||
and not -- no adjacent hypha
|
||||
(nodes[-1 +zstride] == "hypha" or
|
||||
nodes[1 +zstride] == "hypha" or
|
||||
nodes[-ystride + zstride] == "hypha" or
|
||||
nodes[ystride +zstride] == "hypha")
|
||||
then
|
||||
table.insert(valid_targets, {x=pos_x, y=pos_y, z=pos_z+1})
|
||||
end
|
||||
|
||||
return valid_targets
|
||||
end
|
||||
|
||||
local grow_mycelium = function(pos, meristem_name)
|
||||
local new_meristems = {}
|
||||
-- Can we grow? If so, pick a random direction and add a new meristem there
|
||||
local targets = find_mycelium_growth_targets(pos)
|
||||
|
||||
if targets == nil then
|
||||
return nil -- We hit the edge of the known world, pause!
|
||||
end
|
||||
|
||||
local target_count = #targets
|
||||
if target_count > 0 then
|
||||
local target = targets[math.random(1,target_count)]
|
||||
minetest.set_node(target, {name=meristem_name})
|
||||
table.insert(new_meristems, target)
|
||||
else
|
||||
--nowhere to grow, turn into a rooted hypha and we're done
|
||||
minetest.set_node(pos, {name="df_primordial_items:giant_hypha_root"})
|
||||
return new_meristems
|
||||
end
|
||||
|
||||
if math.random() < 0.06 then -- Note: hypha growth pattern is very sensitive to this branching factor. Higher than about 0.06 will blanket the landscape with fungus.
|
||||
-- Split - try again from here next time
|
||||
table.insert(new_meristems, pos)
|
||||
-- Otherwise, just turn into a hypha and we're done
|
||||
elseif math.random() < 0.333 then
|
||||
minetest.set_node(pos, {name="df_primordial_items:giant_hypha_root"})
|
||||
else
|
||||
minetest.set_node(pos, {name="df_primordial_items:giant_hypha"})
|
||||
end
|
||||
return new_meristems
|
||||
end
|
||||
|
||||
local min_growth_delay = tonumber(minetest.settings:get("dfcaverns_mycelium_min_growth_delay")) or 240
|
||||
local max_growth_delay = tonumber(minetest.settings:get("dfcaverns_mycelium_max_growth_delay")) or 400
|
||||
local avg_growth_delay = (min_growth_delay + max_growth_delay) / 2
|
||||
|
||||
minetest.register_node("df_primordial_items:giant_hypha_apical_meristem", {
|
||||
description = S("Giant Hypha Apical Meristem"),
|
||||
tiles = {
|
||||
{name="dfcaverns_mush_giant_hypha.png^[brighten"},
|
||||
},
|
||||
connects_to = {"group:hypha"},
|
||||
connect_sides = { "top", "bottom", "front", "left", "back", "right" },
|
||||
drawtype = "nodebox",
|
||||
light_source = 6,
|
||||
node_box = get_node_box(0.25, 0.375),
|
||||
paramtype = "light",
|
||||
|
||||
is_ground_content = false,
|
||||
groups = {oddly_breakable_by_hand = 1, choppy = 2, hypha = 1, light_sensitive_fungus = 13, handy=1,axey=1, tree=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=1, fire_flammability=1},
|
||||
_dfcaverns_dead_node = "df_primordial_items:giant_hypha_root",
|
||||
sounds = df_trees.node_sound_tree_soft_fungus_defaults(),
|
||||
_mcl_blast_resistance = 2,
|
||||
_mcl_hardness = 2,
|
||||
on_construct = function(pos)
|
||||
if df_primordial_items.giant_mycelium_growth_permitted(pos) then
|
||||
minetest.get_node_timer(pos):start(math.random(min_growth_delay, max_growth_delay))
|
||||
end
|
||||
end,
|
||||
on_destruct = function(pos)
|
||||
minetest.get_node_timer(pos):stop()
|
||||
end,
|
||||
on_timer = function(pos, elapsed)
|
||||
if df_farming and df_farming.kill_if_sunlit(pos) then
|
||||
return
|
||||
end
|
||||
|
||||
if elapsed > max_growth_delay then
|
||||
-- We've been unloaded for a while, need to do multiple growth iterations.
|
||||
local iterations = math.floor(elapsed / avg_growth_delay) -- the number of iterations we've missed
|
||||
local stack = {pos} -- initialize with the current location
|
||||
for i = 1, iterations do
|
||||
local new_stack = {} -- populate this with new node output.
|
||||
for _, stackpos in ipairs(stack) do -- for each currently growing location
|
||||
local ret = grow_mycelium(stackpos, "df_primordial_items:giant_hypha_apical_meristem")
|
||||
if ret == nil then
|
||||
-- We hit the edge of the known world, stop and retry later
|
||||
minetest.get_node_timer(stackpos):start(math.random(min_growth_delay,max_growth_delay))
|
||||
else
|
||||
for _, retpos in ipairs(ret) do
|
||||
-- put the new locations into new_stack
|
||||
table.insert(new_stack, retpos)
|
||||
end
|
||||
end
|
||||
end
|
||||
stack = new_stack -- replace the old stack with the new
|
||||
end
|
||||
for _, donepos in ipairs(stack) do
|
||||
-- After all the iterations are done, if there's any leftover growing positions set a timer for each of them
|
||||
minetest.get_node_timer(donepos):start(math.random(min_growth_delay,max_growth_delay))
|
||||
end
|
||||
else
|
||||
-- just do one iteration.
|
||||
local new_meristems = grow_mycelium(pos, "df_primordial_items:giant_hypha_apical_meristem")
|
||||
if new_meristems == nil then
|
||||
-- We hit the end of the known world, try again later. Unlikely in this case, but theoretically possible I guess.
|
||||
minetest.get_node_timer(pos):start(math.random(min_growth_delay,max_growth_delay))
|
||||
else
|
||||
for _, newpos in ipairs(new_meristems) do
|
||||
minetest.get_node_timer(newpos):start(math.random(min_growth_delay,max_growth_delay))
|
||||
end
|
||||
end
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
-- this version grows instantly, it is meant for mapgen usage.
|
||||
|
||||
local grow_mycelium_immediately = function(pos)
|
||||
local stack = {pos}
|
||||
while #stack > 0 do
|
||||
local pos = table.remove(stack)
|
||||
if not (df_farming and df_farming.kill_if_sunlit(pos)) then
|
||||
local new_poses = grow_mycelium(pos, "df_primordial_items:giant_hypha_apical_mapgen")
|
||||
if new_poses then
|
||||
for _, new_pos in ipairs(new_poses) do
|
||||
table.insert(stack, new_pos)
|
||||
end
|
||||
else
|
||||
-- if we hit the end of the world, just stop. There'll be a mapgen meristem left here, re-trigger it.
|
||||
minetest.get_node_timer(pos):start(math.random(10,60))
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
minetest.register_node("df_primordial_items:giant_hypha_apical_mapgen", {
|
||||
description = S("Giant Hypha Apical Meristem"),
|
||||
tiles = {
|
||||
{name="dfcaverns_mush_giant_hypha.png^[brighten"},
|
||||
},
|
||||
connects_to = {"group:hypha"},
|
||||
connect_sides = { "top", "bottom", "front", "left", "back", "right" },
|
||||
drawtype = "nodebox",
|
||||
_dfcaverns_dead_node = "df_primordial_items:giant_hypha_root",
|
||||
light_source = 6,
|
||||
node_box = get_node_box(0.25, 0.375),
|
||||
paramtype = "light",
|
||||
|
||||
is_ground_content = false,
|
||||
groups = {oddly_breakable_by_hand = 1, choppy = 2, hypha = 1, not_in_creative_inventory = 1, light_sensitive_fungus = 13, handy=1,axey=1, tree=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=1, fire_flammability=1},
|
||||
_mcl_blast_resistance = 2,
|
||||
_mcl_hardness = 2,
|
||||
sounds = df_trees.node_sound_tree_soft_fungus_defaults(),
|
||||
on_timer = function(pos, elapsed)
|
||||
grow_mycelium_immediately(pos)
|
||||
end,
|
||||
on_construct = function(pos)
|
||||
minetest.get_node_timer(pos):start(1)
|
||||
end,
|
||||
on_destruct = function(pos)
|
||||
minetest.get_node_timer(pos):stop()
|
||||
end,
|
||||
})
|
||||
|
||||
-- Just in case mapgen fails to trigger the timer on a mapgen mycelium this LBM will clean up.
|
||||
minetest.register_lbm({
|
||||
label = "ensure mapgen mycelium has a timer running",
|
||||
name = "df_primordial_items:ensure_mapgen_mycelium_timer",
|
||||
nodenames = {"df_primordial_items:giant_hypha_apical_mapgen"},
|
||||
run_at_every_load = true,
|
||||
action = function(pos, node)
|
||||
local timer = minetest.get_node_timer(pos)
|
||||
if not timer:is_started() then
|
||||
timer:start(math.random(1,10))
|
||||
end
|
||||
end,
|
||||
})
|
||||
@@ -0,0 +1,17 @@
|
||||
df_primordial_items = {}
|
||||
df_primordial_items.doc = {}
|
||||
|
||||
local modname = minetest.get_current_modname()
|
||||
local modpath = minetest.get_modpath(modname)
|
||||
|
||||
dofile(modpath.."/doc.lua")
|
||||
dofile(modpath.."/jungle_nodes.lua")
|
||||
dofile(modpath.."/jungle_tree.lua")
|
||||
dofile(modpath.."/jungle_mushroom.lua")
|
||||
dofile(modpath.."/giant_fern.lua")
|
||||
dofile(modpath.."/fungal_nodes.lua")
|
||||
dofile(modpath.."/ceiling_fungus.lua")
|
||||
dofile(modpath.."/primordial_mushroom.lua")
|
||||
dofile(modpath.."/giant_mycelium.lua")
|
||||
dofile(modpath.."/edibles.lua")
|
||||
dofile(modpath.."/sapling_growth_conditions.lua")
|
||||
@@ -0,0 +1,183 @@
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
-- Big jungle mushroom
|
||||
|
||||
minetest.register_node("df_primordial_items:jungle_mushroom_trunk", {
|
||||
description = S("Primordial Jungle Mushroom Trunk"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.big_mushroom_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.big_mushroom_usage,
|
||||
tiles = {"dfcaverns_jungle_mushroom_stem.png", "dfcaverns_jungle_mushroom_stem.png", "dfcaverns_jungle_mushroom_stem_02.png"},
|
||||
paramtype2 = "facedir",
|
||||
is_ground_content = false,
|
||||
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2, handy=1,axey=1, tree=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
|
||||
sounds = df_trees.node_sound_tree_soft_fungus_defaults(),
|
||||
on_place = minetest.rotate_node,
|
||||
_mcl_blast_resistance = 2,
|
||||
_mcl_hardness = 2,
|
||||
})
|
||||
|
||||
minetest.register_node("df_primordial_items:jungle_mushroom_cap_1", {
|
||||
description = S("Pale Jungle Mushroom Cap"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.big_mushroom_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.big_mushroom_usage,
|
||||
tiles = {"dfcaverns_jungle_mushroom_top_02.png"},
|
||||
paramtype2 = "facedir",
|
||||
is_ground_content = false,
|
||||
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2, primordial_mushroom_cap = 1, handy=1,axey=1, tree=1, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5, compostability=30},
|
||||
sounds = df_trees.node_sound_tree_soft_fungus_defaults(),
|
||||
on_place = minetest.rotate_node,
|
||||
drop = {
|
||||
max_items = 1,
|
||||
items = {
|
||||
{
|
||||
items = {"df_primordial_items:jungle_mushroom_sapling"},
|
||||
rarity = 10,
|
||||
},
|
||||
{
|
||||
items = {"df_primordial_items:jungle_mushroom_cap_1"},
|
||||
}
|
||||
}
|
||||
},
|
||||
_mcl_blast_resistance = 2,
|
||||
_mcl_hardness = 1,
|
||||
})
|
||||
|
||||
minetest.register_node("df_primordial_items:jungle_mushroom_cap_2", {
|
||||
description = S("Dark Jungle Mushroom Cap"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.big_mushroom_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.big_mushroom_usage,
|
||||
tiles = {"dfcaverns_jungle_mushroom_top_01.png"},
|
||||
paramtype2 = "facedir",
|
||||
is_ground_content = false,
|
||||
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2, primordial_mushroom_cap = 1, handy=1,axey=1, tree=1, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5, compostability=30},
|
||||
sounds = df_trees.node_sound_tree_soft_fungus_defaults(),
|
||||
on_place = minetest.rotate_node,
|
||||
drop = {
|
||||
max_items = 1,
|
||||
items = {
|
||||
{
|
||||
items = {"df_primordial_items:jungle_mushroom_sapling"},
|
||||
rarity = 10,
|
||||
},
|
||||
{
|
||||
items = {"df_primordial_items:jungle_mushroom_cap_2"},
|
||||
}
|
||||
}
|
||||
},
|
||||
_mcl_blast_resistance = 2,
|
||||
_mcl_hardness = 1,
|
||||
})
|
||||
|
||||
minetest.register_craftitem("df_primordial_items:diced_mushroom", {
|
||||
description = S("Diced Mushroom"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.big_mushroom_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.big_mushroom_usage,
|
||||
inventory_image = "dfcaverns_mush_diced_giant_mushroom.png",
|
||||
groups = {food = 1, dfcaverns_cookable = 1, eatable=1, plant=1},
|
||||
sound = {eat = {name = "df_farming_gummy_chew", gain = 1.0}},
|
||||
on_use = minetest.item_eat(1),
|
||||
_hunger_ng = {satiates = 1},
|
||||
_mcl_saturation = 0.5,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "df_primordial_items:diced_mushroom 4",
|
||||
type = "shapeless",
|
||||
recipe = { "group:primordial_mushroom_cap"},
|
||||
})
|
||||
|
||||
-- Note: no wood-making recipe for the trunk, it's deliberately pretty useless since the cap is edible
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "df_primordial_items:jungle_mushroom_trunk",
|
||||
burntime = 15,
|
||||
})
|
||||
|
||||
minetest.register_node("df_primordial_items:jungle_mushroom_sapling", {
|
||||
description = S("Primordial Jungle Mushroom Sapling"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.big_mushroom_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.big_mushroom_usage,
|
||||
tiles = {"dfcaverns_jungle_mushroom_02.png^[brighten"},
|
||||
inventory_image = "dfcaverns_jungle_mushroom_02.png^[brighten",
|
||||
wield_image = "dfcaverns_jungle_mushroom_02.png^[brighten",
|
||||
groups = {snappy = 3, attached_node = 1, flammable = 1, sapling = 1, light_sensitive_fungus = 13, dig_by_piston=1,destroy_by_lava_flow=1,deco_block=1, compostability=30,dig_immediate=3},
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16}
|
||||
},
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
buildable_to = true,
|
||||
is_ground_content = false,
|
||||
walkable = false,
|
||||
sounds = df_dependencies.sound_leaves(),
|
||||
use_texture_alpha = "clip",
|
||||
sunlight_propagates = true,
|
||||
_mcl_blast_resistance = 0.2,
|
||||
_mcl_hardness = 0.2,
|
||||
|
||||
on_construct = function(pos)
|
||||
if df_primordial_items.jungle_mushroom_growth_permitted(pos) then
|
||||
minetest.get_node_timer(pos):start(math.random(
|
||||
df_trees.config.tree_min_growth_delay,
|
||||
df_trees.config.tree_max_growth_delay))
|
||||
end
|
||||
end,
|
||||
on_destruct = function(pos)
|
||||
minetest.get_node_timer(pos):stop()
|
||||
end,
|
||||
|
||||
on_timer = function(pos)
|
||||
if df_farming and df_farming.kill_if_sunlit(pos) then
|
||||
return
|
||||
end
|
||||
df_primordial_items.spawn_jungle_mushroom(pos)
|
||||
end,
|
||||
})
|
||||
|
||||
local c_stem = minetest.get_content_id("df_primordial_items:jungle_mushroom_trunk")
|
||||
local c_cap_1 = minetest.get_content_id("df_primordial_items:jungle_mushroom_cap_1")
|
||||
local c_cap_2 = minetest.get_content_id("df_primordial_items:jungle_mushroom_cap_2")
|
||||
local c_air = minetest.get_content_id("air")
|
||||
|
||||
df_primordial_items.spawn_jungle_mushroom = function(pos)
|
||||
minetest.set_node(pos, {name="air"})
|
||||
local x, y, z = pos.x, pos.y, pos.z
|
||||
local stem_height = math.random(1,3)
|
||||
local cap_radius = math.random(2,3)
|
||||
local maxy = y + stem_height + 3
|
||||
|
||||
local c_cap
|
||||
if math.random() > 0.5 then
|
||||
c_cap = c_cap_1
|
||||
else
|
||||
c_cap = c_cap_2
|
||||
end
|
||||
|
||||
local vm = minetest.get_voxel_manip()
|
||||
local minp, maxp = vm:read_from_map(
|
||||
{x = x - cap_radius, y = y, z = z - cap_radius},
|
||||
{x = x + cap_radius, y = maxy + 3, z = z + cap_radius}
|
||||
)
|
||||
local area = VoxelArea:new({MinEdge = minp, MaxEdge = maxp})
|
||||
local data = vm:get_data()
|
||||
|
||||
subterrane.giant_mushroom(area:indexp(pos), area, data, c_stem, c_cap, c_air, stem_height, cap_radius)
|
||||
|
||||
vm:set_data(data)
|
||||
vm:write_to_map()
|
||||
vm:update_map()
|
||||
end
|
||||
|
||||
df_primordial_items.spawn_jungle_mushroom_vm = function(vi, area, data)
|
||||
local stem_height = math.random(1,3)
|
||||
local cap_radius = math.random(2,3)
|
||||
local c_cap
|
||||
if math.random() > 0.5 then
|
||||
c_cap = c_cap_1
|
||||
else
|
||||
c_cap = c_cap_2
|
||||
end
|
||||
subterrane.giant_mushroom(vi, area, data, c_stem, c_cap, c_air, stem_height, cap_radius)
|
||||
end
|
||||
@@ -0,0 +1,514 @@
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
----------------------------------------------------
|
||||
-- Ferns
|
||||
|
||||
local jungle_plant_groups = {snappy = 3, attached_node = 1, flammable = 1, primordial_jungle_plant = 1, light_sensitive_fungus = 13, handy=1, swordy=1, hoey=1, destroy_by_lava_flow=1,dig_by_piston=1, compostability = 30}
|
||||
|
||||
minetest.register_node("df_primordial_items:fern_1", {
|
||||
description = S("Primordial Fern"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.fern_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.fern_usage,
|
||||
tiles = {"dfcaverns_jungle_fern_01.png"},
|
||||
inventory_image = "dfcaverns_jungle_fern_01.png",
|
||||
wield_image = "dfcaverns_jungle_fern_01.png",
|
||||
groups = jungle_plant_groups,
|
||||
_dfcaverns_dead_node = df_dependencies.node_name_dry_shrub,
|
||||
visual_scale = 1.69,
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
buildable_to = true,
|
||||
is_ground_content = false,
|
||||
walkable = false,
|
||||
floodable = true,
|
||||
sounds = df_dependencies.sound_leaves(),
|
||||
use_texture_alpha = "clip",
|
||||
sunlight_propagates = true,
|
||||
_mcl_blast_resistance = 0.2,
|
||||
_mcl_hardness = 0.2,
|
||||
})
|
||||
|
||||
minetest.register_node("df_primordial_items:fern_2", {
|
||||
description = S("Primordial Fern"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.fern_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.fern_usage,
|
||||
tiles = {"dfcaverns_jungle_fern_02.png"},
|
||||
visual_scale = 1.69,
|
||||
inventory_image = "dfcaverns_jungle_fern_02.png",
|
||||
wield_image = "dfcaverns_jungle_fern_02.png",
|
||||
groups = jungle_plant_groups,
|
||||
_dfcaverns_dead_node = df_dependencies.node_name_dry_shrub,
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
buildable_to = true,
|
||||
is_ground_content = false,
|
||||
walkable = false,
|
||||
floodable = true,
|
||||
sounds = df_dependencies.sound_leaves(),
|
||||
use_texture_alpha = "clip",
|
||||
sunlight_propagates = true,
|
||||
_mcl_blast_resistance = 0.2,
|
||||
_mcl_hardness = 0.2,
|
||||
})
|
||||
|
||||
---------------------------------------------------------
|
||||
-- Glowing plants
|
||||
|
||||
minetest.register_node("df_primordial_items:glow_plant_1", {
|
||||
description = S("Primordial Flower"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.glow_plant_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.glow_plant_usage,
|
||||
tiles = {"dfcaverns_jungle_flower_01.png"},
|
||||
inventory_image = "dfcaverns_jungle_flower_01.png",
|
||||
wield_image = "dfcaverns_jungle_flower_01.png",
|
||||
groups = jungle_plant_groups,
|
||||
_dfcaverns_dead_node = df_dependencies.node_name_dry_shrub,
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
buildable_to = true,
|
||||
is_ground_content = false,
|
||||
walkable = false,
|
||||
floodable = true,
|
||||
light_source = 6,
|
||||
drop = {
|
||||
max_items = 2,
|
||||
items = {
|
||||
{
|
||||
rarity = 3,
|
||||
items = {"df_primordial_items:primordial_fruit"},
|
||||
},
|
||||
{
|
||||
rarity = 3,
|
||||
items = {"df_primordial_items:primordial_fruit"},
|
||||
},
|
||||
},
|
||||
},
|
||||
sounds = df_dependencies.sound_leaves(),
|
||||
use_texture_alpha = "clip",
|
||||
sunlight_propagates = true,
|
||||
_mcl_blast_resistance = 0.2,
|
||||
_mcl_hardness = 0.2,
|
||||
})
|
||||
|
||||
minetest.register_node("df_primordial_items:glow_plant_2", {
|
||||
description = S("Primordial Jungle Pod"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.glow_plant_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.glow_plant_usage,
|
||||
tiles = {"dfcaverns_jungle_glow_plant_01.png"},
|
||||
inventory_image = "dfcaverns_jungle_glow_plant_01.png",
|
||||
wield_image = "dfcaverns_jungle_glow_plant_01.png",
|
||||
groups = jungle_plant_groups,
|
||||
_dfcaverns_dead_node = df_dependencies.node_name_dry_shrub,
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
buildable_to = true,
|
||||
is_ground_content = false,
|
||||
walkable = false,
|
||||
floodable = true,
|
||||
drop = "df_primordial_items:glowtato",
|
||||
light_source = 6,
|
||||
sounds = df_dependencies.sound_leaves(),
|
||||
use_texture_alpha = "clip",
|
||||
sunlight_propagates = true,
|
||||
_mcl_blast_resistance = 0.2,
|
||||
_mcl_hardness = 0.2,
|
||||
})
|
||||
|
||||
minetest.register_node("df_primordial_items:glow_plant_3", {
|
||||
description = S("Primordial Jungle Pod"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.glow_plant_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.glow_plant_usage,
|
||||
tiles = {"dfcaverns_jungle_glow_plant_02.png"},
|
||||
inventory_image = "dfcaverns_jungle_glow_plant_02.png",
|
||||
wield_image = "dfcaverns_jungle_glow_plant_02.png",
|
||||
groups = jungle_plant_groups,
|
||||
_dfcaverns_dead_node = df_dependencies.node_name_dry_shrub,
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
drop = "df_primordial_items:glowtato 2",
|
||||
buildable_to = true,
|
||||
is_ground_content = false,
|
||||
walkable = false,
|
||||
floodable = true,
|
||||
light_source = 6,
|
||||
sounds = df_dependencies.sound_leaves(),
|
||||
use_texture_alpha = "clip",
|
||||
sunlight_propagates = true,
|
||||
_mcl_blast_resistance = 0.2,
|
||||
_mcl_hardness = 0.2,
|
||||
})
|
||||
|
||||
|
||||
-------------------------------------------------------------------
|
||||
-- Grass
|
||||
|
||||
minetest.register_node("df_primordial_items:jungle_grass_1", {
|
||||
description = S("Primordial Jungle Grass"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.grass_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.grass_usage,
|
||||
tiles = {"dfcaverns_jungle_grass_01.png"},
|
||||
inventory_image = "dfcaverns_jungle_grass_01.png",
|
||||
wield_image = "dfcaverns_jungle_grass_01.png",
|
||||
groups = jungle_plant_groups,
|
||||
_dfcaverns_dead_node = df_dependencies.node_name_dry_grass_3,
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
buildable_to = true,
|
||||
is_ground_content = false,
|
||||
walkable = false,
|
||||
floodable = true,
|
||||
sounds = df_dependencies.sound_leaves(),
|
||||
use_texture_alpha = "clip",
|
||||
sunlight_propagates = true,
|
||||
_mcl_blast_resistance = 0.2,
|
||||
_mcl_hardness = 0.2,
|
||||
})
|
||||
|
||||
minetest.register_node("df_primordial_items:jungle_grass_2", {
|
||||
description = S("Primordial Jungle Grass"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.grass_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.grass_usage,
|
||||
tiles = {"dfcaverns_jungle_grass_02.png"},
|
||||
inventory_image = "dfcaverns_jungle_grass_02.png",
|
||||
wield_image = "dfcaverns_jungle_grass_02.png",
|
||||
groups = jungle_plant_groups,
|
||||
_dfcaverns_dead_node = df_dependencies.node_name_dry_grass_4,
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
buildable_to = true,
|
||||
is_ground_content = false,
|
||||
walkable = false,
|
||||
floodable = true,
|
||||
place_param2 = 3,
|
||||
sounds = df_dependencies.sound_leaves(),
|
||||
use_texture_alpha = "clip",
|
||||
sunlight_propagates = true,
|
||||
_mcl_blast_resistance = 0.2,
|
||||
_mcl_hardness = 0.2,
|
||||
})
|
||||
|
||||
minetest.register_node("df_primordial_items:jungle_grass_3", {
|
||||
description = S("Primordial Jungle Grass"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.grass_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.grass_usage,
|
||||
tiles = {"dfcaverns_jungle_grass_03.png"},
|
||||
inventory_image = "dfcaverns_jungle_grass_03.png",
|
||||
wield_image = "dfcaverns_jungle_grass_03.png",
|
||||
groups = jungle_plant_groups,
|
||||
_dfcaverns_dead_node = df_dependencies.node_name_dry_grass_4,
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
buildable_to = true,
|
||||
is_ground_content = false,
|
||||
walkable = false,
|
||||
floodable = true,
|
||||
place_param2 = 3,
|
||||
sounds = df_dependencies.sound_leaves(),
|
||||
use_texture_alpha = "clip",
|
||||
sunlight_propagates = true,
|
||||
_mcl_blast_resistance = 0.2,
|
||||
_mcl_hardness = 0.2,
|
||||
})
|
||||
|
||||
|
||||
-----------------------------------------------------------------------------------------
|
||||
-- Ivy
|
||||
|
||||
minetest.register_node("df_primordial_items:jungle_ivy", {
|
||||
description = S("Primordial Jungle Ivy"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.ivy_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.ivy_usage,
|
||||
tiles = {"dfcaverns_jungle_ivy_01.png"},
|
||||
inventory_image = "dfcaverns_jungle_ivy_01.png",
|
||||
wield_image = "dfcaverns_jungle_ivy_01.png",
|
||||
groups = {snappy = 3, flammable = 1, vines = 1, handy=1,axey=1,shearsy=1,swordy=1, flammable=2,deco_block=1,destroy_by_lava_flow=1,dig_by_piston=1, fire_encouragement=15, fire_flammability=100, compostability=50},
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
place_param2 = 3,
|
||||
--paramtype2 = "wallmouinted",
|
||||
--drawtype = "signlike",
|
||||
sounds = df_dependencies.sound_leaves(),
|
||||
use_texture_alpha = "clip",
|
||||
sunlight_propagates = true,
|
||||
is_ground_content = false,
|
||||
walkable = false,
|
||||
climbable = true,
|
||||
-- selection_box = {
|
||||
-- type = "wallmounted",
|
||||
-- },
|
||||
_mcl_blast_resistance = 0.2,
|
||||
_mcl_hardness = 0.2,
|
||||
})
|
||||
|
||||
-------------------------------------------------------------------------------------
|
||||
-- Small jungle mushrooms
|
||||
|
||||
minetest.register_node("df_primordial_items:jungle_mushroom_1", {
|
||||
description = S("Primordial Jungle Mushroom"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.small_mushroom_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.small_mushroom_usage,
|
||||
tiles = {"dfcaverns_jungle_mushroom_01.png^[multiply:#f3df2a"},
|
||||
inventory_image = "dfcaverns_jungle_mushroom_01.png^[multiply:#f3df2a",
|
||||
wield_image = "dfcaverns_jungle_mushroom_01.png^[multiply:#f3df2a",
|
||||
groups = jungle_plant_groups,
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
buildable_to = true,
|
||||
is_ground_content = false,
|
||||
walkable = false,
|
||||
floodable = true,
|
||||
sounds = df_dependencies.sound_leaves(),
|
||||
use_texture_alpha = "clip",
|
||||
sunlight_propagates = true,
|
||||
_mcl_blast_resistance = 0.2,
|
||||
_mcl_hardness = 0.2,
|
||||
})
|
||||
|
||||
minetest.register_node("df_primordial_items:jungle_mushroom_2", {
|
||||
description = S("Large Primordial Jungle Mushroom"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.small_mushroom_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.small_mushroom_usage,
|
||||
tiles = {"dfcaverns_jungle_mushroom_02.png"},
|
||||
inventory_image = "dfcaverns_jungle_mushroom_02.png",
|
||||
wield_image = "dfcaverns_jungle_mushroom_02.png",
|
||||
groups = jungle_plant_groups,
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
buildable_to = true,
|
||||
is_ground_content = false,
|
||||
walkable = false,
|
||||
floodable = true,
|
||||
sounds = df_dependencies.sound_leaves(),
|
||||
use_texture_alpha = "clip",
|
||||
sunlight_propagates = true,
|
||||
_mcl_blast_resistance = 0.2,
|
||||
_mcl_hardness = 0.2,
|
||||
})
|
||||
|
||||
----------------------------------------------------------------------------------------
|
||||
-- Dirt
|
||||
|
||||
minetest.register_node("df_primordial_items:dirt_with_jungle_grass", {
|
||||
description = S("Dirt With Primordial Jungle Grass"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.dirt_with_jungle_grass_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.dirt_with_jungle_grass_usage,
|
||||
tiles = {"dfcaverns_jungle_plant_grass_node_01.png"},
|
||||
paramtype = "light",
|
||||
groups = {crumbly = 3, soil = 1, light_sensitive_fungus = 13, handy=1,shovely=1, dirt=2, building_block=1, opaque=1},
|
||||
_dfcaverns_dead_node = df_dependencies.node_name_dirt,
|
||||
is_ground_content = false,
|
||||
drop = df_dependencies.node_name_dirt,
|
||||
sounds = df_dependencies.sound_dirt(),
|
||||
_mcl_blast_resistance = 0.5,
|
||||
_mcl_hardness = 0.6,
|
||||
})
|
||||
|
||||
minetest.register_abm{
|
||||
label = "df_primordial_items:jungle_grass_spread",
|
||||
nodenames = {df_dependencies.node_name_dirt},
|
||||
neighbors = {"df_primordial_items:dirt_with_jungle_grass"},
|
||||
interval = 60,
|
||||
chance = 50,
|
||||
catch_up = true,
|
||||
action = function(pos)
|
||||
local above_def = minetest.registered_nodes[minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name]
|
||||
if above_def and (above_def.buildable_to == true or above_def.walkable == false) then
|
||||
minetest.swap_node(pos, {name="df_primordial_items:dirt_with_jungle_grass"})
|
||||
end
|
||||
end,
|
||||
}
|
||||
|
||||
minetest.register_node("df_primordial_items:plant_matter", {
|
||||
description = S("Primordial Plant Matter"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.plant_matter_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.plant_matter_usage,
|
||||
tiles = {"dfcaverns_jungle_plant_matter_01.png"},
|
||||
is_ground_content = false,
|
||||
groups = {crumbly = 3, soil = 1, flammable = 1, handy=1,shovely=1, dirt=2, building_block=1, fire_encouragement=1, fire_flammability=1},
|
||||
sounds = df_dependencies.sound_dirt(),
|
||||
on_timer = function(pos, elapsed)
|
||||
if elapsed > 130 then
|
||||
-- the timer triggered more than ten seconds after it was suppposed to,
|
||||
-- it may have been in an unloaded block. Rather than have all the timers
|
||||
-- go off at once now that the block's loaded, stagger them out again.
|
||||
minetest.get_node_timer(pos):start(math.random(10, 120))
|
||||
return
|
||||
end
|
||||
if minetest.find_node_near(pos, 1, {"air"}) == nil then
|
||||
minetest.set_node(pos, {name="df_primordial_items:packed_roots"})
|
||||
end
|
||||
end,
|
||||
_mcl_blast_resistance = 2,
|
||||
_mcl_hardness = 2,
|
||||
})
|
||||
|
||||
minetest.register_node("df_primordial_items:packed_roots", {
|
||||
description = S("Packed Primordial Jungle Roots"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.packed_roots_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.packed_roots_usage,
|
||||
tiles = {"dfcaverns_jungle_plant_packed_roots_01.png"},
|
||||
paramtype2 = "facedir",
|
||||
is_ground_content = false,
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, handy=1,axey=1, tree=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
|
||||
sounds = df_dependencies.sound_wood(),
|
||||
_mcl_blast_resistance = 3,
|
||||
_mcl_hardness = 3,
|
||||
})
|
||||
|
||||
|
||||
if minetest.get_modpath("footprints") then
|
||||
local HARDPACK_PROBABILITY = tonumber(minetest.settings:get("footprints_hardpack_probability")) or 0.9 -- Chance walked dirt/grass is worn and compacted to footprints:trail.
|
||||
local HARDPACK_COUNT = tonumber(minetest.settings:get("footprints_hardpack_count")) or 10 -- Number of times the above chance needs to be passed for soil to compact.
|
||||
|
||||
footprints.register_trample_node("df_primordial_items:dirt_with_jungle_grass", {
|
||||
trampled_node_def_override = {description = S("Dirt With Primordial Jungle Grass and Footprint"),},
|
||||
footprint_opacity = 128,
|
||||
hard_pack_node_name = "footprints:trail",
|
||||
hard_pack_probability = HARDPACK_PROBABILITY,
|
||||
hard_pack_count = HARDPACK_COUNT,
|
||||
})
|
||||
footprints.register_trample_node("df_primordial_items:plant_matter", {
|
||||
trampled_node_def_override = {description = S("Primordial Plant Matter with Footprint"),},
|
||||
footprint_opacity = 128,
|
||||
hard_pack_node_name = "df_primordial_items:packed_roots",
|
||||
hard_pack_probability = HARDPACK_PROBABILITY,
|
||||
hard_pack_count = HARDPACK_COUNT,
|
||||
})
|
||||
end
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "df_primordial_items:packed_roots",
|
||||
burntime = 40,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "df_primordial_items:plant_matter",
|
||||
burntime = 20,
|
||||
})
|
||||
|
||||
----------------------------------------------------------------------------------------
|
||||
-- Roots
|
||||
|
||||
minetest.register_node("df_primordial_items:jungle_roots_1", {
|
||||
description = S("Primordial Jungle Roots"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.roots_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.roots_usage,
|
||||
tiles = {"dfcaverns_jungle_root_01.png"},
|
||||
inventory_image = "dfcaverns_jungle_root_01.png",
|
||||
wield_image = "dfcaverns_jungle_root_01.png",
|
||||
groups = {snappy = 3, flammable = 1, vines = 1, handy=1,axey=1,shearsy=1,swordy=1, deco_block=1,destroy_by_lava_flow=1,dig_by_piston=1, fire_encouragement=3, fire_flammability=10, compostability=50},
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
sounds = df_dependencies.sound_leaves(),
|
||||
use_texture_alpha = "clip",
|
||||
sunlight_propagates = true,
|
||||
walkable = false,
|
||||
climbable = true,
|
||||
is_ground_content = false,
|
||||
_mcl_blast_resistance = 0.3,
|
||||
_mcl_hardness = 0.2,
|
||||
})
|
||||
|
||||
minetest.register_node("df_primordial_items:jungle_roots_2", {
|
||||
description = S("Primordial Jungle Root"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.roots_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.roots_usage,
|
||||
tiles = {"dfcaverns_jungle_root_02.png"},
|
||||
inventory_image = "dfcaverns_jungle_root_02.png",
|
||||
wield_image = "dfcaverns_jungle_root_02.png",
|
||||
groups = {snappy = 3, flammable = 1, vines = 1, handy=1,axey=1,shearsy=1,swordy=1, deco_block=1,destroy_by_lava_flow=1,dig_by_piston=1, fire_encouragement=3, fire_flammability=10, compostability=50},
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
sounds = df_dependencies.sound_leaves(),
|
||||
use_texture_alpha = "clip",
|
||||
is_ground_content = false,
|
||||
sunlight_propagates = true,
|
||||
walkable = false,
|
||||
climbable = true,
|
||||
_mcl_blast_resistance = 0.3,
|
||||
_mcl_hardness = 0.2,
|
||||
})
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
-- Thorns
|
||||
|
||||
minetest.register_node("df_primordial_items:jungle_thorns", {
|
||||
description = S("Primordial Jungle Thorns"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.thorn_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.thorn_usage,
|
||||
tiles = {"dfcaverns_jungle_thorns_01.png"},
|
||||
visual_scale = 1.41,
|
||||
inventory_image = "dfcaverns_jungle_thorns_01.png",
|
||||
wield_image = "dfcaverns_jungle_thorns_01.png",
|
||||
groups = {snappy = 3, flammable = 1, primordial_jungle_plant = 1, handy=1, swordy=1, hoey=1, destroy_by_lava_flow=1,dig_by_piston=1, fire_encouragement=30, fire_flammability=100, compostability=50},
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
walkable = false,
|
||||
floodable = true,
|
||||
is_ground_content = false,
|
||||
place_param2 = 3,
|
||||
sounds = df_dependencies.sound_leaves(),
|
||||
use_texture_alpha = "clip",
|
||||
sunlight_propagates = true,
|
||||
damage_per_second = 1,
|
||||
_mcl_blast_resistance = 0.5,
|
||||
_mcl_hardness = 0.3,
|
||||
})
|
||||
|
||||
|
||||
-- TODO I had an idea to make thorns grow into mazes naturally using cellular automata rules, but it turned out to be
|
||||
-- complicated and probably not worth it right now. Deal with it later.
|
||||
|
||||
--local thorn_dir =
|
||||
--{
|
||||
-- {x=1,y=0,z=1},
|
||||
-- {x=-1,y=0,z=-1},
|
||||
-- {x=1,y=0,z=0},
|
||||
-- {x=1,y=0,z=-1},
|
||||
-- {x=-1,y=0,z=0},
|
||||
-- {x=-1,y=0,z=1},
|
||||
--}
|
||||
--
|
||||
--
|
||||
--local thorn_name = "df_primordial_items:jungle_thorns"
|
||||
--minetest.register_abm({
|
||||
-- label = "Primordial thorn growth",
|
||||
-- nodenames = {thorn_name},
|
||||
-- neighbors = {"group:soil"},
|
||||
-- interval = 1.0,
|
||||
-- chance = 5,
|
||||
-- catch_up = true,
|
||||
-- action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
-- if math.random() < 0.1 then
|
||||
-- local above = vector.add({x=0,y=1,z=0},pos)
|
||||
-- local below = vector.add({x=0,y=-1,z=0},pos)
|
||||
-- local above_node = minetest.get_node(above)
|
||||
-- local below_node = minetest.get_node(below)
|
||||
-- if above_node.name == "air" and minetest.get_item_group(below_node.name, "soil") then
|
||||
-- minetest.set_node(above, {name=thorn_name})
|
||||
-- end
|
||||
-- if below_node.name == "air" then
|
||||
-- minetest.set_node(below, {name=thorn_name})
|
||||
-- end
|
||||
-- return
|
||||
-- end
|
||||
--
|
||||
-- local dir = thorn_dir[math.random(#thorn_dir)]
|
||||
-- local target_pos = vector.add(dir, pos)
|
||||
-- -- This gets the corners of the target zone
|
||||
-- local pos1 = vector.add(target_pos, thorn_dir[1])
|
||||
-- local pos2 = vector.add(target_pos, thorn_dir[2])
|
||||
--
|
||||
-- local list, counts = minetest.find_nodes_in_area(pos1, pos2, {thorn_name})
|
||||
-- local count = counts[thorn_name]
|
||||
-- local target_node = minetest.get_node(target_pos)
|
||||
-- -- Cellular automaton rule B3/S12345, approximately
|
||||
-- if count == 3 and target_node.name == "air" then
|
||||
-- minetest.set_node(target_pos, {name=thorn_name})
|
||||
-- elseif count > 5 then
|
||||
-- minetest.set_node(target_pos, {name="air"})
|
||||
-- end
|
||||
-- end
|
||||
--})
|
||||
@@ -0,0 +1,272 @@
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
-- Leaves
|
||||
minetest.register_node("df_primordial_items:jungle_leaves", {
|
||||
description = S("Primordial Jungle Tree Leaves"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.leaves_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.leaves_usage,
|
||||
drawtype = "plantlike",
|
||||
walkable = false,
|
||||
waving = 2,
|
||||
visual_scale = 1.4,
|
||||
tiles = {"dfcaverns_jungle_leaves_01.png"},
|
||||
inventory_image = "dfcaverns_jungle_leaves_01.png",
|
||||
wield_image = "dfcaverns_jungle_leaves_01.png",
|
||||
paramtype = "light",
|
||||
is_ground_content = false,
|
||||
buildable_to = true,
|
||||
groups = {snappy = 3, leafdecay = 1, flammable = 2, leaves = 1, handy=1, hoey=1, shearsy=1, swordy=1, deco_block=1, dig_by_piston=1, fire_encouragement=30, fire_flammability=60, compostability=30},
|
||||
sounds = df_dependencies.sound_leaves(),
|
||||
drop = {
|
||||
max_items = 1,
|
||||
items = {
|
||||
{
|
||||
items = {"df_primordial_items:jungletree_sapling"},
|
||||
rarity = 10,
|
||||
},
|
||||
{
|
||||
items = {"df_primordial_items:jungle_leaves"},
|
||||
}
|
||||
}
|
||||
},
|
||||
after_place_node = df_dependencies.after_place_leaves,
|
||||
place_param2 = 1, -- Prevent leafdecay for placed nodes
|
||||
_mcl_blast_resistance = 0.2,
|
||||
_mcl_hardness = 0.2,
|
||||
})
|
||||
|
||||
minetest.register_node("df_primordial_items:jungle_leaves_glowing", {
|
||||
description = S("Phosphorescent Primordial Jungle Tree Leaves"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.glowing_leaves_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.glowing_leaves_usage,
|
||||
drawtype = "plantlike",
|
||||
walkable = false,
|
||||
waving = 2,
|
||||
visual_scale = 1.4,
|
||||
tiles = {"dfcaverns_jungle_leaves_02.png"},
|
||||
inventory_image = "dfcaverns_jungle_leaves_02.png",
|
||||
wield_image = "dfcaverns_jungle_leaves_02.png",
|
||||
paramtype = "light",
|
||||
is_ground_content = false,
|
||||
buildable_to = true,
|
||||
light_source = 2,
|
||||
groups = {snappy = 3, leafdecay = 1, flammable = 2, leaves = 1, handy=1, hoey=1, shearsy=1, swordy=1, deco_block=1, dig_by_piston=1, fire_encouragement=30, fire_flammability=60, compostability=30},
|
||||
sounds = df_dependencies.sound_leaves(),
|
||||
drop = {
|
||||
max_items = 1,
|
||||
items = {
|
||||
{
|
||||
items = {"df_primordial_items:jungletree_sapling"},
|
||||
rarity = 10,
|
||||
},
|
||||
{
|
||||
items = {"df_primordial_items:jungle_leaves_glowing"},
|
||||
}
|
||||
}
|
||||
},
|
||||
after_place_node = df_dependencies.after_place_leaves,
|
||||
place_param2 = 1, -- Prevent leafdecay for placed nodes
|
||||
_mcl_blast_resistance = 0.2,
|
||||
_mcl_hardness = 0.2,
|
||||
})
|
||||
|
||||
-- Trunk
|
||||
|
||||
minetest.register_node("df_primordial_items:jungle_tree", {
|
||||
description = S("Primordial Jungle Tree"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.tree_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.tree_usage,
|
||||
tiles = {"dfcaverns_jungle_wood_02.png", "dfcaverns_jungle_wood_02.png", "dfcaverns_jungle_wood_01.png"},
|
||||
paramtype2 = "facedir",
|
||||
is_ground_content = false,
|
||||
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2, primordial_jungle_tree = 1, handy=1,axey=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
|
||||
sounds = df_dependencies.sound_wood(),
|
||||
on_place = minetest.rotate_node,
|
||||
_mcl_blast_resistance = 2,
|
||||
_mcl_hardness = 2,
|
||||
})
|
||||
|
||||
minetest.register_node("df_primordial_items:jungle_tree_mossy", {
|
||||
description = S("Mossy Primordial Jungle Tree"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.tree_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.tree_usage,
|
||||
tiles = {"dfcaverns_jungle_wood_02.png", "dfcaverns_jungle_wood_02.png", "dfcaverns_jungle_wood_03.png"},
|
||||
paramtype2 = "facedir",
|
||||
is_ground_content = false,
|
||||
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2, primordial_jungle_tree = 1, handy=1,axey=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
|
||||
sounds = df_dependencies.sound_wood(),
|
||||
on_place = minetest.rotate_node,
|
||||
_mcl_blast_resistance = 2,
|
||||
_mcl_hardness = 2,
|
||||
})
|
||||
|
||||
minetest.register_node("df_primordial_items:jungle_tree_glowing", {
|
||||
description = S("Phosphorescent Primordial Jungle Tree"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.tree_glowing_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.tree_glowing_usage,
|
||||
tiles = {"dfcaverns_jungle_wood_02.png", "dfcaverns_jungle_wood_02.png", "dfcaverns_jungle_wood_04.png"},
|
||||
paramtype2 = "facedir",
|
||||
is_ground_content = false,
|
||||
light_source = 4,
|
||||
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2, primordial_jungle_tree = 1, handy=1,axey=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
|
||||
sounds = df_dependencies.sound_wood(),
|
||||
on_place = minetest.rotate_node,
|
||||
_mcl_blast_resistance = 2,
|
||||
_mcl_hardness = 2,
|
||||
})
|
||||
|
||||
df_dependencies.register_leafdecay({
|
||||
trunks = {"df_primordial_items:jungle_tree", "df_primordial_items:jungle_tree_mossy", "df_primordial_items:jungle_tree_glowing"},
|
||||
leaves = {"df_primordial_items:jungle_leaves", "df_primordial_items:jungle_leaves_glowing"},
|
||||
radius = 1,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = df_dependencies.node_name_junglewood .. " 4",
|
||||
recipe = {
|
||||
{"group:primordial_jungle_tree"},
|
||||
}
|
||||
})
|
||||
|
||||
----------------------------
|
||||
-- Spawn
|
||||
|
||||
local c_leaves = minetest.get_content_id("df_primordial_items:jungle_leaves")
|
||||
local c_leaves_glow = minetest.get_content_id("df_primordial_items:jungle_leaves_glowing")
|
||||
local c_trunk = minetest.get_content_id("df_primordial_items:jungle_tree")
|
||||
local c_trunk_mossy = minetest.get_content_id("df_primordial_items:jungle_tree_mossy")
|
||||
local c_trunk_glow = minetest.get_content_id("df_primordial_items:jungle_tree_glowing")
|
||||
|
||||
df_primordial_items.spawn_jungle_tree = function(pos)
|
||||
local x, y, z = pos.x, pos.y, pos.z
|
||||
local height = math.random(8,14)
|
||||
|
||||
local vm = minetest.get_voxel_manip()
|
||||
local minp, maxp = vm:read_from_map(
|
||||
{x = x - 2, y = y - 2, z = z - 2},
|
||||
{x = x + 2, y = y + height, z = z + 2}
|
||||
)
|
||||
local area = VoxelArea:new({MinEdge = minp, MaxEdge = maxp})
|
||||
local data = vm:get_data()
|
||||
local vi = area:indexp(pos)
|
||||
|
||||
df_primordial_items.spawn_jungle_tree_vm(height, vi, area, data)
|
||||
|
||||
vm:set_data(data)
|
||||
vm:write_to_map()
|
||||
vm:update_map()
|
||||
end
|
||||
|
||||
local get_tree_nodes = function()
|
||||
local rand = math.random()
|
||||
if rand < 0.5 then
|
||||
return c_trunk_glow, c_leaves_glow
|
||||
end
|
||||
if rand < 0.75 then
|
||||
return c_trunk_mossy, c_leaves
|
||||
end
|
||||
return c_trunk, c_leaves
|
||||
end
|
||||
|
||||
df_primordial_items.spawn_jungle_tree_vm = function(height, vi, area, data)
|
||||
local ystride = area.ystride
|
||||
local zstride = area.zstride
|
||||
local buildable_to = mapgen_helper.buildable_to
|
||||
|
||||
local roots_done = {[vi] = true}
|
||||
for i = 1, 6 do
|
||||
local root_column = vi + math.random(-1,1) + math.random(-1,1)*zstride
|
||||
if not roots_done[root_column] then
|
||||
local trunknode = get_tree_nodes()
|
||||
for y = -2, math.random(0,1) do -- root height is 1 to 2 nodes above ground
|
||||
local root_index = root_column + y * ystride
|
||||
if buildable_to(data[root_index]) then
|
||||
data[root_index] = trunknode
|
||||
end
|
||||
end
|
||||
end
|
||||
roots_done[root_column] = true
|
||||
end
|
||||
|
||||
-- puts a trunk node in the center and surrounds it with leaves
|
||||
local branch = function(bi, glow)
|
||||
local trunknode, leafnode
|
||||
if buildable_to(data[bi]) then
|
||||
trunknode, leafnode = get_tree_nodes()
|
||||
data[bi] = trunknode
|
||||
else
|
||||
return -- if a branch is placed in a non-viable place, don't add leaves
|
||||
end
|
||||
for x = -1, 1 do
|
||||
for z = -1, 1 do
|
||||
for y = -1, 1 do
|
||||
if math.random() < 0.75 then
|
||||
local li = bi + x + z*zstride + y*ystride
|
||||
if buildable_to(data[li]) then
|
||||
data[li] = leafnode
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
for i = 0, height-2 do
|
||||
local y_index = vi + i * ystride
|
||||
if buildable_to(data[y_index]) then
|
||||
data[y_index] = get_tree_nodes()
|
||||
else
|
||||
return -- if we hit something we can't grow through, stop.
|
||||
end
|
||||
if i > 4 then
|
||||
local branch_index = y_index + math.random(-1,1) + math.random(-1,1)*zstride
|
||||
branch(branch_index)
|
||||
end
|
||||
end
|
||||
branch(vi + (height-1)*ystride) -- topper
|
||||
end
|
||||
|
||||
minetest.register_node("df_primordial_items:jungletree_sapling", {
|
||||
description = S("Primordial Jungle Tree Sapling"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.tree_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.tree_usage,
|
||||
tiles = {"dfcaverns_jungle_sapling.png"},
|
||||
inventory_image = "dfcaverns_jungle_sapling.png",
|
||||
wield_image = "dfcaverns_jungle_sapling.png",
|
||||
groups = {snappy = 3, attached_node = 1, flammable = 1, sapling = 1, light_sensitive_fungus = 13, dig_by_piston=1,destroy_by_lava_flow=1,deco_block=1, compostability=30,dig_immediate=3},
|
||||
_dfcaverns_dead_node = df_dependencies.node_name_dry_shrub,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16}
|
||||
},
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
buildable_to = true,
|
||||
walkable = false,
|
||||
is_ground_content = false,
|
||||
sounds = df_dependencies.sound_leaves(),
|
||||
use_texture_alpha = "clip",
|
||||
sunlight_propagates = true,
|
||||
_mcl_blast_resistance = 0.2,
|
||||
_mcl_hardness = 0.2,
|
||||
on_construct = function(pos)
|
||||
if df_primordial_items.jungletree_growth_permitted(pos) then
|
||||
minetest.get_node_timer(pos):start(math.random(
|
||||
df_trees.config.tree_min_growth_delay,
|
||||
df_trees.config.tree_max_growth_delay))
|
||||
end
|
||||
end,
|
||||
on_destruct = function(pos)
|
||||
minetest.get_node_timer(pos):stop()
|
||||
end,
|
||||
on_timer = function(pos, elapsed)
|
||||
if df_farming and df_farming.kill_if_sunlit(pos) then
|
||||
return
|
||||
end
|
||||
if minetest.get_node_light(pos) > 6 then
|
||||
df_primordial_items.spawn_jungle_tree(pos)
|
||||
else
|
||||
minetest.get_node_timer(pos):start(df_trees.config.tree_min_growth_delay)
|
||||
end
|
||||
end,
|
||||
})
|
||||
@@ -0,0 +1,24 @@
|
||||
Sounds and textures are under various licenses, see the license.txt file in the /sounds and /textures directories for details.
|
||||
|
||||
License for Code
|
||||
----------------
|
||||
|
||||
Copyright (C) 2019 FaceDeer
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -0,0 +1,224 @@
|
||||
# textdomain: df_primordial_items
|
||||
|
||||
|
||||
### ceiling_fungus.lua ###
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Fungal Lantern=Ursprüngliche Pilzlaterne
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Fungal Lantern Stalk=Ursprünglicher Pilzlaternenstiel
|
||||
|
||||
### ceiling_fungus.lua ###
|
||||
### fungal_nodes.lua ###
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Fungal Orb=Urpilzkugel
|
||||
|
||||
### doc.lua ###
|
||||
|
||||
A strangely glowing starchy nodule from a plant that grew deeper than any plant has a right to.=
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Compared to the behemoths found elsewhere in the deep places of the world, the giant mushrooms of the primordial jungles are on the smaller side - often overwhelmed by the green plants that grow in the mysterious light below. Still, they can become substantial resources.=Im Vergleich zu den Giganten, die anderswo in den Tiefen der Welt zu finden sind, sind die riesigen Pilze des Urdschungels eher klein - oft überwältigt von den grünen Pflanzen, die im mysteriösen Licht unten wachsen. Dennoch können sie zu erheblichen Ressourcen werden.
|
||||
|
||||
Eating this fruit will improve your vitality.=
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Fibers extracted from gigantic fungal hyphae.=Fasern aus riesigen Pilzhyphen.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Fungal fibers have infiltrated the ground in a spongy mass, making the soil half mineral and half living matter.=Pilzfasern haben den Boden in einer schwammigen Masse infiltriert und den Boden halb mineralisch und halb lebendig gemacht.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Fungus in its purest form, these gigantic rope-like hyphae creep over the surface of soil and burrow in to feed wherever nutrients are sensed.=Diese gigantischen seilartigen Hyphen, Pilze in ihrer reinsten Form, kriechen über die Oberfläche des Bodens und graben sich ein, um sich dort zu ernähren, wo Nährstoffe wahrgenommen werden.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Ivy is climbable, if it hangs close enough to the ground it can serve as a path between floor and ceiling.=Efeu ist kletterbar, wenn er nahe genug am Boden hängt, kann er als Weg zwischen Boden und Decke dienen.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Like wood of the surface world, primordial jungle trees can be chopped and carved as building material or as fuel.=Ursprüngliche Dschungelbäume können wie Holz der Oberflächenwelt als Baumaterial oder als Brennstoff gehackt und geschnitzt werden.
|
||||
|
||||
Much energy is contained in this tuber. It tastes surprisingly good, too. You could cook with it but any change in its pure state would only reduce its value.=
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Much like a rope, hyphae have fibers inside that can be unraveled and used for a variety of crafts.=Ähnlich wie ein Seil haben Hyphen Fasern im Inneren, die entwirrt und für eine Vielzahl von Handwerken verwendet werden können.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Much like the giant mushrooms of higher cavern layers, these can be carved into woody material for use as fuel or for building things. The grain of these primordial mushrooms is knurled.=Ähnlich wie die Riesenpilze höherer Höhlenschichten können diese in Holzmaterial geschnitzt werden, um sie als Brennstoff oder zum Bauen zu verwenden. Das Korn dieser Urpilze ist gerändelt.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Questing fibers of fungal mycelium sometimes erupt from the soil and reach upward, driven by chemical cues to seek out nourishment above. They look a lot like white grass, at a glance.=Suchende Fasern aus Pilzmyzel brechen manchmal aus dem Boden aus und reichen nach oben, angetrieben von chemischen Hinweisen, um oben nach Nahrung zu suchen. Sie sehen auf den ersten Blick wie weißes Gras aus.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Some fronds of primordial jungle trees also become host to the phosphorescent fungus that creeps through cracks in the bark.=Einige Wedel ursprünglicher Dschungelbäume beherbergen auch den phosphoreszierenden Pilz, der durch Risse in der Rinde kriecht.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Somewhere above an enormous plant has wedged its roots down through the rock and emerged from the ceiling of another cavern.=Irgendwo oben hat eine riesige Pflanze ihre Wurzeln durch den Felsen geklemmt und ist von der Decke einer anderen Höhle aufgetaucht.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Tangled weaves of ivy hang from the ceiling where there are wide enough gaps between the bright sources of light.=Von der Decke hängen verworrene Efeu-Gewebe, an denen zwischen den hellen Lichtquellen ausreichend große Lücken bestehen.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
The cracks in the bark of some primordial jungle trees become host to phosphorescent veins of symbiotic fungus.=Die Risse in der Rinde einiger ursprünglicher Dschungelbäume beherbergen phosphoreszierende Adern symbiotischer Pilze.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
The dark-leaved ferns of the primordial jungle harken back to an earlier era of life in the world.=Die dunkelblättrigen Farne des Urdschungels erinnern an eine frühere Ära des Lebens in der Welt.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
The glowing bark fungus doesn't extend into the wood of the trunk, resulting in surprisingly mundane building material when hewn.=Der glühende Rindenpilz dringt nicht in das Holz des Stammes ein, was beim Hauen zu überraschend banalem Baumaterial führt.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
The gnarled interwoven root-like foundations of this plant material is not useful as building material, but can serve as a fuel source.=Die knorrigen, verwobenen, wurzelartigen Fundamente dieses Pflanzenmaterials sind nicht als Baumaterial geeignet, können aber als Brennstoffquelle dienen.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
The grandest of the great mushroom species can be found in the deepest primordial caverns. Their broad caps have hanging gills.=Die größte der großen Pilzarten befindet sich in den tiefsten Urhöhlen. Ihre breiten Kappen haben hängende Kiemen.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
The large woody plants of the primordial jungle are similar in appearance to the jungle trees of the surface, but are a result of convergent evolution from ancient cycad plants toward a common form.=Die großen Holzpflanzen des Urdschungels ähneln in ihrem Aussehen den Dschungelbäumen der Oberfläche, sind jedoch das Ergebnis einer konvergenten Entwicklung von alten Cycad-Pflanzen zu einer gemeinsamen Form.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
The soft flesh of these large mushrooms is much less woody than other giant mushrooms, making it ill-suited to structural use. This makes it rather more nutritious, however.=Das weiche Fleisch dieser großen Pilze ist viel weniger holzig als andere Riesenpilze, was sie für strukturelle Zwecke ungeeignet macht. Dies macht es jedoch etwas nahrhafter.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
The soil of the primordial jungle is rife with strange life at every scale.=Der Boden des Urdschungels ist voller seltsamer Leben in jeder Größenordnung.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
The steady light and unchanging growing conditions of the primordial caverns have led to great mountainous masses of plant material growing in particularly fertile spots, hardly identifiable as individual organisms.=Das stetige Licht und die unveränderlichen Wachstumsbedingungen der Urhöhlen haben dazu geführt, dass an besonders fruchtbaren Stellen große Gebirgsmassen an Pflanzenmaterial wachsen, die kaum als einzelne Organismen zu identifizieren sind.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
The still air of these ancient caverns have allowed ferns to grow to prodigious sizes, where storms and rain would normally tear their weaker fronds off on the surface of the world.=Die stille Luft dieser alten Höhlen hat es Farnen ermöglicht, zu erstaunlichen Größen zu wachsen, wo Stürme und Regen normalerweise ihre schwächeren Wedel auf der Oberfläche der Welt abreißen würden.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
These fibrous plants that grow in the deep appear similar to grass at a glance, but they are more closely related to horsetails - a form of vegetation from before the advent of modern plant forms. Ironically, pale cave wheat is more kin to surface grass than this is.=Diese faserigen Pflanzen, die in der Tiefe wachsen, sehen auf den ersten Blick wie Gras aus, sind jedoch enger mit Schachtelhalmen verwandt - einer Vegetationsform vor dem Aufkommen moderner Pflanzenformen. Ironischerweise ist blasser Höhlenweizen mehr verwandt mit Oberflächengras als dies.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
These hanging roots are climbable.=Diese hängenden Wurzeln sind kletterbar.
|
||||
|
||||
This strange fruit from the depths has absorbed healthful energies.=
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
When a fern grows to such sizes its stem becomes dense enough to be used as a form of wood.=Wenn ein Farn so groß wird, wird sein Stamm dicht genug, um als Holzform verwendet zu werden.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
When left uncultivated mycelial soil will sprout all manner of strange wild fungi.=Wenn nicht kultivierter Myzelboden belassen wird, sprießen alle Arten von seltsamen Wildpilzen.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
When left uncultivated primordial jungle soil will sprout all manner of strange wild plants.=Wenn sie nicht kultiviert werden, sprießen alle Arten von seltsamen Wildpflanzen aus dem ursprünglichen Dschungelboden.
|
||||
|
||||
|
||||
### edibles.lua ###
|
||||
|
||||
Glowtato=
|
||||
Primordial Fruit=
|
||||
|
||||
### fungal_nodes.lua ###
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Dirt with Primordial Mycelium=Schmutz mit Urmyzel
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Dirt with Primordial Mycelium and Footprint=Schmutz mit Urmyzel und Fußabdruck
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Fungal Grass=Urpilzgras
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Fungal Pod=Urpilzschote
|
||||
|
||||
### giant_fern.lua ###
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Fern Wood=Farnholz
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Giant Fern Leaves=Riesige Farnblätter
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Giant Fern Sapling=Riesenfarnsetzling
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Giant Fern Stem=Riesenfarnstamm
|
||||
|
||||
### giant_mycelium.lua ###
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Giant Hypha=Riesenhyphe
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Giant Hypha Apical Meristem=Riesenhypha Apical Meristem
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Giant Mycelial Fibers=Riesige Myzelfasern
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Mycelial thread=Myzelfaden
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Rooted Giant Hypha=Verwurzelte Riesenhyphe
|
||||
|
||||
### jungle_mushroom.lua ###
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Dark Jungle Mushroom Cap=Dunkle Dschungel-Pilz-Kappe
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Diced Mushroom=Pilzwürfel
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Pale Jungle Mushroom Cap=Blasse Dschungel-Pilz-Kappe
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Jungle Mushroom Sapling=Ur-Dschungel-Pilz-Schössling
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Jungle Mushroom Trunk=Ursprünglicher Dschungelpilzstamm
|
||||
|
||||
### jungle_nodes.lua ###
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Dirt With Primordial Jungle Grass=Schmutz mit ursprünglichem Dschungelgras
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Dirt With Primordial Jungle Grass and Footprint=Schmutz mit ursprünglichem Dschungelgras und Fußabdruck
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Large Primordial Jungle Mushroom=Großer Ur-Dschungelpilz
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Packed Primordial Jungle Roots=Gepackte ursprüngliche Dschungelwurzeln
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Fern=Urfarn
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Flower=Urblume
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Jungle Grass=Ursprüngliches Dschungelgras
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Jungle Ivy=Ursprünglicher Dschungel-Efeu
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Jungle Mushroom=Ursprünglicher Dschungelpilz
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Jungle Pod=Ursprünglicher Dschungel-Pod
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Jungle Root=Ursprüngliche Dschungelwurzel
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Jungle Roots=Ursprüngliche Dschungelwurzeln
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Jungle Thorns=Ursprüngliche Dschungeldornen
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Plant Matter=Urpflanzenmaterie
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Plant Matter with Footprint=Urpflanzen mit Fußabdruck
|
||||
|
||||
### jungle_tree.lua ###
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Mossy Primordial Jungle Tree=Moosiger Urdschungelbaum
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Phosphorescent Primordial Jungle Tree=Phosphoreszierender Urdschungelbaum
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Phosphorescent Primordial Jungle Tree Leaves=Phosphoreszierende Ur-Dschungelbaumblätter
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Jungle Tree=Ursprünglicher Dschungelbaum
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Jungle Tree Leaves=Ursprüngliche Dschungelbaumblätter
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Jungle Tree Sapling=Ursprünglicher Dschungelbaumsetzling
|
||||
|
||||
### primordial_mushroom.lua ###
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Glowing Primordial Mushroom Gills=Glühende Urpilzkiemen
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Cap Wood=Urkappenholz
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Mushroom Cap=Urpilzkappe
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Mushroom Gills=Urpilzkiemen
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Mushroom Spawn=Urpilzlaich
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Mushroom Trunk=Urpilzstamm
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Mushroom Trunk Wood=Urpilzstammholz
|
||||
@@ -0,0 +1,221 @@
|
||||
# textdomain: df_primordial_items
|
||||
|
||||
|
||||
### ceiling_fungus.lua ###
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Fungal Lantern=Lanterna fungina primordiale
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Fungal Lantern Stalk=Gambo di lanterna fungina primordiale
|
||||
|
||||
### ceiling_fungus.lua ###
|
||||
### fungal_nodes.lua ###
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Fungal Orb=Globo fungino primordiale
|
||||
|
||||
### doc.lua ###
|
||||
|
||||
A strangely glowing starchy nodule from a plant that grew deeper than any plant has a right to.=
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Compared to the behemoths found elsewhere in the deep places of the world, the giant mushrooms of the primordial jungles are on the smaller side - often overwhelmed by the green plants that grow in the mysterious light below. Still, they can become substantial resources.=Rispetto ai behemoth che si trovano altrove nelle profondità del mondo, i funghi giganti delle giungle primordiali sono sul lato più piccolo, spesso sopraffatti dalle piante verdi che crescono nella misteriosa luce sottostante. Tuttavia, possono diventare risorse sostanziali.
|
||||
|
||||
Eating this fruit will improve your vitality.=
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Fibers extracted from gigantic fungal hyphae.=Fibre estratte da gigantesche ife fungine.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Fungal fibers have infiltrated the ground in a spongy mass, making the soil half mineral and half living matter.=Le fibre fungine si sono infiltrate nel terreno in una massa spugnosa, rendendo il suolo metà minerale e metà materia vivente.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Fungus in its purest form, these gigantic rope-like hyphae creep over the surface of soil and burrow in to feed wherever nutrients are sensed.=Funghi nella sua forma più pura, queste gigantesche ife simili a corde strisciano sulla superficie del terreno e si insinuano per nutrirsi ovunque vengano percepiti i nutrienti.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Ivy is climbable, if it hangs close enough to the ground it can serve as a path between floor and ceiling.=Ivy è scalabile, se pende abbastanza vicino al suolo può fungere da percorso tra il pavimento e il soffitto.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Like wood of the surface world, primordial jungle trees can be chopped and carved as building material or as fuel.=Come il legno del mondo di superficie, gli alberi della giungla primordiale possono essere tagliati e intagliati come materiale da costruzione o come combustibile.
|
||||
|
||||
Much energy is contained in this tuber. It tastes surprisingly good, too. You could cook with it but any change in its pure state would only reduce its value.=
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Much like a rope, hyphae have fibers inside that can be unraveled and used for a variety of crafts.=Proprio come una corda, le ife hanno fibre all'interno che possono essere svelate e utilizzate per una varietà di mestieri.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Much like the giant mushrooms of higher cavern layers, these can be carved into woody material for use as fuel or for building things. The grain of these primordial mushrooms is knurled.=Proprio come i funghi giganti degli strati superiori delle caverne, questi possono essere scolpiti in materiale legnoso da utilizzare come combustibile o per costruire oggetti. Il chicco di questi funghi primordiali è zigrinato.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Questing fibers of fungal mycelium sometimes erupt from the soil and reach upward, driven by chemical cues to seek out nourishment above. They look a lot like white grass, at a glance.=Le fibre di ricerca del micelio fungino a volte eruttano dal suolo e si allungano verso l'alto, spinte da segnali chimici a cercare nutrimento sopra. Assomigliano molto all'erba bianca, a prima vista.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Some fronds of primordial jungle trees also become host to the phosphorescent fungus that creeps through cracks in the bark.=Alcune fronde di alberi primordiali della giungla diventano anche ospiti del fungo fosforescente che si insinua attraverso le fessure della corteccia.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Somewhere above an enormous plant has wedged its roots down through the rock and emerged from the ceiling of another cavern.=Da qualche parte sopra un'enorme pianta ha incuneato le sue radici nella roccia ed è emersa dal soffitto di un'altra caverna.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Tangled weaves of ivy hang from the ceiling where there are wide enough gaps between the bright sources of light.=Intrecci aggrovigliati di edera pendono dal soffitto dove ci sono spazi abbastanza ampi tra le sorgenti luminose luminose.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
The cracks in the bark of some primordial jungle trees become host to phosphorescent veins of symbiotic fungus.=Le crepe nella corteccia di alcuni alberi primordiali della giungla ospitano vene fosforescenti di funghi simbiotici.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
The dark-leaved ferns of the primordial jungle harken back to an earlier era of life in the world.=Le felci dalle foglie scure della giungla primordiale rimandano a un'era precedente della vita nel mondo.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
The glowing bark fungus doesn't extend into the wood of the trunk, resulting in surprisingly mundane building material when hewn.=Il fungo della corteccia incandescente non si estende nel legno del tronco, risultando in materiale da costruzione sorprendentemente banale quando viene tagliato.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
The gnarled interwoven root-like foundations of this plant material is not useful as building material, but can serve as a fuel source.=Le fondamenta nodose intrecciate simili a radici di questo materiale vegetale non sono utili come materiale da costruzione, ma possono servire come fonte di combustibile.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
The grandest of the great mushroom species can be found in the deepest primordial caverns. Their broad caps have hanging gills.=La più grande delle grandi specie di funghi si trova nelle più profonde caverne primordiali. I loro berretti larghi hanno branchie pendenti.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
The large woody plants of the primordial jungle are similar in appearance to the jungle trees of the surface, but are a result of convergent evolution from ancient cycad plants toward a common form.=Le grandi piante legnose della giungla primordiale sono simili nell'aspetto agli alberi della giungla della superficie, ma sono il risultato dell'evoluzione convergente dalle antiche piante delle Cicade verso una forma comune.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
The soft flesh of these large mushrooms is much less woody than other giant mushrooms, making it ill-suited to structural use. This makes it rather more nutritious, however.=La polpa morbida di questi grandi funghi è molto meno legnosa di altri funghi giganti, rendendola poco adatta all'uso strutturale. Tuttavia, questo lo rende un po 'più nutriente.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
The soil of the primordial jungle is rife with strange life at every scale.=Il suolo della giungla primordiale è pieno di strane forme di vita ad ogni scala.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
The steady light and unchanging growing conditions of the primordial caverns have led to great mountainous masses of plant material growing in particularly fertile spots, hardly identifiable as individual organisms.=La luce costante e le condizioni di crescita immutate delle caverne primordiali hanno portato a grandi masse montuose di materiale vegetale che crescono in punti particolarmente fertili, difficilmente identificabili come singoli organismi.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
The still air of these ancient caverns have allowed ferns to grow to prodigious sizes, where storms and rain would normally tear their weaker fronds off on the surface of the world.=L'aria immobile di queste antiche caverne ha permesso alle felci di raggiungere dimensioni prodigiose, dove le tempeste e la pioggia normalmente strapperebbero le loro fronde più deboli sulla superficie del mondo.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
These fibrous plants that grow in the deep appear similar to grass at a glance, but they are more closely related to horsetails - a form of vegetation from before the advent of modern plant forms. Ironically, pale cave wheat is more kin to surface grass than this is.=Queste piante fibrose che crescono in profondità sembrano a prima vista simili all'erba, ma sono più strettamente imparentate con gli equiseti, una forma di vegetazione antecedente all'avvento delle moderne forme vegetali. Ironia della sorte, il grano chiaro delle caverne è più simile all'erba in superficie di quanto non lo sia.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
These hanging roots are climbable.=Queste radici pendenti sono scalabili.
|
||||
|
||||
This strange fruit from the depths has absorbed healthful energies.=
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
When a fern grows to such sizes its stem becomes dense enough to be used as a form of wood.=Quando una felce raggiunge tali dimensioni, il suo gambo diventa abbastanza denso da essere usato come una forma di legno.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
When left uncultivated mycelial soil will sprout all manner of strange wild fungi.=Se lasciato incolto il terreno miceliale germoglierà ogni sorta di strani funghi selvatici.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
When left uncultivated primordial jungle soil will sprout all manner of strange wild plants.=Se lasciato incolto, il terreno della giungla primordiale germoglierà ogni sorta di strane piante selvatiche.
|
||||
|
||||
|
||||
### edibles.lua ###
|
||||
|
||||
Glowtato=
|
||||
Primordial Fruit=
|
||||
|
||||
### fungal_nodes.lua ###
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Dirt with Primordial Mycelium=Sporcizia con micelio primordiale
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Dirt with Primordial Mycelium and Footprint=Sporcizia con micelio primordiale e impronta
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Fungal Grass=Erba fungina primordiale
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Fungal Pod=Capsula Fungina Primordiale
|
||||
|
||||
### giant_fern.lua ###
|
||||
|
||||
Fern Wood=
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Giant Fern Leaves=Foglie di felce gigante
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Giant Fern Sapling=Alberello di felce gigante
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Giant Fern Stem=Fusto di felce gigante
|
||||
|
||||
### giant_mycelium.lua ###
|
||||
|
||||
Giant Hypha=
|
||||
Giant Hypha Apical Meristem=
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Giant Mycelial Fibers=Fibre miceliali giganti
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Mycelial thread=Filo miceliale
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Rooted Giant Hypha=Hypha gigante radicato
|
||||
|
||||
### jungle_mushroom.lua ###
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Dark Jungle Mushroom Cap=Cappello a fungo della giungla oscura
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Diced Mushroom=Funghi a cubetti
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Pale Jungle Mushroom Cap=Cappello a fungo della giungla pallido
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Jungle Mushroom Sapling=Alberello di funghi della giungla primordiale
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Jungle Mushroom Trunk=Tronco di funghi della giungla primordiale
|
||||
|
||||
### jungle_nodes.lua ###
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Dirt With Primordial Jungle Grass=Sporcizia Con Erba Primordiale Della Giungla
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Dirt With Primordial Jungle Grass and Footprint=Sporcizia con erba della giungla primordiale e impronta
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Large Primordial Jungle Mushroom=Grande fungo della giungla primordiale
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Packed Primordial Jungle Roots=Radici della giungla primordiali imballate
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Fern=Felce primordiale
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Flower=Fiore primordiale
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Jungle Grass=Erba della giungla primordiale
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Jungle Ivy=Edera della giungla primordiale
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Jungle Mushroom=Fungo della giungla primordiale
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Jungle Pod=Capsula della giungla primordiale
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Jungle Root=Radice della giungla primordiale
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Jungle Roots=Radici della giungla primordiale
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Jungle Thorns=Spine della giungla primordiale
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Plant Matter=Materia vegetale primordiale
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Plant Matter with Footprint=Materia vegetale primordiale con impronta
|
||||
|
||||
### jungle_tree.lua ###
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Mossy Primordial Jungle Tree=Albero della giungla primordiale muschioso
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Phosphorescent Primordial Jungle Tree=Albero della giungla primordiale fosforescente
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Phosphorescent Primordial Jungle Tree Leaves=Foglie di albero della giungla primordiale fosforescente
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Jungle Tree=Albero della giungla primordiale
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Jungle Tree Leaves=Foglie primordiali dell'albero della giungla
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Jungle Tree Sapling=Alberello dell'albero della giungla primordiale
|
||||
|
||||
### primordial_mushroom.lua ###
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Glowing Primordial Mushroom Gills=Incandescente branchie di funghi primordiali
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Cap Wood=Cap legno primordiale
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Mushroom Cap=Cappello del fungo primordiale
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Mushroom Gills=Branchie di funghi primordiali
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Mushroom Spawn=Spawn dei Funghi Primordiali
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Mushroom Trunk=Tronco di funghi primordiali
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Primordial Mushroom Trunk Wood=Tronco di funghi primordiali in legno
|
||||
@@ -0,0 +1,148 @@
|
||||
# textdomain: df_primordial_items
|
||||
|
||||
|
||||
### ceiling_fungus.lua ###
|
||||
|
||||
Primordial Fungal Lantern=
|
||||
Primordial Fungal Lantern Stalk=
|
||||
|
||||
### ceiling_fungus.lua ###
|
||||
### fungal_nodes.lua ###
|
||||
|
||||
Primordial Fungal Orb=
|
||||
|
||||
### doc.lua ###
|
||||
|
||||
A strangely glowing starchy nodule from a plant that grew deeper than any plant has a right to.=
|
||||
|
||||
Compared to the behemoths found elsewhere in the deep places of the world, the giant mushrooms of the primordial jungles are on the smaller side - often overwhelmed by the green plants that grow in the mysterious light below. Still, they can become substantial resources.=
|
||||
|
||||
Eating this fruit will improve your vitality.=
|
||||
Fibers extracted from gigantic fungal hyphae.=
|
||||
|
||||
Fungal fibers have infiltrated the ground in a spongy mass, making the soil half mineral and half living matter.=
|
||||
|
||||
Fungus in its purest form, these gigantic rope-like hyphae creep over the surface of soil and burrow in to feed wherever nutrients are sensed.=
|
||||
|
||||
Ivy is climbable, if it hangs close enough to the ground it can serve as a path between floor and ceiling.=
|
||||
|
||||
Like wood of the surface world, primordial jungle trees can be chopped and carved as building material or as fuel.=
|
||||
|
||||
Much energy is contained in this tuber. It tastes surprisingly good, too. You could cook with it but any change in its pure state would only reduce its value.=
|
||||
|
||||
Much like a rope, hyphae have fibers inside that can be unraveled and used for a variety of crafts.=
|
||||
|
||||
Much like the giant mushrooms of higher cavern layers, these can be carved into woody material for use as fuel or for building things. The grain of these primordial mushrooms is knurled.=
|
||||
|
||||
Questing fibers of fungal mycelium sometimes erupt from the soil and reach upward, driven by chemical cues to seek out nourishment above. They look a lot like white grass, at a glance.=
|
||||
|
||||
Some fronds of primordial jungle trees also become host to the phosphorescent fungus that creeps through cracks in the bark.=
|
||||
|
||||
Somewhere above an enormous plant has wedged its roots down through the rock and emerged from the ceiling of another cavern.=
|
||||
|
||||
Tangled weaves of ivy hang from the ceiling where there are wide enough gaps between the bright sources of light.=
|
||||
|
||||
The cracks in the bark of some primordial jungle trees become host to phosphorescent veins of symbiotic fungus.=
|
||||
|
||||
The dark-leaved ferns of the primordial jungle harken back to an earlier era of life in the world.=
|
||||
|
||||
The glowing bark fungus doesn't extend into the wood of the trunk, resulting in surprisingly mundane building material when hewn.=
|
||||
|
||||
The gnarled interwoven root-like foundations of this plant material is not useful as building material, but can serve as a fuel source.=
|
||||
|
||||
The grandest of the great mushroom species can be found in the deepest primordial caverns. Their broad caps have hanging gills.=
|
||||
|
||||
The large woody plants of the primordial jungle are similar in appearance to the jungle trees of the surface, but are a result of convergent evolution from ancient cycad plants toward a common form.=
|
||||
|
||||
The soft flesh of these large mushrooms is much less woody than other giant mushrooms, making it ill-suited to structural use. This makes it rather more nutritious, however.=
|
||||
|
||||
The soil of the primordial jungle is rife with strange life at every scale.=
|
||||
|
||||
The steady light and unchanging growing conditions of the primordial caverns have led to great mountainous masses of plant material growing in particularly fertile spots, hardly identifiable as individual organisms.=
|
||||
|
||||
The still air of these ancient caverns have allowed ferns to grow to prodigious sizes, where storms and rain would normally tear their weaker fronds off on the surface of the world.=
|
||||
|
||||
These fibrous plants that grow in the deep appear similar to grass at a glance, but they are more closely related to horsetails - a form of vegetation from before the advent of modern plant forms. Ironically, pale cave wheat is more kin to surface grass than this is.=
|
||||
|
||||
These hanging roots are climbable.=
|
||||
|
||||
This strange fruit from the depths has absorbed healthful energies.=
|
||||
|
||||
When a fern grows to such sizes its stem becomes dense enough to be used as a form of wood.=
|
||||
|
||||
When left uncultivated mycelial soil will sprout all manner of strange wild fungi.=
|
||||
|
||||
When left uncultivated primordial jungle soil will sprout all manner of strange wild plants.=
|
||||
|
||||
|
||||
### edibles.lua ###
|
||||
|
||||
Glowtato=
|
||||
Primordial Fruit=
|
||||
|
||||
### fungal_nodes.lua ###
|
||||
|
||||
Dirt with Primordial Mycelium=
|
||||
Dirt with Primordial Mycelium and Footprint=
|
||||
Primordial Fungal Grass=
|
||||
Primordial Fungal Pod=
|
||||
|
||||
### giant_fern.lua ###
|
||||
|
||||
Fern Wood=
|
||||
Giant Fern Leaves=
|
||||
Giant Fern Sapling=
|
||||
Giant Fern Stem=
|
||||
|
||||
### giant_mycelium.lua ###
|
||||
|
||||
Giant Hypha=
|
||||
Giant Hypha Apical Meristem=
|
||||
Giant Mycelial Fibers=
|
||||
Mycelial thread=
|
||||
Rooted Giant Hypha=
|
||||
|
||||
### jungle_mushroom.lua ###
|
||||
|
||||
Dark Jungle Mushroom Cap=
|
||||
Diced Mushroom=
|
||||
Pale Jungle Mushroom Cap=
|
||||
Primordial Jungle Mushroom Sapling=
|
||||
Primordial Jungle Mushroom Trunk=
|
||||
|
||||
### jungle_nodes.lua ###
|
||||
|
||||
Dirt With Primordial Jungle Grass=
|
||||
Dirt With Primordial Jungle Grass and Footprint=
|
||||
Large Primordial Jungle Mushroom=
|
||||
Packed Primordial Jungle Roots=
|
||||
Primordial Fern=
|
||||
Primordial Flower=
|
||||
Primordial Jungle Grass=
|
||||
Primordial Jungle Ivy=
|
||||
Primordial Jungle Mushroom=
|
||||
Primordial Jungle Pod=
|
||||
Primordial Jungle Root=
|
||||
Primordial Jungle Roots=
|
||||
Primordial Jungle Thorns=
|
||||
Primordial Plant Matter=
|
||||
Primordial Plant Matter with Footprint=
|
||||
|
||||
### jungle_tree.lua ###
|
||||
|
||||
Mossy Primordial Jungle Tree=
|
||||
Phosphorescent Primordial Jungle Tree=
|
||||
Phosphorescent Primordial Jungle Tree Leaves=
|
||||
Primordial Jungle Tree=
|
||||
Primordial Jungle Tree Leaves=
|
||||
Primordial Jungle Tree Sapling=
|
||||
|
||||
### primordial_mushroom.lua ###
|
||||
|
||||
Glowing Primordial Mushroom Gills=
|
||||
Primordial Cap Wood=
|
||||
Primordial Mushroom Cap=
|
||||
Primordial Mushroom Gills=
|
||||
Primordial Mushroom Spawn=
|
||||
Primordial Mushroom Trunk=
|
||||
Primordial Mushroom Trunk Wood=
|
||||
@@ -0,0 +1,4 @@
|
||||
name = df_primordial_items
|
||||
description = A collection of flora found in the "primordial" cavern layer of DF Caverns
|
||||
depends = df_dependencies, mapgen_helper, subterrane, df_underworld_items, df_trees
|
||||
optional_depends = footprints, df_farming
|
||||
@@ -0,0 +1,74 @@
|
||||
# Blender v2.79 (sub 0) OBJ File: ''
|
||||
# www.blender.org
|
||||
g tunnel_tube_slant_2_Bottom_tunnel_tube_slant_Cube.002_Bottom
|
||||
v 0.500000 -0.500000 -0.500000
|
||||
v 0.500000 -0.500000 0.500000
|
||||
v -0.500000 -0.500000 -0.500000
|
||||
v -0.500000 -0.500000 0.500000
|
||||
vt 1.000000 1.000000
|
||||
vt 1.000000 0.000000
|
||||
vt -0.000000 0.000000
|
||||
vt 0.000000 1.000000
|
||||
vn 0.0000 -1.0000 -0.0000
|
||||
s 1
|
||||
f 1/1/1 2/2/1 4/3/1 3/4/1
|
||||
g tunnel_tube_slant_5_Front_tunnel_tube_slant_Cube.002_Front
|
||||
v 0.500000 -0.500000 0.500000
|
||||
v 0.500000 0.500000 0.000000
|
||||
v -0.500000 0.500000 0.000000
|
||||
v -0.500000 -0.500000 0.500000
|
||||
vt 1.000000 0.000000
|
||||
vt 1.000000 1.000000
|
||||
vt -0.000000 1.000000
|
||||
vt -0.000000 0.000000
|
||||
vn 0.0000 0.4472 0.8944
|
||||
s 1
|
||||
f 5/5/2 6/6/2 7/7/2 8/8/2
|
||||
g tunnel_tube_slant_1_Top_tunnel_tube_slant_Cube.002_Top
|
||||
v 0.500000 0.500000 -1.000000
|
||||
v -0.500000 0.500000 -1.000000
|
||||
v 0.500000 0.500000 0.000000
|
||||
v -0.500000 0.500000 0.000000
|
||||
vt 1.000000 1.000000
|
||||
vt 0.000000 1.000000
|
||||
vt -0.000000 0.000000
|
||||
vt 1.000000 -0.000000
|
||||
vn 0.0000 1.0000 0.0000
|
||||
s 1
|
||||
f 9/9/3 10/10/3 12/11/3 11/12/3
|
||||
g tunnel_tube_slant_3_Left_tunnel_tube_slant_Cube.002_Left
|
||||
v -0.500000 -0.500000 0.500000
|
||||
v -0.500000 0.500000 0.000000
|
||||
v -0.500000 0.500000 -1.000000
|
||||
v -0.500000 -0.500000 -0.500000
|
||||
vt -0.000000 0.000000
|
||||
vt 0.500000 1.000000
|
||||
vt 1.500000 1.000000
|
||||
vt 1.000000 0.000000
|
||||
vn -1.0000 0.0000 0.0000
|
||||
s 1
|
||||
f 13/13/4 14/14/4 15/15/4 16/16/4
|
||||
g tunnel_tube_slant_6_Back_tunnel_tube_slant_Cube.002_Back
|
||||
v 0.500000 0.500000 -1.000000
|
||||
v 0.500000 -0.500000 -0.500000
|
||||
v -0.500000 -0.500000 -0.500000
|
||||
v -0.500000 0.500000 -1.000000
|
||||
vt 1.000000 1.000000
|
||||
vt 1.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 1.000000
|
||||
vn 0.0000 -0.4472 -0.8944
|
||||
s 1
|
||||
f 17/17/5 18/18/5 19/19/5 20/20/5
|
||||
g tunnel_tube_slant_4_Right_tunnel_tube_slant_Cube.002_Right
|
||||
v 0.500000 -0.500000 -0.500000
|
||||
v 0.500000 0.500000 -1.000000
|
||||
v 0.500000 0.500000 0.000000
|
||||
v 0.500000 -0.500000 0.500000
|
||||
vt 1.000000 0.000000
|
||||
vt 1.500000 1.000000
|
||||
vt 0.500000 1.000000
|
||||
vt 0.000000 0.000000
|
||||
vn 1.0000 0.0000 0.0000
|
||||
s 1
|
||||
f 21/21/6 22/22/6 23/23/6 24/24/6
|
||||
@@ -0,0 +1,74 @@
|
||||
# Blender v2.79 (sub 0) OBJ File: ''
|
||||
# www.blender.org
|
||||
g tunnel_tube_slant_Cube.002_Bottom.001
|
||||
v 0.500000 -0.500000 -0.000000
|
||||
v 0.500000 -0.500000 1.000000
|
||||
v -0.500000 -0.500000 -0.000000
|
||||
v -0.500000 -0.500000 1.000000
|
||||
vt 1.000000 1.000000
|
||||
vt 1.000000 0.000000
|
||||
vt -0.000000 0.000000
|
||||
vt 0.000000 1.000000
|
||||
vn 0.0000 -1.0000 -0.0000
|
||||
s 1
|
||||
f 1/1/1 2/2/1 4/3/1 3/4/1
|
||||
g tunnel_tube_slant_Cube.002_Front.001
|
||||
v 0.500000 -0.500000 1.000000
|
||||
v 0.500000 0.500000 0.500000
|
||||
v -0.500000 0.500000 0.500000
|
||||
v -0.500000 -0.500000 1.000000
|
||||
vt 1.000000 0.000000
|
||||
vt 1.000000 1.000000
|
||||
vt 0.000000 1.000000
|
||||
vt -0.000000 0.000000
|
||||
vn 0.0000 0.4472 0.8944
|
||||
s 1
|
||||
f 5/5/2 6/6/2 7/7/2 8/8/2
|
||||
g tunnel_tube_slant_Cube.002_Top.001
|
||||
v 0.500000 0.500000 -0.500000
|
||||
v -0.500000 0.500000 -0.500000
|
||||
v 0.500000 0.500000 0.500000
|
||||
v -0.500000 0.500000 0.500000
|
||||
vt 1.000000 1.000000
|
||||
vt 0.000000 1.000000
|
||||
vt -0.000000 0.000000
|
||||
vt 1.000000 -0.000000
|
||||
vn 0.0000 1.0000 0.0000
|
||||
s 1
|
||||
f 9/9/3 10/10/3 12/11/3 11/12/3
|
||||
g tunnel_tube_slant_Cube.002_Left.001
|
||||
v -0.500000 -0.500000 1.000000
|
||||
v -0.500000 0.500000 0.500000
|
||||
v -0.500000 0.500000 -0.500000
|
||||
v -0.500000 -0.500000 -0.000000
|
||||
vt -0.500000 0.000000
|
||||
vt 0.000000 1.000000
|
||||
vt 1.000000 1.000000
|
||||
vt 0.500000 0.000000
|
||||
vn -1.0000 -0.0000 0.0000
|
||||
s 1
|
||||
f 13/13/4 14/14/4 15/15/4 16/16/4
|
||||
g tunnel_tube_slant_Cube.002_Back.001
|
||||
v 0.500000 0.500000 -0.500000
|
||||
v 0.500000 -0.500000 -0.000000
|
||||
v -0.500000 -0.500000 -0.000000
|
||||
v -0.500000 0.500000 -0.500000
|
||||
vt 1.000000 1.000000
|
||||
vt 1.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 1.000000
|
||||
vn 0.0000 -0.4472 -0.8944
|
||||
s 1
|
||||
f 17/17/5 18/18/5 19/19/5 20/20/5
|
||||
g tunnel_tube_slant_Cube.002_Right.001
|
||||
v 0.500000 -0.500000 -0.000000
|
||||
v 0.500000 0.500000 -0.500000
|
||||
v 0.500000 0.500000 0.500000
|
||||
v 0.500000 -0.500000 1.000000
|
||||
vt 0.500000 0.000000
|
||||
vt 1.000000 1.000000
|
||||
vt -0.000000 1.000000
|
||||
vt -0.500000 0.000000
|
||||
vn 1.0000 -0.0000 0.0000
|
||||
s 1
|
||||
f 21/21/6 22/22/6 23/23/6 24/24/6
|
||||
@@ -0,0 +1,74 @@
|
||||
# Blender v2.79 (sub 0) OBJ File: ''
|
||||
# www.blender.org
|
||||
g tunnel_tube_slant_Cube.002_Bottom.002
|
||||
v 0.500000 -0.500000 -0.500000
|
||||
v 0.500000 -0.500000 0.500000
|
||||
v -0.500000 -0.500000 -0.500000
|
||||
v -0.500000 -0.500000 0.500000
|
||||
vt 1.000000 1.000000
|
||||
vt 1.000000 0.000000
|
||||
vt -0.000000 0.000000
|
||||
vt 0.000000 1.000000
|
||||
vn 0.0000 -1.0000 -0.0000
|
||||
s 1
|
||||
f 1/1/1 2/2/1 4/3/1 3/4/1
|
||||
g tunnel_tube_slant_Cube.002_Front.002
|
||||
v 0.500000 -0.500000 0.500000
|
||||
v 0.500000 0.500000 -0.500000
|
||||
v -0.500000 0.500000 -0.500000
|
||||
v -0.500000 -0.500000 0.500000
|
||||
vt 1.000000 0.000000
|
||||
vt 1.000000 1.000000
|
||||
vt -0.000000 1.000000
|
||||
vt -0.000000 0.000000
|
||||
vn 0.0000 0.7071 0.7071
|
||||
s 1
|
||||
f 5/5/2 6/6/2 7/7/2 8/8/2
|
||||
g tunnel_tube_slant_Cube.002_Top.002
|
||||
v 0.500000 0.500000 -1.500000
|
||||
v -0.500000 0.500000 -1.500000
|
||||
v 0.500000 0.500000 -0.500000
|
||||
v -0.500000 0.500000 -0.500000
|
||||
vt 1.000000 1.000000
|
||||
vt 0.000000 1.000000
|
||||
vt -0.000000 0.000000
|
||||
vt 1.000000 -0.000000
|
||||
vn 0.0000 1.0000 0.0000
|
||||
s 1
|
||||
f 9/9/3 10/10/3 12/11/3 11/12/3
|
||||
g tunnel_tube_slant_Cube.002_Left.002
|
||||
v -0.500000 -0.500000 0.500000
|
||||
v -0.500000 0.500000 -0.500000
|
||||
v -0.500000 0.500000 -1.500000
|
||||
v -0.500000 -0.500000 -0.500000
|
||||
vt -0.000000 0.000000
|
||||
vt 1.000000 1.000000
|
||||
vt 2.000000 1.000000
|
||||
vt 1.000000 0.000000
|
||||
vn -1.0000 0.0000 0.0000
|
||||
s 1
|
||||
f 13/13/4 14/14/4 15/15/4 16/16/4
|
||||
g tunnel_tube_slant_Cube.002_Back.002
|
||||
v 0.500000 0.500000 -1.500000
|
||||
v 0.500000 -0.500000 -0.500000
|
||||
v -0.500000 -0.500000 -0.500000
|
||||
v -0.500000 0.500000 -1.500000
|
||||
vt 1.000000 1.000000
|
||||
vt 1.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 1.000000
|
||||
vn 0.0000 -0.7071 -0.7071
|
||||
s 1
|
||||
f 17/17/5 18/18/5 19/19/5 20/20/5
|
||||
g tunnel_tube_slant_Cube.002_Right.002
|
||||
v 0.500000 -0.500000 -0.500000
|
||||
v 0.500000 0.500000 -1.500000
|
||||
v 0.500000 0.500000 -0.500000
|
||||
v 0.500000 -0.500000 0.500000
|
||||
vt 1.000000 0.000000
|
||||
vt 2.000000 1.000000
|
||||
vt 1.000000 1.000000
|
||||
vt 0.000000 0.000000
|
||||
vn 1.0000 -0.0000 0.0000
|
||||
s 1
|
||||
f 21/21/6 22/22/6 23/23/6 24/24/6
|
||||
@@ -0,0 +1,788 @@
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
minetest.register_node("df_primordial_items:mushroom_trunk", {
|
||||
description = S("Primordial Mushroom Trunk"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.giant_mushroom_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.giant_mushroom_usage,
|
||||
tiles = {"dfcaverns_mush_shaft_top.png", "dfcaverns_mush_shaft_top.png", "dfcaverns_mush_shaft_side.png"},
|
||||
paramtype2 = "facedir",
|
||||
is_ground_content = false,
|
||||
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2, handy=1,axey=1, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
|
||||
sounds = df_trees.node_sound_tree_soft_fungus_defaults(),
|
||||
on_place = minetest.rotate_node,
|
||||
_mcl_blast_resistance = 3,
|
||||
_mcl_hardness = 3,
|
||||
})
|
||||
|
||||
minetest.register_node("df_primordial_items:mushroom_cap", {
|
||||
description = S("Primordial Mushroom Cap"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.giant_mushroom_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.giant_mushroom_usage,
|
||||
tiles = {"dfcaverns_mush_cap.png"},
|
||||
paramtype2 = "facedir",
|
||||
is_ground_content = false,
|
||||
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2, handy=1,axey=1, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
|
||||
sounds = df_trees.node_sound_tree_soft_fungus_defaults(),
|
||||
on_place = minetest.rotate_node,
|
||||
_mcl_blast_resistance = 2,
|
||||
_mcl_hardness = 2,
|
||||
})
|
||||
|
||||
minetest.register_node("df_primordial_items:mushroom_gills", {
|
||||
description = S("Primordial Mushroom Gills"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.gills_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.gills_usage,
|
||||
tiles = {"dfcaverns_mush_gills.png"},
|
||||
inventory_image = "dfcaverns_mush_gills.png",
|
||||
wield_image = "dfcaverns_mush_gills.png",
|
||||
groups = {snappy = 3, flammable = 1, leaves = 1, leafdecay = 8,handy=1, hoey=1, shearsy=1, swordy=1, deco_block=1, dig_by_piston=1, fire_encouragement=15, fire_flammability=30, compostability=30},
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
waving = 2,
|
||||
walkable = false,
|
||||
climbable = true,
|
||||
is_ground_content = false,
|
||||
sounds = df_dependencies.sound_leaves(),
|
||||
use_texture_alpha = "clip",
|
||||
sunlight_propagates = true,
|
||||
drop = {
|
||||
max_items = 1,
|
||||
items = {
|
||||
{
|
||||
-- player will get sapling with 1/20 chance
|
||||
items = {"df_primordial_items:mush_sapling"},
|
||||
rarity = 20,
|
||||
},
|
||||
{
|
||||
items = {"df_primordial_items:mushroom_gills"},
|
||||
}
|
||||
}
|
||||
},
|
||||
after_place_node = df_dependencies.after_place_leaves,
|
||||
place_param2 = 1, -- Prevent leafdecay for placed nodes
|
||||
_mcl_blast_resistance = 0.2,
|
||||
_mcl_hardness = 0.2,
|
||||
})
|
||||
|
||||
minetest.register_node("df_primordial_items:mushroom_gills_glowing", {
|
||||
description = S("Glowing Primordial Mushroom Gills"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.gills_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.gills_usage,
|
||||
tiles = {"dfcaverns_mush_gills_glow.png"},
|
||||
inventory_image = "dfcaverns_mush_gills_glow.png",
|
||||
wield_image = "dfcaverns_mush_gills_glow.png",
|
||||
groups = {snappy = 3, flammable = 1, leaves = 1, leafdecay = 8,handy=1, hoey=1, shearsy=1, swordy=1, deco_block=1, dig_by_piston=1, fire_encouragement=15, fire_flammability=30, compostability=30},
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
waving = 2,
|
||||
walkable = false,
|
||||
climbable = true,
|
||||
is_ground_content = false,
|
||||
light_source = 6,
|
||||
sounds = df_dependencies.sound_leaves(),
|
||||
use_texture_alpha = "clip",
|
||||
sunlight_propagates = true,
|
||||
drop = {
|
||||
max_items = 1,
|
||||
items = {
|
||||
{
|
||||
-- player will get sapling with 1/20 chance
|
||||
items = {"df_primordial_items:mush_sapling"},
|
||||
rarity = 20,
|
||||
},
|
||||
{
|
||||
items = {"df_primordial_items:mushroom_gills_glowing"},
|
||||
}
|
||||
}
|
||||
},
|
||||
after_place_node = df_dependencies.after_place_leaves,
|
||||
place_param2 = 1, -- Prevent leafdecay for placed nodes
|
||||
_mcl_blast_resistance = 0.2,
|
||||
_mcl_hardness = 0.2,
|
||||
})
|
||||
|
||||
df_dependencies.register_leafdecay({
|
||||
trunks = {"df_primordial_items:mushroom_trunk", "df_primordial_items:mushroom_cap"},
|
||||
leaves = {"df_primordial_items:mushroom_gills", "df_primordial_items:mushroom_gills_glowing"},
|
||||
radius = 5,
|
||||
})
|
||||
|
||||
minetest.register_node("df_primordial_items:primordial_mush_trunk_wood", {
|
||||
description = S("Primordial Mushroom Trunk Wood"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.giant_mushroom_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.giant_mushroom_usage,
|
||||
paramtype2 = "facedir",
|
||||
tiles = {"dfcaverns_mush_shaft_side.png^(dfcaverns_mush_gills.png^[multiply:#888888)"},
|
||||
is_ground_content = false,
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, wood = 1, handy=1,axey=1, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=20},
|
||||
sounds = df_dependencies.sound_wood(),
|
||||
_mcl_blast_resistance = 4,
|
||||
_mcl_hardness = 3,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "df_primordial_items:primordial_mush_trunk_wood 4",
|
||||
recipe = {
|
||||
{"df_primordial_items:mushroom_trunk"},
|
||||
}
|
||||
})
|
||||
|
||||
df_dependencies.register_all_stairs_and_fences("primordial_mush_trunk_wood", {burntime = 7})
|
||||
|
||||
minetest.register_node("df_primordial_items:primordial_mush_cap_wood", {
|
||||
description = S("Primordial Cap Wood"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.giant_mushroom_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.giant_mushroom_usage,
|
||||
paramtype2 = "facedir",
|
||||
tiles = {"dfcaverns_mush_cap.png^dfcaverns_mush_gills.png"},
|
||||
is_ground_content = false,
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, wood = 1, handy=1,axey=1, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=20},
|
||||
sounds = df_dependencies.sound_wood(),
|
||||
_mcl_blast_resistance = 3,
|
||||
_mcl_hardness = 2,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "df_primordial_items:primordial_mush_cap_wood 4",
|
||||
recipe = {
|
||||
{"df_primordial_items:mushroom_cap"},
|
||||
}
|
||||
})
|
||||
|
||||
df_dependencies.register_all_stairs_and_fences("primordial_mush_cap_wood", {burntime=12})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "df_primordial_items:primordial_mush_cap_wood",
|
||||
burntime = 12,
|
||||
})
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "df_primordial_items:primordial_mush_trunk_wood",
|
||||
burntime = 7,
|
||||
})
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "df_primordial_items:mushroom_cap",
|
||||
burntime = 40,
|
||||
})
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "df_primordial_items:mushroom_trunk",
|
||||
burntime = 30,
|
||||
})
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "df_primordial_items:mushroom_gills",
|
||||
burntime = 2,
|
||||
})
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "df_primordial_items:mushroom_gills_glowing",
|
||||
burntime = 4,
|
||||
})
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "df_primordial_items:mush_sapling",
|
||||
burntime = 2,
|
||||
})
|
||||
|
||||
------
|
||||
-- Schematics:
|
||||
-- Originally created by ClockGen, released under CC-BY 4.0
|
||||
|
||||
local replace_on_buildable_to = function(old_node_id, data, area, vi)
|
||||
return mapgen_helper.buildable_to(old_node_id)
|
||||
end
|
||||
|
||||
local n1 = {name="air", prob=0}
|
||||
local n2 = {name="df_primordial_items:mushroom_gills"}
|
||||
local n3 = {name="df_primordial_items:mushroom_cap", place_on_condition = replace_on_buildable_to}
|
||||
local n4 = {name="df_primordial_items:mushroom_trunk", place_on_condition = replace_on_buildable_to}
|
||||
local n5 = {name="df_primordial_items:mushroom_gills_glowing"}
|
||||
|
||||
local bc_mushroom_3 = {
|
||||
size = {x=3, y=3, z=3},
|
||||
center_pos = {x=1, y=0, z=1},
|
||||
data = {
|
||||
n1, n1, n1, n2, n2, n1, n3, n3, n3, n1, n4, n1, n2, n4, n5, n3, n3,
|
||||
n3, n1, n1, n1, n1, n5, n1, n3, n3, n3,
|
||||
},
|
||||
}
|
||||
|
||||
local bc_mushroom_5 = {
|
||||
size = {x=5, y=5, z=5},
|
||||
center_pos = {x=2, y=0, z=2},
|
||||
data = {
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n3,
|
||||
n3, n3, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n2, n1, n1, n1, n3, n2, n5, n2, n3, n1, n3, n3, n3, n1, n1,
|
||||
n1, n4, n1, n1, n1, n1, n4, n1, n1, n1, n2, n4, n5, n1, n3, n2, n4,
|
||||
n5, n3, n1, n3, n3, n3, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n5, n2, n1, n1, n3, n5, n2, n2, n3, n1, n3, n3, n3, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n3, n3, n3,
|
||||
n1, n1, n1, n1, n1, n1,
|
||||
},
|
||||
}
|
||||
|
||||
local bc_mushroom_9 = {
|
||||
size = {x=9, y=9, z=9},
|
||||
center_pos = {x=4, y=0, z=4},
|
||||
data = {
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n3, n3,
|
||||
n3, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n3, n3, n3, n2, n3, n3, n3, n1,
|
||||
n1, n1, n1, n1, n3, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n5, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n5, n1, n1, n1, n1, n1, n1, n1, n1, n5,
|
||||
n2, n1, n1, n1, n1, n3, n3, n2, n5, n2, n3, n3, n1, n1, n1, n1, n3,
|
||||
n3, n3, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n2, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n2, n1, n1, n1, n1, n1, n1, n1, n1, n2, n1, n1, n1, n1, n1,
|
||||
n3, n3, n2, n2, n5, n2, n2, n3, n3, n1, n1, n3, n3, n3, n3, n3, n1,
|
||||
n1, n1, n1, n1, n1, n4, n1, n1, n1, n1, n1, n1, n1, n1, n4, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n4, n1, n1, n1, n1, n1, n1, n1, n1, n4, n1,
|
||||
n1, n5, n1, n1, n5, n1, n1, n4, n2, n1, n5, n1, n1, n5, n1, n5, n4,
|
||||
n2, n1, n5, n1, n1, n5, n1, n5, n4, n2, n2, n5, n1, n3, n5, n2, n5,
|
||||
n4, n2, n5, n5, n3, n1, n3, n3, n3, n3, n3, n3, n3, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n2, n1, n1, n1,
|
||||
n1, n1, n2, n1, n1, n2, n1, n1, n1, n1, n1, n2, n1, n2, n2, n1, n1,
|
||||
n1, n1, n1, n2, n5, n2, n2, n1, n1, n3, n3, n5, n2, n5, n2, n2, n3,
|
||||
n3, n1, n1, n3, n3, n3, n3, n3, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n5, n1, n1, n1, n1, n1, n1, n1, n1, n5,
|
||||
n1, n1, n1, n1, n1, n1, n3, n3, n5, n2, n2, n3, n3, n1, n1, n1, n1,
|
||||
n3, n3, n3, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n5, n1, n1, n1,
|
||||
n1, n1, n3, n3, n3, n5, n3, n3, n3, n1, n1, n1, n1, n1, n3, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n3, n3, n3, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
},
|
||||
}
|
||||
|
||||
local bc_mushroom_21 = {
|
||||
size = {y = 21, x = 19, z = 19},
|
||||
center_pos = {x=9, y=0, z=9},
|
||||
data = {
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n3, n3, n3, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n3, n3, n3, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n2, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n2, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n2,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n2, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n2, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n2, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n2, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n2, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n2, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n2, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n3, n3, n3, n2, n3,
|
||||
n3, n3, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n3, n3, n3,
|
||||
n3, n3, n3, n3, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n5, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n5, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n5, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n5, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n5, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n5,
|
||||
n5, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n5, n5, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n5, n5, n5, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n3, n3, n5, n5, n5, n5, n2, n3, n3, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n3, n3, n3, n3, n5, n3, n3, n3, n3, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n3, n3, n3, n3, n3, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n2, n1, n1, n2, n1, n1, n2, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n2, n1, n1, n2, n1, n5, n2, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n2, n1, n1, n2, n1, n5, n2, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n2, n1, n1, n2, n1, n5, n2, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n3, n3, n3, n2, n1, n1, n2, n1, n5,
|
||||
n2, n3, n3, n3, n1, n1, n1, n1, n1, n1, n3, n3, n3, n3, n2, n5, n2,
|
||||
n2, n5, n3, n3, n3, n3, n1, n1, n1, n1, n1, n1, n1, n1, n1, n3, n3,
|
||||
n3, n3, n3, n3, n3, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n5, n1,
|
||||
n5, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n2, n1, n1, n1,
|
||||
n5, n1, n5, n1, n1, n1, n1, n1, n1, n1, n1, n5, n1, n5, n1, n2, n2,
|
||||
n1, n1, n5, n1, n5, n1, n1, n1, n1, n1, n1, n1, n1, n5, n1, n5, n1,
|
||||
n2, n2, n1, n1, n5, n1, n5, n1, n1, n1, n1, n1, n1, n1, n1, n5, n1,
|
||||
n5, n1, n2, n2, n1, n2, n5, n1, n5, n1, n1, n1, n1, n1, n1, n1, n3,
|
||||
n5, n2, n5, n1, n2, n2, n1, n2, n5, n2, n5, n3, n1, n1, n1, n1, n1,
|
||||
n1, n3, n3, n3, n5, n2, n2, n2, n5, n2, n5, n3, n3, n3, n1, n1, n1,
|
||||
n1, n1, n1, n1, n3, n3, n3, n3, n3, n3, n3, n3, n3, n3, n3, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n3, n3, n3, n3, n3, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n2, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n2, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n2, n1, n1, n1, n1, n1, n2, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n2, n1, n1, n1, n1, n2, n2, n2, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n5, n1, n2, n1, n1, n1, n2, n2, n2, n2, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n5, n1, n2, n1, n1, n1, n2, n2, n2, n2, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n5, n1, n2, n1, n1, n1, n2, n2, n2, n2,
|
||||
n1, n1, n1, n1, n1, n1, n3, n3, n2, n5, n1, n2, n1, n1, n1, n2, n2,
|
||||
n2, n2, n3, n3, n1, n1, n1, n1, n3, n3, n3, n5, n2, n2, n5, n5, n2,
|
||||
n2, n2, n2, n3, n3, n3, n1, n1, n1, n1, n1, n1, n3, n3, n3, n3, n4,
|
||||
n4, n4, n3, n3, n3, n3, n1, n1, n1, n1, n1, n1, n1, n1, n1, n3, n3,
|
||||
n3, n3, n3, n3, n3, n3, n3, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n2, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n2, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n2, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n2, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n2, n1, n1, n1, n2, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n2, n1, n1, n1,
|
||||
n2, n1, n1, n1, n1, n1, n1, n2, n1, n1, n1, n1, n1, n1, n1, n2, n1,
|
||||
n2, n1, n2, n1, n1, n1, n1, n1, n1, n2, n1, n1, n2, n1, n1, n1, n2,
|
||||
n2, n1, n2, n5, n2, n1, n1, n1, n1, n1, n1, n2, n1, n1, n2, n1, n1,
|
||||
n1, n2, n2, n2, n2, n5, n2, n1, n1, n1, n1, n1, n1, n2, n1, n1, n2,
|
||||
n1, n1, n1, n2, n2, n2, n2, n5, n2, n1, n1, n1, n1, n3, n3, n2, n1,
|
||||
n1, n2, n1, n1, n5, n2, n2, n2, n2, n5, n2, n3, n3, n1, n1, n3, n3,
|
||||
n3, n2, n2, n2, n2, n5, n4, n2, n2, n2, n2, n5, n3, n3, n3, n1, n1,
|
||||
n1, n1, n3, n3, n3, n3, n4, n4, n4, n4, n4, n3, n3, n3, n3, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n3, n3, n3, n3, n3, n3, n3, n3, n3, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n3, n3, n3, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n5, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n2,
|
||||
n1, n1, n1, n1, n5, n5, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n2, n1, n1, n1, n1, n5, n5, n1, n1, n1, n1, n2, n5, n1, n1, n1,
|
||||
n1, n1, n1, n2, n1, n1, n1, n1, n5, n5, n1, n1, n1, n1, n2, n5, n1,
|
||||
n1, n1, n1, n1, n1, n2, n1, n1, n1, n1, n5, n5, n1, n2, n1, n1, n2,
|
||||
n5, n1, n1, n1, n3, n2, n1, n2, n1, n1, n1, n2, n4, n5, n1, n2, n1,
|
||||
n1, n2, n5, n3, n1, n1, n3, n3, n2, n2, n5, n5, n2, n4, n4, n4, n2,
|
||||
n2, n2, n2, n2, n3, n3, n1, n1, n1, n3, n3, n3, n3, n4, n4, n4, n4,
|
||||
n4, n4, n4, n3, n3, n3, n3, n1, n1, n1, n1, n1, n1, n3, n3, n3, n3,
|
||||
n3, n3, n3, n3, n3, n3, n3, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n3, n3, n3, n3, n3, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n4, n4, n4, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n4, n4, n4, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n4, n4, n4, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n4, n4, n4, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n4, n4, n4, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n4, n4, n4,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n4,
|
||||
n4, n4, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n4, n4, n4, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n4, n4, n4, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n4, n4, n4, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n4, n4, n4, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n4, n4, n4, n2, n2, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n5, n1, n1, n1, n1, n4, n4, n4, n2, n2, n2,
|
||||
n1, n1, n2, n1, n1, n1, n1, n5, n5, n1, n1, n1, n1, n4, n4, n4, n2,
|
||||
n2, n2, n1, n1, n2, n1, n1, n1, n1, n5, n5, n1, n1, n5, n2, n4, n4,
|
||||
n4, n2, n2, n2, n1, n1, n2, n1, n1, n1, n1, n5, n5, n1, n1, n5, n2,
|
||||
n4, n4, n4, n2, n2, n2, n1, n5, n2, n1, n1, n3, n3, n5, n5, n1, n1,
|
||||
n5, n2, n4, n4, n4, n2, n2, n2, n1, n5, n2, n3, n3, n3, n3, n3, n5,
|
||||
n5, n2, n5, n4, n4, n4, n4, n4, n2, n2, n2, n5, n3, n3, n3, n1, n1,
|
||||
n3, n3, n3, n4, n4, n4, n4, n4, n4, n4, n4, n4, n3, n3, n3, n1, n1,
|
||||
n1, n1, n1, n1, n3, n3, n3, n3, n3, n3, n3, n3, n3, n3, n3, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n3, n3, n3, n3, n3, n3, n3, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n4, n4, n4, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n4, n4, n4,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n4,
|
||||
n4, n4, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n4, n4, n4, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n4, n4, n4, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n4, n4, n4, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n4, n4, n4, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n4, n4, n4, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n4, n4, n4, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n4, n4, n4, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n2, n1, n1, n1, n1, n1, n1, n4, n4,
|
||||
n4, n1, n1, n1, n1, n1, n1, n2, n1, n1, n2, n1, n1, n1, n1, n1, n5,
|
||||
n4, n4, n4, n1, n1, n1, n1, n1, n1, n2, n1, n1, n2, n1, n1, n1, n5,
|
||||
n1, n5, n4, n4, n4, n2, n1, n1, n1, n1, n1, n2, n1, n1, n2, n1, n1,
|
||||
n1, n5, n1, n5, n4, n4, n4, n2, n1, n1, n1, n2, n1, n2, n1, n1, n2,
|
||||
n1, n1, n1, n5, n1, n5, n4, n4, n4, n2, n1, n1, n1, n2, n1, n2, n1,
|
||||
n1, n2, n1, n1, n1, n5, n1, n5, n4, n4, n4, n2, n1, n1, n1, n2, n1,
|
||||
n2, n1, n3, n2, n1, n1, n1, n5, n2, n4, n4, n4, n4, n4, n5, n1, n1,
|
||||
n2, n1, n2, n3, n3, n3, n2, n2, n5, n5, n4, n4, n4, n4, n4, n4, n4,
|
||||
n2, n2, n2, n2, n3, n3, n1, n1, n3, n3, n3, n4, n4, n4, n4, n4, n4,
|
||||
n4, n4, n4, n3, n3, n3, n1, n1, n1, n1, n1, n1, n3, n3, n3, n3, n3,
|
||||
n3, n3, n3, n3, n3, n3, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n3,
|
||||
n3, n3, n3, n3, n3, n3, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n4, n4, n4, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n4, n4, n4, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n4, n4, n4, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n4, n4, n4, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n4, n4, n4, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n4, n4, n4, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n4, n4,
|
||||
n4, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n4, n4, n4, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n4, n4, n4, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n4, n4, n4, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n4, n4, n4, n5, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n4, n4, n4, n5, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n2, n1, n1, n1, n1, n4, n4, n4, n5, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n2, n1, n1, n1, n2, n4, n4, n4, n5, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n2, n1, n1, n1, n2, n4, n4, n4,
|
||||
n5, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n2, n1, n1, n1, n2, n4,
|
||||
n4, n4, n5, n1, n1, n1, n1, n1, n1, n1, n3, n3, n2, n2, n1, n1, n1,
|
||||
n2, n4, n4, n4, n5, n1, n1, n1, n1, n2, n3, n3, n3, n3, n3, n2, n2,
|
||||
n5, n5, n4, n4, n4, n4, n4, n2, n5, n5, n2, n3, n3, n3, n1, n1, n3,
|
||||
n3, n3, n4, n4, n4, n4, n4, n4, n4, n4, n4, n3, n3, n3, n1, n1, n1,
|
||||
n1, n1, n1, n3, n3, n3, n3, n3, n3, n3, n3, n3, n3, n3, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n3, n3, n3, n3, n3, n3, n3, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n5, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n5, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n5, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n2, n1, n1, n1, n1, n1, n1, n5, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n2, n1, n1, n1, n1, n1, n1, n5, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n2, n1, n1, n1, n1, n1, n1, n5, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n5, n2, n1, n1, n1, n1, n1, n1, n5, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n5, n2, n1, n1, n1, n1, n1, n1, n5, n1,
|
||||
n1, n1, n3, n5, n1, n1, n1, n1, n1, n5, n4, n2, n1, n1, n1, n1, n1,
|
||||
n5, n3, n1, n1, n3, n3, n5, n5, n2, n5, n2, n4, n4, n4, n2, n2, n2,
|
||||
n2, n5, n3, n3, n1, n1, n1, n3, n3, n3, n3, n4, n4, n4, n4, n4, n4,
|
||||
n4, n3, n3, n3, n3, n1, n1, n1, n1, n1, n1, n3, n3, n3, n3, n3, n3,
|
||||
n3, n3, n3, n3, n3, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n3,
|
||||
n3, n3, n3, n3, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n5, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n5, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n5, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n5, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n5, n1, n1, n1, n1, n1, n1, n1, n5, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n5, n1, n1, n1, n1, n1, n1, n1, n5, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n5, n1, n1, n1, n1, n1, n1, n1, n5,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n5, n1, n1, n1, n1, n1, n1,
|
||||
n5, n5, n1, n1, n1, n1, n1, n1, n1, n1, n3, n3, n5, n1, n1, n1, n1,
|
||||
n1, n2, n5, n5, n1, n1, n1, n5, n3, n3, n1, n1, n3, n3, n3, n5, n2,
|
||||
n5, n2, n2, n4, n5, n5, n2, n2, n5, n3, n3, n3, n1, n1, n1, n1, n3,
|
||||
n3, n3, n3, n4, n4, n4, n4, n4, n3, n3, n3, n3, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n3, n3, n3, n3, n3, n3, n3, n3, n3, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n3, n3, n3, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n2, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n2, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n2, n1, n1, n1,
|
||||
n2, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n2, n1,
|
||||
n1, n1, n2, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n2, n1, n1, n1, n2, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n2, n5, n1, n1, n2, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n2, n5, n1, n1, n2, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n2, n5, n1, n2, n2, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n3, n3, n2, n1, n1, n1, n2, n5, n2, n2, n2, n1, n2, n3, n3,
|
||||
n1, n1, n1, n1, n3, n3, n3, n5, n2, n5, n2, n5, n2, n2, n2, n5, n3,
|
||||
n3, n3, n1, n1, n1, n1, n1, n1, n3, n3, n3, n3, n4, n4, n4, n3, n3,
|
||||
n3, n3, n1, n1, n1, n1, n1, n1, n1, n1, n1, n3, n3, n3, n3, n3, n3,
|
||||
n3, n3, n3, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n5, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n5,
|
||||
n1, n1, n1, n2, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n5, n1, n1, n1, n2, n1, n2, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n5, n1, n5, n1, n2, n1, n2, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n5, n1, n5, n1, n2, n1, n2, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n5, n1, n5, n1, n2, n1, n2, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n5, n1, n5, n1, n2, n1, n2, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n5, n1, n5, n1, n2, n2,
|
||||
n2, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n3, n2, n5, n1, n5, n1,
|
||||
n2, n2, n2, n1, n5, n5, n3, n1, n1, n1, n1, n1, n1, n3, n3, n3, n2,
|
||||
n5, n2, n2, n2, n2, n5, n3, n3, n3, n1, n1, n1, n1, n1, n1, n1, n3,
|
||||
n3, n3, n3, n3, n3, n3, n3, n3, n3, n3, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n3, n3, n3, n3, n3, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n2,
|
||||
n1, n1, n2, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n2, n1, n1, n2, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n2, n5, n2, n2, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n3, n3, n3, n2, n5, n2, n2, n1, n1, n2, n3, n3, n3, n1, n1,
|
||||
n1, n1, n1, n1, n3, n3, n3, n3, n5, n2, n2, n5, n5, n3, n3, n3, n3,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n3, n3, n3, n3, n3, n3, n3, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n5, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n5, n1, n1, n1, n5, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n5, n1, n1, n1,
|
||||
n5, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n5, n1,
|
||||
n1, n1, n5, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n5, n1, n1, n1, n5, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n5, n1, n1, n1, n5, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n5, n1, n1, n1, n5, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n5, n1, n1, n1, n5, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n5, n1, n1, n1, n5, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n5, n1, n1, n1, n5, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n5, n1, n1, n1, n5,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n3, n3, n5, n5, n1,
|
||||
n2, n5, n3, n3, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n3, n3, n3,
|
||||
n3, n2, n3, n3, n3, n3, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n3, n3, n3, n3, n3, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n2, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n2, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n2, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n2,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n2, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n2, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n2, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n3, n3, n3, n2, n3, n3, n3, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n3, n3, n3, n3, n3, n3, n3, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n3, n3, n3,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n3,
|
||||
n3, n3, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
}
|
||||
}
|
||||
|
||||
df_primordial_items.get_primordial_mushroom = function()
|
||||
local rand = math.random()
|
||||
if rand < 0.3 then
|
||||
return bc_mushroom_3
|
||||
elseif rand < 0.7 then
|
||||
return bc_mushroom_5
|
||||
elseif rand < 0.975 then
|
||||
return bc_mushroom_9
|
||||
end
|
||||
return bc_mushroom_21
|
||||
end
|
||||
|
||||
minetest.register_node("df_primordial_items:mush_sapling", {
|
||||
description = S("Primordial Mushroom Spawn"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.giant_mushroom_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.giant_mushroom_usage,
|
||||
tiles = {"dfcaverns_mush_sapling.png"},
|
||||
inventory_image = "dfcaverns_mush_sapling.png",
|
||||
wield_image = "dfcaverns_mush_sapling.png",
|
||||
groups = {snappy = 3, attached_node = 1, flammable = 1, sapling = 1, light_sensitive_fungus = 11, dig_by_piston=1,destroy_by_lava_flow=1,deco_block=1, compostability=30,dig_immediate=3},
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16}
|
||||
},
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
buildable_to = true,
|
||||
walkable = false,
|
||||
is_ground_content = false,
|
||||
sounds = df_dependencies.sound_leaves(),
|
||||
use_texture_alpha = "clip",
|
||||
sunlight_propagates = true,
|
||||
_mcl_blast_resistance = 0.2,
|
||||
_mcl_hardness = 0.2,
|
||||
on_construct = function(pos)
|
||||
if df_primordial_items.primordial_mushroom_growth_permitted(pos) then
|
||||
minetest.get_node_timer(pos):start(math.random(
|
||||
df_trees.config.tree_min_growth_delay,
|
||||
df_trees.config.tree_max_growth_delay))
|
||||
end
|
||||
end,
|
||||
on_destruct = function(pos)
|
||||
minetest.get_node_timer(pos):stop()
|
||||
end,
|
||||
on_timer = function(pos, elapsed)
|
||||
if df_farming and df_farming.kill_if_sunlit(pos) then
|
||||
return
|
||||
end
|
||||
df_primordial_items.spawn_primordial_mushroom(pos)
|
||||
end,
|
||||
})
|
||||
|
||||
df_primordial_items.spawn_primordial_mushroom = function(pos)
|
||||
local mushroom = df_primordial_items.get_primordial_mushroom()
|
||||
local rotation = (math.random(1,4)-1)*90
|
||||
minetest.set_node(pos, {name="air"}) -- clear sapling so mushroom can replace it
|
||||
mapgen_helper.place_schematic(pos, mushroom, rotation)
|
||||
end
|
||||
@@ -0,0 +1,22 @@
|
||||
-- these methods should indicate whether a sapling placed at pos should bother attempting to grow.
|
||||
-- check soil conditions and biome here, for example.
|
||||
|
||||
df_primordial_items.giant_fern_growth_permitted = function(pos)
|
||||
return minetest.get_item_group(minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name, "soil") > 0
|
||||
end
|
||||
|
||||
df_primordial_items.giant_mycelium_growth_permitted = function(pos)
|
||||
return true
|
||||
end
|
||||
|
||||
df_primordial_items.jungle_mushroom_growth_permitted = function(pos)
|
||||
return minetest.get_item_group(minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name, "soil") > 0
|
||||
end
|
||||
|
||||
df_primordial_items.jungletree_growth_permitted = function(pos)
|
||||
return minetest.get_item_group(minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name, "soil") > 0
|
||||
end
|
||||
|
||||
df_primordial_items.primordial_mushroom_growth_permitted = function(pos)
|
||||
return minetest.get_item_group(minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name, "soil") > 0
|
||||
end
|
||||
@@ -0,0 +1,5 @@
|
||||
dfcaverns_mycelium_min_growth_delay (Minimum mycelium growth delay) int 240
|
||||
dfcaverns_mycelium_max_growth_delay (Maximum mycelium growth delay) int 400
|
||||
|
||||
dfcaverns_jungle_min_growth_delay (Minimum growth delay for large jungle plants) int 300
|
||||
dfcaverns_jungle_max_growth_delay (Maximum growth delay for large jungle plants) int 1500
|
||||
|
After Width: | Height: | Size: 698 B |
|
After Width: | Height: | Size: 421 B |
|
After Width: | Height: | Size: 239 B |
|
After Width: | Height: | Size: 280 B |
|
After Width: | Height: | Size: 306 B |
|
After Width: | Height: | Size: 293 B |
|
After Width: | Height: | Size: 557 B |
|
After Width: | Height: | Size: 352 B |
|
After Width: | Height: | Size: 348 B |
|
After Width: | Height: | Size: 324 B |
|
After Width: | Height: | Size: 436 B |
|
After Width: | Height: | Size: 529 B |
|
After Width: | Height: | Size: 522 B |
|
After Width: | Height: | Size: 307 B |
|
After Width: | Height: | Size: 331 B |
|
After Width: | Height: | Size: 368 B |
|
After Width: | Height: | Size: 275 B |
|
After Width: | Height: | Size: 355 B |
|
After Width: | Height: | Size: 601 B |
|
After Width: | Height: | Size: 598 B |
|
After Width: | Height: | Size: 301 B |
|
After Width: | Height: | Size: 384 B |
|
After Width: | Height: | Size: 398 B |
|
After Width: | Height: | Size: 395 B |
|
After Width: | Height: | Size: 673 B |
|
After Width: | Height: | Size: 421 B |
|
After Width: | Height: | Size: 291 B |
|
After Width: | Height: | Size: 200 B |
|
After Width: | Height: | Size: 416 B |
|
After Width: | Height: | Size: 390 B |
|
After Width: | Height: | Size: 458 B |
|
After Width: | Height: | Size: 614 B |
|
After Width: | Height: | Size: 492 B |
|
After Width: | Height: | Size: 441 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 570 B |
|
After Width: | Height: | Size: 325 B |
|
After Width: | Height: | Size: 417 B |
|
After Width: | Height: | Size: 521 B |
|
After Width: | Height: | Size: 424 B |
|
After Width: | Height: | Size: 501 B |
|
After Width: | Height: | Size: 517 B |
|
After Width: | Height: | Size: 527 B |
|
After Width: | Height: | Size: 286 B |
|
After Width: | Height: | Size: 338 B |
|
After Width: | Height: | Size: 333 B |
|
After Width: | Height: | Size: 491 B |
|
After Width: | Height: | Size: 775 B |
|
After Width: | Height: | Size: 504 B |
|
After Width: | Height: | Size: 437 B |
|
After Width: | Height: | Size: 518 B |
|
After Width: | Height: | Size: 298 B |
|
After Width: | Height: | Size: 480 B |
@@ -0,0 +1,10 @@
|
||||
All primordial item textures not explicitly listed here were created by ClockGen and licensed under the CC BY 4.0
|
||||
|
||||
Created by FaceDeer and also licened under CC BY 4.0 (as well as CC0 public domain):
|
||||
dfcaverns_mush_diced_giant_mushroom.png
|
||||
dfcaverns_mush_giant_hypha.png
|
||||
dfcaverns_mush_sapling.png
|
||||
dfcaverns_mush_mycelial_fibers.png
|
||||
|
||||
From Minetest default mod:
|
||||
dfcaverns_jungle_sapling.png
|
||||