diff --git a/mods-list b/mods-list index 75a5fbac..97fb8ef7 100644 --- a/mods-list +++ b/mods-list @@ -47,7 +47,6 @@ load_mod_nature_classic = true load_mod_homedecor_clocks = true load_mod_signs_road = true load_mod_homedecor_cobweb = true -load_mod_along_shore = true load_mod_artdeco = true load_mod_carts = true load_mod_mobs_butterfly = true @@ -78,7 +77,6 @@ load_mod_death_compass = true load_mod_facade = true load_mod_inbox = true load_mod_cloud_items = true -load_mod_flowers_plus = true load_mod_bows = true load_mod_3dmushrooms = true load_mod_minislots_engine = true @@ -272,3 +270,6 @@ load_mod_advtrains_train_japan = true load_mod_advtrains_train_industrial = true load_mod_advtrains_train_steam = true load_mod_home_vending_machines = true +load_mod_pl_sunflowers = true +load_mod_pl_seaweed = true +load_mod_pl_waterlilies = true diff --git a/mods/advtrains/advtrains/trainlogic.lua b/mods/advtrains/advtrains/trainlogic.lua index 53732a22..35c37263 100644 --- a/mods/advtrains/advtrains/trainlogic.lua +++ b/mods/advtrains/advtrains/trainlogic.lua @@ -392,7 +392,7 @@ function advtrains.train_step_b(id, train, dtime) -- interlocking speed restriction elseif train.speed_restriction then --atprint("in train_step_b: applying interlocking speed restriction",train.speed_restriction) - sit_v_cap = train.speed_restriction + sit_v_cap = math.min(sit_v_cap or math.huge, train.speed_restriction) end --apply off-track handling: diff --git a/mods/biome_lib/API.txt b/mods/biome_lib/API.txt index b2bd94d8..61c45329 100644 --- a/mods/biome_lib/API.txt +++ b/mods/biome_lib/API.txt @@ -26,7 +26,7 @@ biome_lib.register_active_spawner(sdelay, splant, sradius, schance, ssurface, sa This first function is an ABM-based spawner function originally created as part of Ironzorg's flowers mod. It has since been largely extended and -expanded. There are two ways to call this function: You can either pass it +expanded. There are two ways to call this function: You can either pass it several individual string and number parameters to use the legacy interface, or you can pass a single biome definition as a table, with all of your options spelled out nicely. This is the preferred method. @@ -135,7 +135,7 @@ biome = { -- radius. Defaults to 1 but is ignored if near_nodes -- isn't set. Bear in mind that the total area to be -- checked is equal to: - -- (near_nodes_size^2)*near_nodes_vertical*2 + -- (near_nodes_size^2)*near_nodes_vertical*2 -- For example, if size is 10 and vertical is 4, then -- the area is (10^2)*8 = 800 nodes in size, so you'll -- want to make sure you specify a value appropriate @@ -202,7 +202,7 @@ biome = { } [*] spawn_plants must be either a table or a string. If it's a table, the -values therein are treated as a list of nodenames to pick from randomly on +values therein are treated as a list of nodenames to pick from randomly on each application of the ABM code. The more nodes you can pack into this parameter to avoid making too many calls to this function, the lower the CPU load will likely be. @@ -225,7 +225,7 @@ call this function with two parameters: a table with your object's biome information, and a string, function, or table describing what to do if the engine finds a suitable surface node (see below). -The biome table contains quite a number of options, though there are fewer +The biome table contains quite a number of options, though there are fewer here than are available in the ABM-based spawner, as some stuff doesn't make sense at map-generation time. @@ -250,12 +250,21 @@ biome = { -- skipped. Avoid using excessively large radii. rarity = num, -- How rare should this object be in its biome? Larger -- values make objects more rare, via: - -- math.random(1,100) > this + -- math.random() * 100 > this + rarity_fertility -- The amount that the rarity is reduced by fertility. + = num, -- This makes the rarity field the upper bound for + -- rarity, and (rarity - rarity_fertility) the lower + -- bound. Defaults to 0. max_count = num, -- The absolute maximum number of your object that -- should be allowed to spawn in a 5x5x5 mapblock area -- (80x80x80 nodes). Defaults to 5, but be sure you -- set this to some reasonable value depending on your -- object and its size if 5 is insufficient. + tries = num, -- the number of attempts that will be made to spawn + -- an object, defaults to 2. This means if the first + -- attempt fails due to something blocking the object + -- for example, another attempt will be made in + -- another random location. seed_diff = num, -- Perlin seed-diff value. Defaults to 0, which -- causes the function to inherit the global value of -- 329. @@ -341,7 +350,7 @@ definition table as the only parameter. These are defined like so: options = { label = string, -- set this to identify the ABM for Minetest's - -- profiler. If not set, biome_lib will set it to + -- profiler. If not set, biome_lib will set it to -- "biome_lib.update_plant(): " appended with the node -- in grow_plant (or the first item if it's a table) grow_plant = "string" or {table}, -- Name(s) of the node(s) to be grown @@ -406,7 +415,7 @@ If this value is set to a simple string, this is treated as the name of the function to use to grow the plant. In this case, all of the usual growing code is executeed, but then instead of a plant being simply added to the world, grow_result is ignored and the named function is executed and passed a -few parmeters in the following general form: +few parmeters in the following general form: somefunction(pos, perlin1, perlin2) @@ -431,7 +440,7 @@ search around the given position for a neighboring wall, returning the first one it finds as a facedir value, or nil if there are no adjacent walls. If randomflag is set to true, the function will just return the facedir of any -random wall it finds adjacent to the target position. Defaults to false if +random wall it finds adjacent to the target position. Defaults to false if not specified. ===== @@ -463,7 +472,7 @@ spammy stuff. biome_lib.generate_ltree(pos, treemodel) biome_lib.grow_ltree(pos, treemodel) -In the case of the growing code and the mapgen-based tree generator code, +In the case of the growing code and the mapgen-based tree generator code, generating a tree is done via the above two calls, which in turn immediately call the usual spawn_tree() functions. This rerouting exists as a way for other mods to hook into biome_lib's tree-growing functions in general, @@ -475,7 +484,7 @@ is to be placed. 'treemodel' is the standard L-Systems tree definition table expected by the spawn_tree() function. Refer to the 'trunk' field in that table to derive the name of the tree being spawned. -biome_lib.grow_ltree(pos, treemodel) does the same sort of thing whenever a +biome_lib.grow_ltree(pos, treemodel) does the same sort of thing whenever a tree is spawned within the abm-based growing code, for example when growing a sapling into a tree. @@ -518,7 +527,7 @@ appears to be the standard now. Those values are: temperature_persistence = 0.5 temperature_scale = 150 -The way Perlin values are used by this mod, in keeping with the snow mod's +The way Perlin values are used by this mod, in keeping with the snow mod's apparent methods, larger values returned by the Perlin function represent *colder* temperatures. In this mod, the following table gives a rough approximation of how temperature maps to these values, normalized to @@ -542,7 +551,7 @@ Perlin Approx. Temperature Included in this table are even 0.25 steps in Perlin values along with some common temperatures on both the Centigrade and Fahrenheit scales. Note that -unless you're trying to model the Moon or perhaps Mercury in your mods/maps, +unless you're trying to model the Moon or perhaps Mercury in your mods/maps, you probably won't need to bother with Perlin values of less than -0.56 or so. diff --git a/mods/biome_lib/api.lua b/mods/biome_lib/api.lua index b75beb11..352b56bd 100644 --- a/mods/biome_lib/api.lua +++ b/mods/biome_lib/api.lua @@ -73,7 +73,9 @@ function biome_lib.set_defaults(biome) biome.near_nodes_size = biome.near_nodes_size or 0 biome.near_nodes_count = biome.near_nodes_count or 1 biome.rarity = biome.rarity or 50 + biome.rarity_fertility = biome.rarity_fertility or 0 biome.max_count = biome.max_count or 125 + biome.tries = biome.tries or 2 if biome.check_air ~= false then biome.check_air = true end -- specific to abm spawner @@ -182,14 +184,18 @@ end local function populate_single_surface(biome, pos, perlin_fertile_area, checkair) local p_top = { x = pos.x, y = pos.y + 1, z = pos.z } - if math.random(1, 100) <= biome.rarity then + if biome.rarity - biome.rarity_fertility == 100 then return end local fertility, temperature, humidity = get_biome_data(pos, perlin_fertile_area) + if math.random() * 100 <= (biome.rarity - ((fertility + 1) / 2 * biome.rarity_fertility)) then + return + end + local pos_biome_ok = pos.y >= biome.min_elevation and pos.y <= biome.max_elevation - and fertility > biome.plantlife_limit + and fertility >= biome.plantlife_limit and temperature <= biome.temp_min and temperature >= biome.temp_max and humidity <= biome.humidity_min and humidity >= biome.humidity_max @@ -286,7 +292,7 @@ function biome_lib.populate_surfaces(b, nodes_or_function_or_model, snodes, chec for i = 1, math.min(math.ceil(biome.max_count/25), num_in_biome_nodes) do local tries = 0 local spawned = false - while tries < 2 and not spawned do + while tries < biome.tries and not spawned do local pos = in_biome_nodes[math.random(1, num_in_biome_nodes)] local will_place = true diff --git a/mods/home_workshop_modpack/computers/README.txt b/mods/home_workshop_modpack/computers/README.txt index f7fccdef..2059ea50 100644 --- a/mods/home_workshop_modpack/computers/README.txt +++ b/mods/home_workshop_modpack/computers/README.txt @@ -1,6 +1,7 @@  Decorative Computers Mod for Minetest -by Diego Martínez +by Diego Martínez and contributors +license [MIT](https://spdx.org/licenses/MIT.html) How to install: Unzip the archive an place it in minetest-base-directory/mods/minetest/ @@ -46,4 +47,4 @@ Thanks to all the people in the forums and the #minetest IRC channel for was you ;) ). See also: -http://minetest.net/ +http://minetest.net/ \ No newline at end of file diff --git a/mods/home_workshop_modpack/computers/computers.lua b/mods/home_workshop_modpack/computers/computers.lua index c1a7d1a9..6596d776 100644 --- a/mods/home_workshop_modpack/computers/computers.lua +++ b/mods/home_workshop_modpack/computers/computers.lua @@ -80,7 +80,7 @@ minetest.register_node("computers:piepad", { walkable = false, groups = {oddly_breakable_by_hand=2}, selection_box = {type = "wallmounted"}, - sounds = default.node_sound_wood_defaults() + sounds = default and default.node_sound_wood_defaults() or nil }) -- Commodore 64 lookalike @@ -173,7 +173,7 @@ minetest.register_node("computers:router", { paramtype2 = "facedir", walkable = false, groups = {snappy=3}, - sound = default.node_sound_wood_defaults(), + sound = default and default.node_sound_wood_defaults() or nil, drawtype = "nodebox", node_box = { type = "fixed", @@ -201,7 +201,7 @@ minetest.register_node("computers:tower", { paramtype = "light", paramtype2 = "facedir", groups = {snappy=3}, - sound = default.node_sound_wood_defaults(), + sound = default and default.node_sound_wood_defaults() or nil, selection_box = pct_cbox, collision_box = pct_cbox }) @@ -230,7 +230,7 @@ minetest.register_node("computers:server", { type = "fixed", fixed = {-0.5, -0.5, -0.25, 0.5, 1.125, 0.4375} }, - sounds = default.node_sound_wood_defaults(), + sounds = default and default.node_sound_wood_defaults() or nil, on_rightclick = function(pos, node, clicker, itemstack) node.name = "computers:server_on" minetest.set_node(pos, node) @@ -269,7 +269,7 @@ minetest.register_node("computers:server_on", { type = "fixed", fixed = {-0.5, -0.5, -0.25, 0.5, 1.125, 0.4375} }, - sounds = default.node_sound_wood_defaults(), + sounds = default and default.node_sound_wood_defaults() or nil, drop = 'computers:server', on_rightclick = function(pos, node, clicker, itemstack) node.name = "computers:server" @@ -289,7 +289,7 @@ minetest.register_node("computers:printer", { paramtype2 = "facedir", walkable = true, groups = {snappy=3}, - sound = default.node_sound_wood_defaults(), + sound = default and default.node_sound_wood_defaults() or nil, drawtype = "nodebox", node_box = { type = "fixed", diff --git a/mods/home_workshop_modpack/computers/gaming.lua b/mods/home_workshop_modpack/computers/gaming.lua index cab3eff7..9fc16751 100644 --- a/mods/home_workshop_modpack/computers/gaming.lua +++ b/mods/home_workshop_modpack/computers/gaming.lua @@ -298,8 +298,7 @@ local function step(pos, fields) t.score, close, buttons } - meta:set_string("formspec", concat(scr) - ..default.gui_bg..default.gui_bg_img..default.gui_slots) + meta:set_string("formspec", concat(scr)) meta:set_string("tetris", minetest.serialize(t)) end @@ -326,8 +325,7 @@ minetest.register_node("computers:tetris_arcade", { on_construct = function(pos) local meta = minetest.get_meta(pos) meta:set_string("formspec", formsize - .."button[2,2.5;2,2;new;"..minetest.formspec_escape(S("New Game")).."]" - ..default.gui_bg..default.gui_bg_img..default.gui_slots) + .."button[2,2.5;2,2;new;"..minetest.formspec_escape(S("New Game")).."]") end, on_timer = function(pos) return step(pos, nil) diff --git a/mods/home_workshop_modpack/computers/init.lua b/mods/home_workshop_modpack/computers/init.lua index c017277a..e3cc6d11 100644 --- a/mods/home_workshop_modpack/computers/init.lua +++ b/mods/home_workshop_modpack/computers/init.lua @@ -93,6 +93,9 @@ end local MODPATH = minetest.get_modpath("computers") dofile(MODPATH.."/computers.lua") -dofile(MODPATH.."/recipes.lua") dofile(MODPATH.."/gaming.lua") dofile(MODPATH.."/aliases.lua") + +if minetest.get_modpath("default") and minetest.get_modpath("basic_materials") then + dofile(MODPATH.."/recipes.lua") +end \ No newline at end of file diff --git a/mods/home_workshop_modpack/computers/mod.conf b/mods/home_workshop_modpack/computers/mod.conf index 64381f03..77e5d973 100644 --- a/mods/home_workshop_modpack/computers/mod.conf +++ b/mods/home_workshop_modpack/computers/mod.conf @@ -1,3 +1,2 @@ name = computers -depends = default, basic_materials -optional_depends = screwdriver +optional_depends = screwdriver, default, basic_materials diff --git a/mods/home_workshop_modpack/home_workshop_machines/init.lua b/mods/home_workshop_modpack/home_workshop_machines/init.lua index 30894406..3bcab6d7 100644 --- a/mods/home_workshop_modpack/home_workshop_machines/init.lua +++ b/mods/home_workshop_modpack/home_workshop_machines/init.lua @@ -17,7 +17,7 @@ minetest.register_node("home_workshop_machines:3dprinter_bedflinger", { paramtype = "light", walkable = true, groups = {snappy=3, ud_param2_colorable = 1}, - sound = default.node_sound_wood_defaults(), + sound = default and default.node_sound_wood_defaults() or nil, drawtype = "mesh", mesh = "home_workshop_machines_3dprinter_bedflinger.obj", paramtype2 = "colorwallmounted", @@ -47,7 +47,7 @@ minetest.register_node("home_workshop_machines:3dprinter_corexy", { paramtype = "light", walkable = true, groups = {snappy=3, ud_param2_colorable = 1}, - sound = default.node_sound_wood_defaults(), + sound = default and default.node_sound_wood_defaults() or nil, drawtype = "mesh", mesh = "home_workshop_machines_3dprinter_corexy.obj", paramtype2 = "colorwallmounted", diff --git a/mods/home_workshop_modpack/home_workshop_machines/mod.conf b/mods/home_workshop_modpack/home_workshop_machines/mod.conf index 9371db0d..2bcc916c 100644 --- a/mods/home_workshop_modpack/home_workshop_machines/mod.conf +++ b/mods/home_workshop_modpack/home_workshop_machines/mod.conf @@ -1,3 +1,4 @@ name = home_workshop_machines -depends = default, unifieddyes +depends = unifieddyes +optional_depends = default optional_depends = screwdriver diff --git a/mods/home_workshop_modpack/home_workshop_misc/init.lua b/mods/home_workshop_modpack/home_workshop_misc/init.lua index 855d5cea..6d9414a9 100644 --- a/mods/home_workshop_modpack/home_workshop_misc/init.lua +++ b/mods/home_workshop_modpack/home_workshop_misc/init.lua @@ -76,7 +76,7 @@ minetest.register_node("home_workshop_misc:beer_mug", { paramtype2 = "facedir", groups = { snappy=3, oddly_breakable_by_hand=3 }, walkable = false, - sounds = default.node_sound_glass_defaults(), + sounds = default and default.node_sound_glass_defaults() or nil, selection_box = beer_cbox, on_use = function(itemstack, user, pointed_thing) if not minetest.is_creative_enabled(user:get_player_name()) then @@ -96,7 +96,9 @@ else end local MODPATH = minetest.get_modpath("home_workshop_misc") -dofile(MODPATH.."/crafts.lua") +if minetest.get_modpath("default") and minetest.get_modpath("basic_materials") then + dofile(MODPATH.."/crafts.lua") +end minetest.register_alias("homedecor:tool_cabinet", "home_workshop_misc:tool_cabinet") minetest.register_alias("homedecor:tool_cabinet_bottom", "home_workshop_misc:tool_cabinet") diff --git a/mods/home_workshop_modpack/home_workshop_misc/mod.conf b/mods/home_workshop_modpack/home_workshop_misc/mod.conf index 8549a3f1..b3958bbf 100644 --- a/mods/home_workshop_modpack/home_workshop_misc/mod.conf +++ b/mods/home_workshop_modpack/home_workshop_misc/mod.conf @@ -1,3 +1,2 @@ name = home_workshop_misc -depends = default -optional_depends = currency, screwdriver, homedecor_common +optional_depends = currency, screwdriver, homedecor_common, default diff --git a/mods/morelights/morelights/init.lua b/mods/morelights/morelights/init.lua index 9f619acb..7941d479 100644 --- a/mods/morelights/morelights/init.lua +++ b/mods/morelights/morelights/init.lua @@ -149,6 +149,8 @@ end -- Use basic_materials brass if available, otherwise register our own. if minetest.get_modpath("basic_materials") then a.brass = "basic_materials:brass_ingot" +elseif minetest.get_modpath("hades_extramaterials") then + a.brass = "hades_extramaterials:brass_ingot" end local path = minetest.get_modpath("morelights") diff --git a/mods/plantlife_modpack/along_shore/init.lua b/mods/plantlife_modpack/along_shore/init.lua deleted file mode 100644 index dbaabe16..00000000 --- a/mods/plantlife_modpack/along_shore/init.lua +++ /dev/null @@ -1,9 +0,0 @@ ------------------------------------------------------------------------------------------------ -local title = "Along the Shore" -local version = "0.0.4" -local mname = "along_shore" ------------------------------------------------------------------------------------------------ - ------------------------------------------------------------------------------------------------ -print("[Mod] "..title.." ["..version.."] ["..mname.."] Loaded...") ------------------------------------------------------------------------------------------------ \ No newline at end of file diff --git a/mods/plantlife_modpack/along_shore/mod.conf b/mods/plantlife_modpack/along_shore/mod.conf deleted file mode 100644 index 8d0c9dd4..00000000 --- a/mods/plantlife_modpack/along_shore/mod.conf +++ /dev/null @@ -1,3 +0,0 @@ -name = along_shore -depends = default, biome_lib -optional_depends = flowers_plus diff --git a/mods/plantlife_modpack/along_shore/textures/along_shore_seaweed_1Darker.png b/mods/plantlife_modpack/along_shore/textures/along_shore_seaweed_1Darker.png deleted file mode 100644 index b5bd99c5..00000000 Binary files a/mods/plantlife_modpack/along_shore/textures/along_shore_seaweed_1Darker.png and /dev/null differ diff --git a/mods/plantlife_modpack/along_shore/textures/credit_textures.txt b/mods/plantlife_modpack/along_shore/textures/credit_textures.txt deleted file mode 100644 index 89b4ce71..00000000 --- a/mods/plantlife_modpack/along_shore/textures/credit_textures.txt +++ /dev/null @@ -1,30 +0,0 @@ -------------------------------------------------------------- -Credit for textures of "along_shore" -------------------------------------------------------------- -(If more than one author is listed the names are in alphabetical order) ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -FOLDER TEXTURE AUTHORS ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -../along_shore/textures along_shore_seaweed_1Darker.png Neuromancer, VanessaE ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -../along_shore/textures/old (along_shore_empty.png) (Mossmanikin) - along_shore_lilypads_1.png Mossmanikin, Neuromancer - along_shore_lilypads_2.png Mossmanikin, Neuromancer - along_shore_lilypads_3.png Mossmanikin, Neuromancer - along_shore_lilypads_4.png Mossmanikin, Neuromancer - along_shore_pondscum_1.png Neuromancer - along_shore_seaweed_1.png Neuromancer, VanessaE - along_shore_seaweed_2.png Mossmanikin, Neuromancer, VanessaE - along_shore_seaweed_3.png Mossmanikin, Neuromancer, VanessaE - along_shore_seaweed_4.png Mossmanikin, Neuromancer, VanessaE - flowers_seaweed.png Neuromancer, VanessaE - flowers_waterlily.png Mossmanikin, VanessaE - flowers_waterlily_22.5.png Mossmanikin, VanessaE - flowers_waterlily_45.png Mossmanikin, VanessaE - flowers_waterlily_67.5.png Mossmanikin, VanessaE - lillypad3Flower16x.png Neuromancer - LillyPad3x16.png Neuromancer - lillyPad5x16.png Neuromancer - MultiLilly16x.png Neuromancer - pondscum16xc.png Neuromancer ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- diff --git a/mods/plantlife_modpack/along_shore/textures/old/LillyPad3x16.png b/mods/plantlife_modpack/along_shore/textures/old/LillyPad3x16.png deleted file mode 100644 index 7d840bdb..00000000 Binary files a/mods/plantlife_modpack/along_shore/textures/old/LillyPad3x16.png and /dev/null differ diff --git a/mods/plantlife_modpack/along_shore/textures/old/MultiLilly16x.png b/mods/plantlife_modpack/along_shore/textures/old/MultiLilly16x.png deleted file mode 100644 index 474ad058..00000000 Binary files a/mods/plantlife_modpack/along_shore/textures/old/MultiLilly16x.png and /dev/null differ diff --git a/mods/plantlife_modpack/along_shore/textures/old/along_shore_empty.png b/mods/plantlife_modpack/along_shore/textures/old/along_shore_empty.png deleted file mode 100644 index 2f6464bf..00000000 Binary files a/mods/plantlife_modpack/along_shore/textures/old/along_shore_empty.png and /dev/null differ diff --git a/mods/plantlife_modpack/along_shore/textures/old/along_shore_lilypads_1.png b/mods/plantlife_modpack/along_shore/textures/old/along_shore_lilypads_1.png deleted file mode 100644 index a075ba95..00000000 Binary files a/mods/plantlife_modpack/along_shore/textures/old/along_shore_lilypads_1.png and /dev/null differ diff --git a/mods/plantlife_modpack/along_shore/textures/old/along_shore_lilypads_2.png b/mods/plantlife_modpack/along_shore/textures/old/along_shore_lilypads_2.png deleted file mode 100644 index 90f5364a..00000000 Binary files a/mods/plantlife_modpack/along_shore/textures/old/along_shore_lilypads_2.png and /dev/null differ diff --git a/mods/plantlife_modpack/along_shore/textures/old/along_shore_lilypads_3.png b/mods/plantlife_modpack/along_shore/textures/old/along_shore_lilypads_3.png deleted file mode 100644 index 94d00d2f..00000000 Binary files a/mods/plantlife_modpack/along_shore/textures/old/along_shore_lilypads_3.png and /dev/null differ diff --git a/mods/plantlife_modpack/along_shore/textures/old/along_shore_lilypads_4.png b/mods/plantlife_modpack/along_shore/textures/old/along_shore_lilypads_4.png deleted file mode 100644 index 9b6387f1..00000000 Binary files a/mods/plantlife_modpack/along_shore/textures/old/along_shore_lilypads_4.png and /dev/null differ diff --git a/mods/plantlife_modpack/along_shore/textures/old/along_shore_pondscum_1.png b/mods/plantlife_modpack/along_shore/textures/old/along_shore_pondscum_1.png deleted file mode 100644 index 35023547..00000000 Binary files a/mods/plantlife_modpack/along_shore/textures/old/along_shore_pondscum_1.png and /dev/null differ diff --git a/mods/plantlife_modpack/along_shore/textures/old/along_shore_seaweed_1.png b/mods/plantlife_modpack/along_shore/textures/old/along_shore_seaweed_1.png deleted file mode 100644 index 7595ebc9..00000000 Binary files a/mods/plantlife_modpack/along_shore/textures/old/along_shore_seaweed_1.png and /dev/null differ diff --git a/mods/plantlife_modpack/along_shore/textures/old/along_shore_seaweed_2.png b/mods/plantlife_modpack/along_shore/textures/old/along_shore_seaweed_2.png deleted file mode 100644 index 0b24730c..00000000 Binary files a/mods/plantlife_modpack/along_shore/textures/old/along_shore_seaweed_2.png and /dev/null differ diff --git a/mods/plantlife_modpack/along_shore/textures/old/along_shore_seaweed_3.png b/mods/plantlife_modpack/along_shore/textures/old/along_shore_seaweed_3.png deleted file mode 100644 index d9b7f439..00000000 Binary files a/mods/plantlife_modpack/along_shore/textures/old/along_shore_seaweed_3.png and /dev/null differ diff --git a/mods/plantlife_modpack/along_shore/textures/old/along_shore_seaweed_4.png b/mods/plantlife_modpack/along_shore/textures/old/along_shore_seaweed_4.png deleted file mode 100644 index 887c1839..00000000 Binary files a/mods/plantlife_modpack/along_shore/textures/old/along_shore_seaweed_4.png and /dev/null differ diff --git a/mods/plantlife_modpack/along_shore/textures/old/flowers_seaweed.png b/mods/plantlife_modpack/along_shore/textures/old/flowers_seaweed.png deleted file mode 100644 index 7595ebc9..00000000 Binary files a/mods/plantlife_modpack/along_shore/textures/old/flowers_seaweed.png and /dev/null differ diff --git a/mods/plantlife_modpack/along_shore/textures/old/flowers_waterlily.png b/mods/plantlife_modpack/along_shore/textures/old/flowers_waterlily.png deleted file mode 100644 index 040a3979..00000000 Binary files a/mods/plantlife_modpack/along_shore/textures/old/flowers_waterlily.png and /dev/null differ diff --git a/mods/plantlife_modpack/along_shore/textures/old/flowers_waterlily_22.5.png b/mods/plantlife_modpack/along_shore/textures/old/flowers_waterlily_22.5.png deleted file mode 100644 index c409bcba..00000000 Binary files a/mods/plantlife_modpack/along_shore/textures/old/flowers_waterlily_22.5.png and /dev/null differ diff --git a/mods/plantlife_modpack/along_shore/textures/old/flowers_waterlily_45.png b/mods/plantlife_modpack/along_shore/textures/old/flowers_waterlily_45.png deleted file mode 100644 index c870df48..00000000 Binary files a/mods/plantlife_modpack/along_shore/textures/old/flowers_waterlily_45.png and /dev/null differ diff --git a/mods/plantlife_modpack/along_shore/textures/old/flowers_waterlily_67.5.png b/mods/plantlife_modpack/along_shore/textures/old/flowers_waterlily_67.5.png deleted file mode 100644 index 5b9291b1..00000000 Binary files a/mods/plantlife_modpack/along_shore/textures/old/flowers_waterlily_67.5.png and /dev/null differ diff --git a/mods/plantlife_modpack/along_shore/textures/old/lillyPad5x16.png b/mods/plantlife_modpack/along_shore/textures/old/lillyPad5x16.png deleted file mode 100644 index 761beb95..00000000 Binary files a/mods/plantlife_modpack/along_shore/textures/old/lillyPad5x16.png and /dev/null differ diff --git a/mods/plantlife_modpack/along_shore/textures/old/lillypad3Flower16x.png b/mods/plantlife_modpack/along_shore/textures/old/lillypad3Flower16x.png deleted file mode 100644 index 541200fc..00000000 Binary files a/mods/plantlife_modpack/along_shore/textures/old/lillypad3Flower16x.png and /dev/null differ diff --git a/mods/plantlife_modpack/along_shore/textures/old/pondscum16xc.png b/mods/plantlife_modpack/along_shore/textures/old/pondscum16xc.png deleted file mode 100644 index 35023547..00000000 Binary files a/mods/plantlife_modpack/along_shore/textures/old/pondscum16xc.png and /dev/null differ diff --git a/mods/plantlife_modpack/bushes/init.lua b/mods/plantlife_modpack/bushes/init.lua index a610667c..4c57f856 100644 --- a/mods/plantlife_modpack/bushes/init.lua +++ b/mods/plantlife_modpack/bushes/init.lua @@ -8,30 +8,39 @@ -- support for i18n local S = minetest.get_translator("bushes") - abstract_bushes = {} +abstract_bushes = {} - minetest.register_node("bushes:youngtree2_bottom", { +local bushes_bush_rarity = tonumber(minetest.settings:get("bushes_bush_rarity")) or 99.9 +local bushes_bush_rarity_fertility = tonumber(minetest.settings:get("bushes_bush_rarity_fertility")) or 1.5 +local bushes_bush_fertility = tonumber(minetest.settings:get("bushes_bush_fertility")) or -1 + +local bushes_youngtrees_rarity = tonumber(minetest.settings:get("bushes_youngtrees_rarity")) or 100 +local bushes_youngtrees_rarity_fertility = tonumber(minetest.settings:get("bushes_youngtrees_rarity_fertility")) or 0.6 +local bushes_youngtrees_fertility = tonumber(minetest.settings:get("bushes_youngtrees_fertility")) or -0.5 + + +minetest.register_node("bushes:youngtree2_bottom", { description = S("Young Tree 2 (bottom)"), - drawtype="nodebox", - tiles = {"bushes_youngtree2trunk.png"}, + drawtype="nodebox", + tiles = {"bushes_youngtree2trunk.png"}, inventory_image = "bushes_youngtree2trunk_inv.png", wield_image = "bushes_youngtree2trunk_inv.png", -paramtype = "light", + paramtype = "light", walkable = false, is_ground_content = true, -node_box = { - type = "fixed", - fixed = { - --{0.375000,-0.500000,-0.500000,0.500000,0.500000,-0.375000}, --NodeBox 1 - {-0.0612,-0.500000,-0.500000,0.0612,0.500000,-0.375000}, --NodeBox 1 - } -}, + node_box = { + type = "fixed", + fixed = { + --{0.375000,-0.500000,-0.500000,0.500000,0.500000,-0.375000}, --NodeBox 1 + {-0.0612,-0.500000,-0.500000,0.0612,0.500000,-0.375000}, --NodeBox 1 + } + }, groups = {snappy=3,flammable=2,attached_node=1}, sounds = default.node_sound_leaves_defaults(), drop = 'default:stick' }) - local BushBranchCenter = { {1,1}, {3,2} } +local BushBranchCenter = { {1,1}, {3,2} } for i in pairs(BushBranchCenter) do local Num = BushBranchCenter[i][1] local TexNum = BushBranchCenter[i][2] @@ -55,8 +64,8 @@ for i in pairs(BushBranchCenter) do }, inventory_image = "bushes_branches_center_"..TexNum..".png", paramtype = "light", - paramtype2 = "facedir", - sunlight_propagates = true, + paramtype2 = "facedir", + sunlight_propagates = true, groups = { -- tree=1, -- MM: disabled because some recipes use group:tree for trunks snappy=3, @@ -81,16 +90,16 @@ for i in pairs(BushBranchSide) do --[[bottom]]"bushes_branches_center_"..TexNum..".png", --[[right]] "bushes_branches_left_"..TexNum..".png", --[[left]] "bushes_branches_right_"..TexNum..".png", -- MM: We could also mirror the previous here, ---[[back]] "bushes_branches_center_"..TexNum..".png",-- unless U really want 'em 2 B different +--[[back]] "bushes_branches_center_"..TexNum..".png",-- unless U really want 'em 2 B different --[[front]] "bushes_branches_right_"..TexNum..".png" }, node_box = { type = "fixed", fixed = { --- { left , bottom , front, right , top , back } - {0.137748,-0.491944, 0.5 ,-0.125000,-0.179444,-0.007790}, --NodeBox 1 - {0.262748,-0.185995, 0.5 ,-0.237252, 0.126505,-0.260269}, --NodeBox 2 - {0.500000, 0.125000, 0.5 ,-0.500000, 0.500000,-0.500000}, --NodeBox 3 +-- { left , bottom , front, right , top , back } + {0.137748,-0.491944, 0.5 ,-0.125000,-0.179444,-0.007790}, --NodeBox 1 + {0.262748,-0.185995, 0.5 ,-0.237252, 0.126505,-0.260269}, --NodeBox 2 + {0.500000, 0.125000, 0.5 ,-0.500000, 0.500000,-0.500000}, --NodeBox 3 }, }, selection_box = { @@ -99,8 +108,8 @@ for i in pairs(BushBranchSide) do }, inventory_image = "bushes_branches_right_"..TexNum..".png", paramtype = "light", - paramtype2 = "facedir", - sunlight_propagates = true, + paramtype2 = "facedir", + sunlight_propagates = true, groups = { -- tree=1, -- MM: disabled because some recipes use group:tree for trunks snappy=3, @@ -160,9 +169,8 @@ abstract_bushes.grow_bush = function(pos) abstract_bushes.grow_bush_node(pos,5,leaf_type) end + abstract_bushes.grow_bush_node = function(pos,dir, leaf_type) - - local right_here = {x=pos.x, y=pos.y+1, z=pos.z} local above_right_here = {x=pos.x, y=pos.y+2, z=pos.z} @@ -184,7 +192,7 @@ abstract_bushes.grow_bush_node = function(pos,dir, leaf_type) dir = 1 end - if minetest.get_node(right_here).name == "air" -- instead of check_air = true, + if minetest.get_node(right_here).name == "air" -- instead of check_air = true, or minetest.get_node(right_here).name == "default:junglegrass" then minetest.swap_node(right_here, {name="bushes:bushbranches"..bush_branch_type , param2=dir}) --minetest.chat_send_all("leaf_type: (" .. leaf_type .. ")") @@ -200,63 +208,59 @@ end biome_lib.register_on_generate({ - surface = { - "default:dirt_with_grass", - "stoneage:grass_with_silex", - "sumpf:peat", - "sumpf:sumpf" + surface = { + "default:dirt_with_grass", + "stoneage:grass_with_silex", + "sumpf:peat", + "sumpf:sumpf" + }, + rarity = bushes_bush_rarity, + rarity_fertility = bushes_bush_rarity_fertility, + plantlife_limit = bushes_bush_fertility, + min_elevation = 1, -- above sea level }, - max_count = 15, --10,15 - rarity = 101 - 4, --3,4 - min_elevation = 1, -- above sea level - plantlife_limit = -0.9, - }, - abstract_bushes.grow_bush + abstract_bushes.grow_bush ) - abstract_bushes.grow_youngtree2 = function(pos) +abstract_bushes.grow_youngtree2 = function(pos) local height = math.random(4,5) abstract_bushes.grow_youngtree_node2(pos,height) end + abstract_bushes.grow_youngtree_node2 = function(pos, height) - - local right_here = {x=pos.x, y=pos.y+1, z=pos.z} local above_right_here = {x=pos.x, y=pos.y+2, z=pos.z} local two_above_right_here = {x=pos.x, y=pos.y+3, z=pos.z} local three_above_right_here = {x=pos.x, y=pos.y+4, z=pos.z} - if minetest.get_node(right_here).name == "air" -- instead of check_air = true, + if minetest.get_node(right_here).name == "air" -- instead of check_air = true, or minetest.get_node(right_here).name == "default:junglegrass" then if height == 4 then - local two_above_right_here_south = {x=pos.x, y=pos.y+3, z=pos.z-1} - local three_above_right_here_south = {x=pos.x, y=pos.y+4, z=pos.z-1} - minetest.swap_node(right_here, {name="bushes:youngtree2_bottom"}) - minetest.swap_node(above_right_here, {name="bushes:youngtree2_bottom"}) - minetest.swap_node(two_above_right_here, {name="bushes:bushbranches2" , param2=2}) - minetest.swap_node(two_above_right_here_south, {name="bushes:bushbranches2" , param2=0}) - minetest.swap_node(three_above_right_here, {name="bushes:BushLeaves1" }) - minetest.swap_node(three_above_right_here_south, {name="bushes:BushLeaves1" }) + local two_above_right_here_south = {x=pos.x, y=pos.y+3, z=pos.z-1} + local three_above_right_here_south = {x=pos.x, y=pos.y+4, z=pos.z-1} + minetest.swap_node(right_here, {name="bushes:youngtree2_bottom"}) + minetest.swap_node(above_right_here, {name="bushes:youngtree2_bottom"}) + minetest.swap_node(two_above_right_here, {name="bushes:bushbranches2" , param2=2}) + minetest.swap_node(two_above_right_here_south, {name="bushes:bushbranches2" , param2=0}) + minetest.swap_node(three_above_right_here, {name="bushes:BushLeaves1" }) + minetest.swap_node(three_above_right_here_south, {name="bushes:BushLeaves1" }) end - end end biome_lib.register_on_generate({ - surface = { - "default:dirt_with_grass", - "stoneage:grass_with_silex", - "sumpf:peat", - "sumpf:sumpf" + surface = { + "default:dirt_with_grass", + "stoneage:grass_with_silex", + "sumpf:peat", + "sumpf:sumpf" + }, + rarity = bushes_youngtrees_rarity, + rarity_fertility = bushes_youngtrees_rarity_fertility, + plantlife_limit = bushes_youngtrees_fertility, + min_elevation = 1, -- above sea level }, - max_count = 55, --10,15 - rarity = 101 - 4, --3,4 - min_elevation = 1, -- above sea level - plantlife_limit = -0.9, - }, - abstract_bushes.grow_youngtree2 + abstract_bushes.grow_youngtree2 ) - - --http://dev.minetest.net/Node_Drawtypes diff --git a/mods/plantlife_modpack/bushes/settingtypes.txt b/mods/plantlife_modpack/bushes/settingtypes.txt new file mode 100644 index 00000000..77c5d571 --- /dev/null +++ b/mods/plantlife_modpack/bushes/settingtypes.txt @@ -0,0 +1,17 @@ +#Bush rarity % +bushes_bush_rarity (Bush rarity %) float 99.9 0 100 + +#How much the rarity is reduced by fertility % +bushes_bush_rarity_fertility (Bush rarity fertility reduction %) float 1.5 0 100 + +#Bush minimum fertility (-1 to +1) +bushes_bush_fertility (Bush minimum fertility) float -0.7 -1 1 + +#Youngtree (from bushes mod) rarity % +bushes_youngtrees_rarity (Youngtree bush rarity %) float 100 0 100 + +#How much the rarity is reduced by fertility % +bushes_youngtrees_rarity_fertility (Youngtree bush rarity fertility reduction %) float 0.6 0 100 + +#Youngtree (from bushes mod) minimum fertility (-1 to +1) +bushes_youngtrees_fertility (Youngtree bush minimum fertility) float -0.5 -1 1 diff --git a/mods/plantlife_modpack/flowers_plus/flowers-changelog.txt b/mods/plantlife_modpack/flowers_plus/flowers-changelog.txt deleted file mode 100644 index fbe75185..00000000 --- a/mods/plantlife_modpack/flowers_plus/flowers-changelog.txt +++ /dev/null @@ -1,24 +0,0 @@ -Changelog ---------- - -2012-08-06: Tweaked selection boxes on all nodes. Tweaked seaweed to use -signlike instead of raillike drawtype, (still forced to only spawn flat as -usual). Adjusted light level limits to give it more time to grow. Created -this changelog file using github commit messages as the basis. Shrunk the -geranium flower down a bit to better match the others. - -2012-08-03: Tuned out the random-numbers-inside-ABM stuff. Uses the ABM's -chance setting instead. Should be approximately the same as before, but -hopefully using a tad less CPU. Minor tweak to ABM interval/growing delay. - -2012-08-01: Added blue geranium to the collection of flowers. - -2012-07-31: Disable debug by default. - -2012-07-30: many updates over the course of the day - first commit, removed -some redundant files, added wield/inventory image entries for each item, to -force the game to draw them properly (these shouldn't be needed, must be a -bug). Tweaked spawn code so that the radius check also includes the name of -the item being spawned as well as items in group:flower, that way all items can -have a radius test, and not just those in group:flower. Fiddled with the spawn -rates a bit. diff --git a/mods/plantlife_modpack/flowers_plus/init.lua b/mods/plantlife_modpack/flowers_plus/init.lua deleted file mode 100644 index f1ad1d61..00000000 --- a/mods/plantlife_modpack/flowers_plus/init.lua +++ /dev/null @@ -1,482 +0,0 @@ --- support for i18n -local S = minetest.get_translator("flowers_plus") - --- This file supplies a few additional plants and some related crafts --- for the plantlife modpack. Last revision: 2013-04-24 - -flowers_plus = {} - -local SPAWN_DELAY = 1000 -local SPAWN_CHANCE = 200 -local flowers_seed_diff = 329 -local lilies_max_count = 320 -local lilies_rarity = 33 -local seaweed_max_count = 320 -local seaweed_rarity = 33 -local sunflowers_max_count = 10 -local sunflowers_rarity = 25 - --- register the various rotations of waterlilies - -local lilies_list = { - { nil , nil , 1 }, - { "225", "22.5" , 2 }, - { "45" , "45" , 3 }, - { "675", "67.5" , 4 }, - { "s1" , "small_1" , 5 }, - { "s2" , "small_2" , 6 }, - { "s3" , "small_3" , 7 }, - { "s4" , "small_4" , 8 }, -} - -for i in ipairs(lilies_list) do - local deg1 = "" - local deg2 = "" - local lily_groups = {snappy = 3,flammable=2,flower=1} - - if lilies_list[i][1] ~= nil then - deg1 = "_"..lilies_list[i][1] - deg2 = "_"..lilies_list[i][2] - lily_groups = { snappy = 3,flammable=2,flower=1, not_in_creative_inventory=1 } - end - - minetest.register_node(":flowers:waterlily"..deg1, { - description = S("Waterlily"), - drawtype = "nodebox", - tiles = { - "flowers_waterlily"..deg2..".png", - "flowers_waterlily"..deg2..".png^[transformFY" - }, - inventory_image = "flowers_waterlily.png", - wield_image = "flowers_waterlily.png", - sunlight_propagates = true, - paramtype = "light", - paramtype2 = "facedir", - walkable = false, - groups = lily_groups, - sounds = default.node_sound_leaves_defaults(), - selection_box = { - type = "fixed", - fixed = { -0.4, -0.5, -0.4, 0.4, -0.45, 0.4 }, - }, - node_box = { - type = "fixed", - fixed = { -0.5, -0.49, -0.5, 0.5, -0.49, 0.5 }, - }, - buildable_to = true, - node_placement_prediction = "", - - liquids_pointable = true, - drop = "flowers:waterlily", - on_place = function(itemstack, placer, pointed_thing) - local keys=placer:get_player_control() - local pt = pointed_thing - - local place_pos = nil - local top_pos = {x=pt.under.x, y=pt.under.y+1, z=pt.under.z} - local under_node = minetest.get_node(pt.under) - local above_node = minetest.get_node(pt.above) - local top_node = minetest.get_node(top_pos) - - if biome_lib.get_nodedef_field(under_node.name, "buildable_to") then - if under_node.name ~= "default:water_source" then - place_pos = pt.under - elseif top_node.name ~= "default:water_source" - and biome_lib.get_nodedef_field(top_node.name, "buildable_to") then - place_pos = top_pos - else - return - end - elseif biome_lib.get_nodedef_field(above_node.name, "buildable_to") then - place_pos = pt.above - end - - if place_pos and not minetest.is_protected(place_pos, placer:get_player_name()) then - - local nodename = "default:cobble" -- if this block appears, something went....wrong :-) - - if not keys["sneak"] then - local node = minetest.get_node(pt.under) - local waterlily = math.random(1,8) - if waterlily == 1 then - nodename = "flowers:waterlily" - elseif waterlily == 2 then - nodename = "flowers:waterlily_225" - elseif waterlily == 3 then - nodename = "flowers:waterlily_45" - elseif waterlily == 4 then - nodename = "flowers:waterlily_675" - elseif waterlily == 5 then - nodename = "flowers:waterlily_s1" - elseif waterlily == 6 then - nodename = "flowers:waterlily_s2" - elseif waterlily == 7 then - nodename = "flowers:waterlily_s3" - elseif waterlily == 8 then - nodename = "flowers:waterlily_s4" - end - minetest.swap_node(place_pos, {name = nodename, param2 = math.random(0,3) }) - else - local fdir = minetest.dir_to_facedir(placer:get_look_dir()) - minetest.swap_node(place_pos, {name = "flowers:waterlily", param2 = fdir}) - end - - if not biome_lib.expect_infinite_stacks then - itemstack:take_item() - end - return itemstack - end - end, - }) -end - -local algae_list = { {nil}, {2}, {3}, {4} } - -for i in ipairs(algae_list) do - local num = "" - local algae_groups = {snappy = 3,flammable=2,flower=1} - - if algae_list[i][1] ~= nil then - num = "_"..algae_list[i][1] - algae_groups = { snappy = 3,flammable=2,flower=1, not_in_creative_inventory=1 } - end - - minetest.register_node(":flowers:seaweed"..num, { - description = S("Seaweed"), - drawtype = "nodebox", - tiles = { - "flowers_seaweed"..num..".png", - "flowers_seaweed"..num..".png^[transformFY" - }, - inventory_image = "flowers_seaweed_2.png", - wield_image = "flowers_seaweed_2.png", - sunlight_propagates = true, - paramtype = "light", - paramtype2 = "facedir", - walkable = false, - groups = algae_groups, - sounds = default.node_sound_leaves_defaults(), - selection_box = { - type = "fixed", - fixed = { -0.4, -0.5, -0.4, 0.4, -0.45, 0.4 }, - }, - node_box = { - type = "fixed", - fixed = { -0.5, -0.49, -0.5, 0.5, -0.49, 0.5 }, - }, - buildable_to = true, - - liquids_pointable = true, - drop = "flowers:seaweed", - on_place = function(itemstack, placer, pointed_thing) - local keys=placer:get_player_control() - local pt = pointed_thing - - local place_pos = nil - local top_pos = {x=pt.under.x, y=pt.under.y+1, z=pt.under.z} - local under_node = minetest.get_node(pt.under) - local above_node = minetest.get_node(pt.above) - local top_node = minetest.get_node(top_pos) - - if biome_lib.get_nodedef_field(under_node.name, "buildable_to") then - if under_node.name ~= "default:water_source" then - place_pos = pt.under - elseif top_node.name ~= "default:water_source" - and biome_lib.get_nodedef_field(top_node.name, "buildable_to") then - place_pos = top_pos - else - return - end - elseif biome_lib.get_nodedef_field(above_node.name, "buildable_to") then - place_pos = pt.above - end - if not place_pos then return end -- something went wrong :P - - if not minetest.is_protected(place_pos, placer:get_player_name()) then - - local nodename = "default:cobble" -- :D - - if not keys["sneak"] then - --local node = minetest.get_node(pt.under) - local seaweed = math.random(1,4) - if seaweed == 1 then - nodename = "flowers:seaweed" - elseif seaweed == 2 then - nodename = "flowers:seaweed_2" - elseif seaweed == 3 then - nodename = "flowers:seaweed_3" - elseif seaweed == 4 then - nodename = "flowers:seaweed_4" - end - minetest.swap_node(place_pos, {name = nodename, param2 = math.random(0,3) }) - else - local fdir = minetest.dir_to_facedir(placer:get_look_dir()) - minetest.swap_node(place_pos, {name = "flowers:seaweed", param2 = fdir}) - end - - if not biome_lib.expect_infinite_stacks then - itemstack:take_item() - end - return itemstack - end - end, - }) -end - -local box = { - type="fixed", - fixed = { { -0.2, -0.5, -0.2, 0.2, 0.5, 0.2 } }, -} - -local sunflower_drop = "farming:seed_wheat" -if minetest.registered_items["farming:seed_spelt"] then - sunflower_drop = "farming:seed_spelt" -end - -minetest.register_node(":flowers:sunflower", { - description = S("Sunflower"), - drawtype = "mesh", - paramtype = "light", - paramtype2 = "facedir", - inventory_image = "flowers_sunflower_inv.png", - mesh = "flowers_sunflower.obj", - tiles = { "flowers_sunflower.png" }, - walkable = false, - buildable_to = true, - is_ground_content = true, - groups = { dig_immediate=3, flora=1, flammable=3, attached_node=1 }, - sounds = default.node_sound_leaves_defaults(), - selection_box = box, - collision_box = box, - drop = { - max_items = 1, - items = { - {items = {sunflower_drop}, rarity = 8}, - {items = {"flowers:sunflower"}}, - } - } -}) - -local extra_aliases = { - "waterlily", - "waterlily_225", - "waterlily_45", - "waterlily_675", - "seaweed" -} - -for i in ipairs(extra_aliases) do - local flower = extra_aliases[i] - minetest.register_alias("flowers:flower_"..flower, "flowers:"..flower) -end - -minetest.register_alias( "trunks:lilypad" , "flowers:waterlily_s1" ) -minetest.register_alias( "along_shore:lilypads_1" , "flowers:waterlily_s1" ) -minetest.register_alias( "along_shore:lilypads_2" , "flowers:waterlily_s2" ) -minetest.register_alias( "along_shore:lilypads_3" , "flowers:waterlily_s3" ) -minetest.register_alias( "along_shore:lilypads_4" , "flowers:waterlily_s4" ) -minetest.register_alias( "along_shore:pondscum_1" , "flowers:seaweed" ) -minetest.register_alias( "along_shore:seaweed_1" , "flowers:seaweed" ) -minetest.register_alias( "along_shore:seaweed_2" , "flowers:seaweed_2" ) -minetest.register_alias( "along_shore:seaweed_3" , "flowers:seaweed_3" ) -minetest.register_alias( "along_shore:seaweed_4" , "flowers:seaweed_4" ) - --- ongen registrations - -flowers_plus.grow_waterlily = function(pos) - local right_here = {x=pos.x, y=pos.y+1, z=pos.z} - for i in ipairs(lilies_list) do - local chance = math.random(1,8) - local ext = "" - local num = lilies_list[i][3] - - if lilies_list[i][1] ~= nil then - ext = "_"..lilies_list[i][1] - end - - if chance == num then - minetest.swap_node(right_here, {name="flowers:waterlily"..ext, param2=math.random(0,3)}) - end - end -end - -biome_lib.register_on_generate({ - surface = {"default:water_source"}, - max_count = lilies_max_count, - rarity = lilies_rarity, - min_elevation = 1, - max_elevation = 40, - near_nodes = {"default:dirt_with_grass"}, - near_nodes_size = 4, - near_nodes_vertical = 1, - near_nodes_count = 1, - plantlife_limit = -0.9, - temp_max = -0.22, - temp_min = 0.22, - }, - flowers_plus.grow_waterlily -) - -flowers_plus.grow_seaweed = function(pos) - local right_here = {x=pos.x, y=pos.y+1, z=pos.z} - minetest.swap_node(right_here, {name="along_shore:seaweed_"..math.random(1,4), param2=math.random(1,3)}) -end - -biome_lib.register_on_generate({ - surface = {"default:water_source"}, - max_count = seaweed_max_count, - rarity = seaweed_rarity, - min_elevation = 1, - max_elevation = 40, - near_nodes = {"default:dirt_with_grass"}, - near_nodes_size = 4, - near_nodes_vertical = 1, - near_nodes_count = 1, - plantlife_limit = -0.9, - }, - flowers_plus.grow_seaweed -) - --- seaweed at beaches --- MM: not satisfied with it, but IMHO some beaches should have some algae -biome_lib.register_on_generate({ - surface = {"default:water_source"}, - max_count = seaweed_max_count, - rarity = seaweed_rarity, - min_elevation = 1, - max_elevation = 40, - near_nodes = {"default:sand"}, - near_nodes_size = 1, - near_nodes_vertical = 0, - near_nodes_count = 3, - plantlife_limit = -0.9, - temp_max = -0.64, -- MM: more or less random values, just to make sure it's not everywhere - temp_min = -0.22, -- MM: more or less random values, just to make sure it's not everywhere - }, - flowers_plus.grow_seaweed -) -biome_lib.register_on_generate({ - surface = {"default:sand"}, - max_count = seaweed_max_count*2, - rarity = seaweed_rarity/2, - min_elevation = 1, - max_elevation = 40, - near_nodes = {"default:water_source"}, - near_nodes_size = 1, - near_nodes_vertical = 0, - near_nodes_count = 3, - plantlife_limit = -0.9, - temp_max = -0.64, -- MM: more or less random values, just to make sure it's not everywhere - temp_min = -0.22, -- MM: more or less random values, just to make sure it's not everywhere - }, - flowers_plus.grow_seaweed -) - -biome_lib.register_on_generate({ - surface = {"default:dirt_with_grass"}, - avoid_nodes = { "flowers:sunflower" }, - max_count = sunflowers_max_count, - rarity = sunflowers_rarity, - min_elevation = 0, - plantlife_limit = -0.9, - temp_max = 0.53, - random_facedir = {0,3}, - }, - "flowers:sunflower" -) - --- spawn ABM registrations - -biome_lib.register_active_spawner({ - spawn_delay = SPAWN_DELAY/2, - spawn_plants = { - "flowers:waterlily", - "flowers:waterlily_225", - "flowers:waterlily_45", - "flowers:waterlily_675", - "flowers:waterlily_s1", - "flowers:waterlily_s2", - "flowers:waterlily_s3", - "flowers:waterlily_s4" - }, - avoid_radius = 2.5, - spawn_chance = SPAWN_CHANCE*4, - spawn_surfaces = {"default:water_source"}, - avoid_nodes = {"group:flower", "group:flora" }, - seed_diff = flowers_seed_diff, - light_min = 9, - depth_max = 2, - random_facedir = {0,3} -}) - -biome_lib.register_active_spawner({ - spawn_delay = SPAWN_DELAY*2, - spawn_plants = {"flowers:seaweed"}, - spawn_chance = SPAWN_CHANCE*2, - spawn_surfaces = {"default:water_source"}, - avoid_nodes = {"group:flower", "group:flora"}, - seed_diff = flowers_seed_diff, - light_min = 4, - light_max = 10, - neighbors = {"default:dirt_with_grass"}, - facedir = 1 -}) - -biome_lib.register_active_spawner({ - spawn_delay = SPAWN_DELAY*2, - spawn_plants = {"flowers:seaweed"}, - spawn_chance = SPAWN_CHANCE*2, - spawn_surfaces = {"default:dirt_with_grass"}, - avoid_nodes = {"group:flower", "group:flora" }, - seed_diff = flowers_seed_diff, - light_min = 4, - light_max = 10, - neighbors = {"default:water_source"}, - ncount = 1, - facedir = 1 -}) - -biome_lib.register_active_spawner({ - spawn_delay = SPAWN_DELAY*2, - spawn_plants = {"flowers:seaweed"}, - spawn_chance = SPAWN_CHANCE*2, - spawn_surfaces = {"default:stone"}, - avoid_nodes = {"group:flower", "group:flora" }, - seed_diff = flowers_seed_diff, - light_min = 4, - light_max = 10, - neighbors = {"default:water_source"}, - ncount = 6, - facedir = 1 -}) - -biome_lib.register_active_spawner({ - spawn_delay = SPAWN_DELAY*2, - spawn_plants = {"flowers:sunflower"}, - spawn_chance = SPAWN_CHANCE*2, - spawn_surfaces = {"default:dirt_with_grass"}, - avoid_nodes = {"group:flower", "flowers:sunflower"}, - seed_diff = flowers_seed_diff, - light_min = 11, - light_max = 14, - min_elevation = 0, - plantlife_limit = -0.9, - temp_max = 0.53, - random_facedir = {0,3}, - avoid_radius = 5 -}) - --- Cotton plants are now provided by the default "farming" mod. --- old cotton plants -> farming cotton stage 8 --- cotton wads -> string (can be crafted into wool blocks) --- potted cotton plants -> potted white dandelions - -minetest.register_alias("flowers:cotton_plant", "farming:cotton_8") -minetest.register_alias("flowers:flower_cotton", "farming:cotton_8") -minetest.register_alias("flowers:flower_cotton_pot", "flowers:potted_dandelion_white") -minetest.register_alias("flowers:potted_cotton_plant", "flowers:potted_dandelion_white") -minetest.register_alias("flowers:cotton", "farming:string") -minetest.register_alias("flowers:cotton_wad", "farming:string") -minetest.register_alias("sunflower:sunflower", "flowers:sunflower") - -print("[Flowers] Loaded.") diff --git a/mods/plantlife_modpack/molehills/init.lua b/mods/plantlife_modpack/molehills/init.lua index 481c866c..872e987f 100644 --- a/mods/plantlife_modpack/molehills/init.lua +++ b/mods/plantlife_modpack/molehills/init.lua @@ -1,14 +1,13 @@ ----------------------------------------------------------------------------------------------- -local title = "Mole Hills" -local version = "0.0.3" -local mname = "molehills" ------------------------------------------------------------------------------------------------ -- Idea by Sokomine -- Code & textures by Mossmanikin abstract_molehills = {} -dofile(minetest.get_modpath("molehills").."/molehills_settings.txt") +local molehills_rarity = tonumber(minetest.settings:get("molehills_rarity")) or 99.5 +local molehills_rarity_fertility = tonumber(minetest.settings:get("molehills_rarity_fertility")) or 1 +local molehills_fertility = tonumber(minetest.settings:get("molehills_fertility")) or -0.6 + -- support for i18n local S = minetest.get_translator("molehills") @@ -49,11 +48,11 @@ minetest.register_craft({ -- molehills --> dirt -- GeNeRaTiNG ----------------------------------------------------------------------------------------------- abstract_molehills.place_molehill = function(pos) - local right_here = {x=pos.x , y=pos.y+1, z=pos.z } - if minetest.get_node({x=pos.x+1, y=pos.y, z=pos.z }).name ~= "air" - and minetest.get_node({x=pos.x-1, y=pos.y, z=pos.z }).name ~= "air" - and minetest.get_node({x=pos.x , y=pos.y, z=pos.z+1}).name ~= "air" - and minetest.get_node({x=pos.x , y=pos.y, z=pos.z-1}).name ~= "air" + local right_here = {x=pos.x , y=pos.y+1, z=pos.z } + if minetest.get_node({x=pos.x+1, y=pos.y, z=pos.z }).name ~= "air" + and minetest.get_node({x=pos.x-1, y=pos.y, z=pos.z }).name ~= "air" + and minetest.get_node({x=pos.x , y=pos.y, z=pos.z+1}).name ~= "air" + and minetest.get_node({x=pos.x , y=pos.y, z=pos.z-1}).name ~= "air" and minetest.get_node({x=pos.x+1, y=pos.y, z=pos.z+1}).name ~= "air" and minetest.get_node({x=pos.x+1, y=pos.y, z=pos.z-1}).name ~= "air" and minetest.get_node({x=pos.x-1, y=pos.y, z=pos.z+1}).name ~= "air" @@ -63,18 +62,14 @@ abstract_molehills.place_molehill = function(pos) end biome_lib.register_on_generate({ - surface = {"default:dirt_with_grass"}, - max_count = Molehills_Max_Count, - rarity = Molehills_Rarity, - min_elevation = 1, - max_elevation = 40, - avoid_nodes = {"group:tree","group:liquid","group:stone","group:falling_node"--[[,"air"]]}, - avoid_radius = 4, - plantlife_limit = -0.3, - }, - abstract_molehills.place_molehill + surface = {"default:dirt_with_grass"}, + rarity = molehills_rarity, + rarity_fertility = molehills_rarity_fertility, + plantlife_limit = molehills_fertility, + min_elevation = 1, + max_elevation = 40, + avoid_nodes = {"group:tree","group:liquid","group:stone","group:falling_node"--[[,"air"]]}, + avoid_radius = 4, + }, + abstract_molehills.place_molehill ) - ------------------------------------------------------------------------------------------------ -print("[Mod] "..title.." ["..version.."] ["..mname.."]".."Loaded...") ------------------------------------------------------------------------------------------------ diff --git a/mods/plantlife_modpack/molehills/molehills_settings.txt b/mods/plantlife_modpack/molehills/molehills_settings.txt deleted file mode 100644 index 1afc592d..00000000 --- a/mods/plantlife_modpack/molehills/molehills_settings.txt +++ /dev/null @@ -1,6 +0,0 @@ --- Settings for generation of stuff (at map-generation time) - -Molehills_Max_Count = 320 -- absolute maximum number in an area of 80x80x80 nodes - -Molehills_Rarity = 95 -- larger values make molehills more rare (100 means chance of 0 %) - diff --git a/mods/plantlife_modpack/molehills/settingtypes.txt b/mods/plantlife_modpack/molehills/settingtypes.txt new file mode 100644 index 00000000..a10276a8 --- /dev/null +++ b/mods/plantlife_modpack/molehills/settingtypes.txt @@ -0,0 +1,8 @@ +#Molehills rarity % +molehills_rarity (Molehills rarity %) float 99.5 0 100 + +#How much the rarity is reduced by fertility % +molehills_rarity_fertility (Molehills rarity fertility reduction %) float 1 0 100 + +#Molehills minimum fertility (-1 to +1) +molehills_fertility (Molehills minimum fertility) float -0.6 -1 1 diff --git a/mods/plantlife_modpack/pl_seaweed/init.lua b/mods/plantlife_modpack/pl_seaweed/init.lua new file mode 100644 index 00000000..7dd03928 --- /dev/null +++ b/mods/plantlife_modpack/pl_seaweed/init.lua @@ -0,0 +1,168 @@ +-- support for i18n +local S = minetest.get_translator("pl_seaweed") + +pl_seaweed = {} + +local seaweed_max_count = tonumber(minetest.settings:get("pl_seaweed_max_count")) or 320 +local seaweed_rarity = tonumber(minetest.settings:get("pl_seaweed_rarity")) or 33 + + +local algae_list = { {nil}, {2}, {3}, {4} } + +for i in ipairs(algae_list) do + local num = "" + local algae_groups = {snappy = 3,flammable=2,flower=1} + + if algae_list[i][1] ~= nil then + num = "_"..algae_list[i][1] + algae_groups = { snappy = 3,flammable=2,flower=1, not_in_creative_inventory=1 } + end + + minetest.register_node(":flowers:seaweed"..num, { + description = S("Seaweed"), + drawtype = "nodebox", + tiles = { + "flowers_seaweed"..num..".png", + "flowers_seaweed"..num..".png^[transformFY" + }, + inventory_image = "flowers_seaweed_2.png", + wield_image = "flowers_seaweed_2.png", + sunlight_propagates = true, + paramtype = "light", + paramtype2 = "facedir", + walkable = false, + groups = algae_groups, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = { -0.4, -0.5, -0.4, 0.4, -0.45, 0.4 }, + }, + node_box = { + type = "fixed", + fixed = { -0.5, -0.49, -0.5, 0.5, -0.49, 0.5 }, + }, + buildable_to = true, + + liquids_pointable = true, + drop = "flowers:seaweed", + on_place = function(itemstack, placer, pointed_thing) + local keys=placer:get_player_control() + local pt = pointed_thing + + local place_pos = nil + local top_pos = {x=pt.under.x, y=pt.under.y+1, z=pt.under.z} + local under_node = minetest.get_node(pt.under) + local above_node = minetest.get_node(pt.above) + local top_node = minetest.get_node(top_pos) + + if biome_lib.get_nodedef_field(under_node.name, "buildable_to") then + if under_node.name ~= "default:water_source" then + place_pos = pt.under + elseif top_node.name ~= "default:water_source" + and biome_lib.get_nodedef_field(top_node.name, "buildable_to") then + place_pos = top_pos + else + return + end + elseif biome_lib.get_nodedef_field(above_node.name, "buildable_to") then + place_pos = pt.above + end + if not place_pos then return end -- something went wrong :P + + if not minetest.is_protected(place_pos, placer:get_player_name()) then + + local nodename = "default:cobble" -- :D + + if not keys["sneak"] then + --local node = minetest.get_node(pt.under) + local seaweed = math.random(1,4) + if seaweed == 1 then + nodename = "flowers:seaweed" + elseif seaweed == 2 then + nodename = "flowers:seaweed_2" + elseif seaweed == 3 then + nodename = "flowers:seaweed_3" + elseif seaweed == 4 then + nodename = "flowers:seaweed_4" + end + minetest.swap_node(place_pos, {name = nodename, param2 = math.random(0,3) }) + else + local fdir = minetest.dir_to_facedir(placer:get_look_dir()) + minetest.swap_node(place_pos, {name = "flowers:seaweed", param2 = fdir}) + end + + if not biome_lib.expect_infinite_stacks then + itemstack:take_item() + end + return itemstack + end + end, + }) +end + +pl_seaweed.grow_seaweed = function(pos) + local right_here = {x=pos.x, y=pos.y+1, z=pos.z} + local seaweed = math.random(1,4) + local node_name = "flowers:seaweed" + if seaweed > 1 then + node_name = node_name .. "_" .. seaweed + end + minetest.swap_node(right_here, {name=node_name, param2=math.random(1,3)}) +end + +biome_lib.register_on_generate({ + surface = {"default:water_source"}, + max_count = seaweed_max_count, + rarity = seaweed_rarity, + min_elevation = 1, + max_elevation = 40, + near_nodes = {"default:dirt_with_grass"}, + near_nodes_size = 4, + near_nodes_vertical = 1, + near_nodes_count = 1, + plantlife_limit = -0.9, + }, + pl_seaweed.grow_seaweed +) + +-- pl_seaweed at beaches +-- MM: not satisfied with it, but IMHO some beaches should have some algae +biome_lib.register_on_generate({ + surface = {"default:water_source"}, + max_count = seaweed_max_count, + rarity = seaweed_rarity, + min_elevation = 1, + max_elevation = 40, + near_nodes = {"default:sand"}, + near_nodes_size = 1, + near_nodes_vertical = 0, + near_nodes_count = 3, + plantlife_limit = -0.9, + temp_max = -0.64, -- MM: more or less random values, just to make sure it's not everywhere + temp_min = -0.22, -- MM: more or less random values, just to make sure it's not everywhere + }, + pl_seaweed.grow_seaweed +) +biome_lib.register_on_generate({ + surface = {"default:sand"}, + max_count = seaweed_max_count*2, + rarity = seaweed_rarity/2, + min_elevation = 1, + max_elevation = 40, + near_nodes = {"default:water_source"}, + near_nodes_size = 1, + near_nodes_vertical = 0, + near_nodes_count = 3, + plantlife_limit = -0.9, + temp_max = -0.64, -- MM: more or less random values, just to make sure it's not everywhere + temp_min = -0.22, -- MM: more or less random values, just to make sure it's not everywhere + }, + pl_seaweed.grow_seaweed +) + +minetest.register_alias( "flowers:flower_seaweed" , "flowers:seaweed" ) +minetest.register_alias( "along_shore:pondscum_1" , "flowers:seaweed" ) +minetest.register_alias( "along_shore:seaweed_1" , "flowers:seaweed" ) +minetest.register_alias( "along_shore:seaweed_2" , "flowers:seaweed_2" ) +minetest.register_alias( "along_shore:seaweed_3" , "flowers:seaweed_3" ) +minetest.register_alias( "along_shore:seaweed_4" , "flowers:seaweed_4" ) diff --git a/mods/plantlife_modpack/pl_seaweed/locale/pl_seaweed.de.tr b/mods/plantlife_modpack/pl_seaweed/locale/pl_seaweed.de.tr new file mode 100644 index 00000000..89ed60d1 --- /dev/null +++ b/mods/plantlife_modpack/pl_seaweed/locale/pl_seaweed.de.tr @@ -0,0 +1,11 @@ +# textdomain: pl_seaweed + +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Xanthin, 2017. +# + + + +Seaweed=Seetang diff --git a/mods/plantlife_modpack/pl_seaweed/locale/pl_seaweed.fr.tr b/mods/plantlife_modpack/pl_seaweed/locale/pl_seaweed.fr.tr new file mode 100644 index 00000000..5a76eb8f --- /dev/null +++ b/mods/plantlife_modpack/pl_seaweed/locale/pl_seaweed.fr.tr @@ -0,0 +1,10 @@ +# textdomain: pl_seaweed + +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# fat115 , 2017. +# + + +Seaweed=Algues diff --git a/mods/plantlife_modpack/pl_seaweed/locale/pl_seaweed.tr.tr b/mods/plantlife_modpack/pl_seaweed/locale/pl_seaweed.tr.tr new file mode 100644 index 00000000..c1aa4bdf --- /dev/null +++ b/mods/plantlife_modpack/pl_seaweed/locale/pl_seaweed.tr.tr @@ -0,0 +1,10 @@ +# textdomain: pl_seaweed + +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# mahmutelmas06@hotmail.com, 2017. +# + + +Seaweed=Deniz yosunu diff --git a/mods/plantlife_modpack/pl_seaweed/locale/pl_seawood.es.tr b/mods/plantlife_modpack/pl_seaweed/locale/pl_seawood.es.tr new file mode 100644 index 00000000..2927e3c4 --- /dev/null +++ b/mods/plantlife_modpack/pl_seaweed/locale/pl_seawood.es.tr @@ -0,0 +1,10 @@ +# textdomain: pl_seaweed + +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Carlos Barraza , 2017. +# + + +Seaweed=Algas marinas diff --git a/mods/plantlife_modpack/pl_seaweed/locale/template.txt b/mods/plantlife_modpack/pl_seaweed/locale/template.txt new file mode 100644 index 00000000..1950d906 --- /dev/null +++ b/mods/plantlife_modpack/pl_seaweed/locale/template.txt @@ -0,0 +1,11 @@ +# textdomain: pl_seaweed + +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# + + + +Seaweed= diff --git a/mods/plantlife_modpack/flowers_plus/mod.conf b/mods/plantlife_modpack/pl_seaweed/mod.conf similarity index 73% rename from mods/plantlife_modpack/flowers_plus/mod.conf rename to mods/plantlife_modpack/pl_seaweed/mod.conf index a3719e71..ed99972e 100644 --- a/mods/plantlife_modpack/flowers_plus/mod.conf +++ b/mods/plantlife_modpack/pl_seaweed/mod.conf @@ -1,3 +1,3 @@ -name = flowers_plus +name = pl_seaweed depends = biome_lib optional_depends = farming, flowers diff --git a/mods/plantlife_modpack/pl_seaweed/settingtypes.txt b/mods/plantlife_modpack/pl_seaweed/settingtypes.txt new file mode 100644 index 00000000..3cb87726 --- /dev/null +++ b/mods/plantlife_modpack/pl_seaweed/settingtypes.txt @@ -0,0 +1,5 @@ +#Seaweed maximum count +pl_seaweed_max_count (Seaweed maximum count) int 320 1 1000 + +#Seaweed rarity +pl_seaweed_rarity (Seaweed rarity) int 33 0 100 diff --git a/mods/plantlife_modpack/flowers_plus/textures/flowers_seaweed.png b/mods/plantlife_modpack/pl_seaweed/textures/flowers_seaweed.png similarity index 100% rename from mods/plantlife_modpack/flowers_plus/textures/flowers_seaweed.png rename to mods/plantlife_modpack/pl_seaweed/textures/flowers_seaweed.png diff --git a/mods/plantlife_modpack/flowers_plus/textures/flowers_seaweedLight.png b/mods/plantlife_modpack/pl_seaweed/textures/flowers_seaweedLight.png similarity index 100% rename from mods/plantlife_modpack/flowers_plus/textures/flowers_seaweedLight.png rename to mods/plantlife_modpack/pl_seaweed/textures/flowers_seaweedLight.png diff --git a/mods/plantlife_modpack/flowers_plus/textures/flowers_seaweed_2.png b/mods/plantlife_modpack/pl_seaweed/textures/flowers_seaweed_2.png similarity index 100% rename from mods/plantlife_modpack/flowers_plus/textures/flowers_seaweed_2.png rename to mods/plantlife_modpack/pl_seaweed/textures/flowers_seaweed_2.png diff --git a/mods/plantlife_modpack/flowers_plus/textures/flowers_seaweed_3.png b/mods/plantlife_modpack/pl_seaweed/textures/flowers_seaweed_3.png similarity index 100% rename from mods/plantlife_modpack/flowers_plus/textures/flowers_seaweed_3.png rename to mods/plantlife_modpack/pl_seaweed/textures/flowers_seaweed_3.png diff --git a/mods/plantlife_modpack/flowers_plus/textures/flowers_seaweed_4.png b/mods/plantlife_modpack/pl_seaweed/textures/flowers_seaweed_4.png similarity index 100% rename from mods/plantlife_modpack/flowers_plus/textures/flowers_seaweed_4.png rename to mods/plantlife_modpack/pl_seaweed/textures/flowers_seaweed_4.png diff --git a/mods/plantlife_modpack/pl_sunflowers/init.lua b/mods/plantlife_modpack/pl_sunflowers/init.lua new file mode 100644 index 00000000..f997da09 --- /dev/null +++ b/mods/plantlife_modpack/pl_sunflowers/init.lua @@ -0,0 +1,55 @@ +-- support for i18n +local S = minetest.get_translator("pl_sunflowers") + +local sunflowers_max_count = tonumber(minetest.settings:get("pl_sunflowers_max_count")) or 10 +local sunflowers_rarity = tonumber(minetest.settings:get("pl_sunflowers_rarity")) or 25 + + +local box = { + type="fixed", + fixed = { { -0.2, -0.5, -0.2, 0.2, 0.5, 0.2 } }, +} + +local sunflower_drop = "farming:seed_wheat" +if minetest.registered_items["farming:seed_spelt"] then + sunflower_drop = "farming:seed_spelt" +end + +minetest.register_node(":flowers:sunflower", { + description = S("Sunflower"), + drawtype = "mesh", + paramtype = "light", + paramtype2 = "facedir", + inventory_image = "flowers_sunflower_inv.png", + mesh = "flowers_sunflower.obj", + tiles = { "flowers_sunflower.png" }, + walkable = false, + buildable_to = true, + is_ground_content = true, + groups = { dig_immediate=3, flora=1, flammable=3, attached_node=1 }, + sounds = default.node_sound_leaves_defaults(), + selection_box = box, + collision_box = box, + drop = { + max_items = 1, + items = { + {items = {sunflower_drop}, rarity = 8}, + {items = {"flowers:sunflower"}}, + } + } +}) + +biome_lib.register_on_generate({ + surface = {"default:dirt_with_grass"}, + avoid_nodes = { "flowers:sunflower" }, + max_count = sunflowers_max_count, + rarity = sunflowers_rarity, + min_elevation = 0, + plantlife_limit = -0.9, + temp_max = -0.1, + random_facedir = {0,3}, + }, + "flowers:sunflower" +) + +minetest.register_alias("sunflower:sunflower", "flowers:sunflower") diff --git a/mods/plantlife_modpack/flowers_plus/locale/flowers_plus.de.tr b/mods/plantlife_modpack/pl_sunflowers/locale/pl_sunflowers.de.tr similarity index 76% rename from mods/plantlife_modpack/flowers_plus/locale/flowers_plus.de.tr rename to mods/plantlife_modpack/pl_sunflowers/locale/pl_sunflowers.de.tr index 4eec876c..ab40a42c 100644 --- a/mods/plantlife_modpack/flowers_plus/locale/flowers_plus.de.tr +++ b/mods/plantlife_modpack/pl_sunflowers/locale/pl_sunflowers.de.tr @@ -1,4 +1,4 @@ -# textdomain: flowers_plus +# textdomain: pl_sunflowers # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER @@ -8,6 +8,4 @@ -Waterlily=Seerose -Seaweed=Seetang Sunflower=Sonnenblume diff --git a/mods/plantlife_modpack/pl_sunflowers/locale/pl_sunflowers.es.tr b/mods/plantlife_modpack/pl_sunflowers/locale/pl_sunflowers.es.tr new file mode 100644 index 00000000..b57f3b6c --- /dev/null +++ b/mods/plantlife_modpack/pl_sunflowers/locale/pl_sunflowers.es.tr @@ -0,0 +1,10 @@ +# textdomain: pl_sunflowers + +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Carlos Barraza , 2017. +# + + +Sunflower=Girasol diff --git a/mods/plantlife_modpack/flowers_plus/locale/flowers_plus.fr.tr b/mods/plantlife_modpack/pl_sunflowers/locale/pl_sunflowers.fr.tr similarity index 77% rename from mods/plantlife_modpack/flowers_plus/locale/flowers_plus.fr.tr rename to mods/plantlife_modpack/pl_sunflowers/locale/pl_sunflowers.fr.tr index 642b4bac..1c04e4fc 100644 --- a/mods/plantlife_modpack/flowers_plus/locale/flowers_plus.fr.tr +++ b/mods/plantlife_modpack/pl_sunflowers/locale/pl_sunflowers.fr.tr @@ -1,4 +1,4 @@ -# textdomain: flowers_plus +# textdomain: pl_sunflowers # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER @@ -7,6 +7,4 @@ # -Waterlily=Nénuphar -Seaweed=Algues Sunflower=Tournesol diff --git a/mods/plantlife_modpack/flowers_plus/locale/flowers_plus.tr.tr b/mods/plantlife_modpack/pl_sunflowers/locale/pl_sunflowers.tr.tr similarity index 76% rename from mods/plantlife_modpack/flowers_plus/locale/flowers_plus.tr.tr rename to mods/plantlife_modpack/pl_sunflowers/locale/pl_sunflowers.tr.tr index 859025f5..5b6409ff 100644 --- a/mods/plantlife_modpack/flowers_plus/locale/flowers_plus.tr.tr +++ b/mods/plantlife_modpack/pl_sunflowers/locale/pl_sunflowers.tr.tr @@ -1,4 +1,4 @@ -# textdomain: flowers_plus +# textdomain: pl_sunflowers # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER @@ -7,6 +7,4 @@ # -Waterlily=Nilüfer -Seaweed=Deniz yosunu Sunflower=Ayçiçeği diff --git a/mods/plantlife_modpack/flowers_plus/locale/template.txt b/mods/plantlife_modpack/pl_sunflowers/locale/template.txt similarity index 81% rename from mods/plantlife_modpack/flowers_plus/locale/template.txt rename to mods/plantlife_modpack/pl_sunflowers/locale/template.txt index 130ce1e2..46c6f0a9 100644 --- a/mods/plantlife_modpack/flowers_plus/locale/template.txt +++ b/mods/plantlife_modpack/pl_sunflowers/locale/template.txt @@ -1,4 +1,4 @@ -# textdomain: flowers_plus +# textdomain: pl_sunflowers # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER @@ -8,6 +8,4 @@ -Waterlily= -Seaweed= Sunflower= diff --git a/mods/plantlife_modpack/pl_sunflowers/mod.conf b/mods/plantlife_modpack/pl_sunflowers/mod.conf new file mode 100644 index 00000000..13327235 --- /dev/null +++ b/mods/plantlife_modpack/pl_sunflowers/mod.conf @@ -0,0 +1,3 @@ +name = pl_sunflowers +depends = biome_lib +optional_depends = farming, flowers diff --git a/mods/plantlife_modpack/flowers_plus/models/flowers_sunflower.obj b/mods/plantlife_modpack/pl_sunflowers/models/flowers_sunflower.obj similarity index 100% rename from mods/plantlife_modpack/flowers_plus/models/flowers_sunflower.obj rename to mods/plantlife_modpack/pl_sunflowers/models/flowers_sunflower.obj diff --git a/mods/plantlife_modpack/pl_sunflowers/settingtypes.txt b/mods/plantlife_modpack/pl_sunflowers/settingtypes.txt new file mode 100644 index 00000000..67af9e45 --- /dev/null +++ b/mods/plantlife_modpack/pl_sunflowers/settingtypes.txt @@ -0,0 +1,5 @@ +#Sunflowers maximum count +pl_sunflowers_max_count (Sunflowers maximum count) int 10 1 1000 + +#Sunflowers rarity +pl_sunflowers_rarity (Sunflowers rarity) int 25 0 100 diff --git a/mods/plantlife_modpack/flowers_plus/textures/flowers_sunflower.png b/mods/plantlife_modpack/pl_sunflowers/textures/flowers_sunflower.png similarity index 100% rename from mods/plantlife_modpack/flowers_plus/textures/flowers_sunflower.png rename to mods/plantlife_modpack/pl_sunflowers/textures/flowers_sunflower.png diff --git a/mods/plantlife_modpack/flowers_plus/textures/flowers_sunflower_inv.png b/mods/plantlife_modpack/pl_sunflowers/textures/flowers_sunflower_inv.png similarity index 100% rename from mods/plantlife_modpack/flowers_plus/textures/flowers_sunflower_inv.png rename to mods/plantlife_modpack/pl_sunflowers/textures/flowers_sunflower_inv.png diff --git a/mods/plantlife_modpack/pl_waterlilies/init.lua b/mods/plantlife_modpack/pl_waterlilies/init.lua new file mode 100644 index 00000000..94fc3be4 --- /dev/null +++ b/mods/plantlife_modpack/pl_waterlilies/init.lua @@ -0,0 +1,164 @@ +-- support for i18n +local S = minetest.get_translator("pl_waterlilies") + +pl_waterlilies = {} + +local lilies_max_count = tonumber(minetest.settings:get("pl_waterlilies_max_count")) or 320 +local lilies_rarity = tonumber(minetest.settings:get("pl_waterlilies_rarity")) or 33 + + +local lilies_list = { + { nil , nil , 1 }, + { "225", "22.5" , 2 }, + { "45" , "45" , 3 }, + { "675", "67.5" , 4 }, + { "s1" , "small_1" , 5 }, + { "s2" , "small_2" , 6 }, + { "s3" , "small_3" , 7 }, + { "s4" , "small_4" , 8 }, +} + +for i in ipairs(lilies_list) do + local deg1 = "" + local deg2 = "" + local lily_groups = {snappy = 3,flammable=2,flower=1} + + if lilies_list[i][1] ~= nil then + deg1 = "_"..lilies_list[i][1] + deg2 = "_"..lilies_list[i][2] + lily_groups = { snappy = 3,flammable=2,flower=1, not_in_creative_inventory=1 } + end + + minetest.register_node(":flowers:waterlily"..deg1, { + description = S("Waterlily"), + drawtype = "nodebox", + tiles = { + "flowers_waterlily"..deg2..".png", + "flowers_waterlily"..deg2..".png^[transformFY" + }, + inventory_image = "flowers_waterlily.png", + wield_image = "flowers_waterlily.png", + sunlight_propagates = true, + paramtype = "light", + paramtype2 = "facedir", + walkable = false, + groups = lily_groups, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = { -0.4, -0.5, -0.4, 0.4, -0.45, 0.4 }, + }, + node_box = { + type = "fixed", + fixed = { -0.5, -0.49, -0.5, 0.5, -0.49, 0.5 }, + }, + buildable_to = true, + node_placement_prediction = "", + + liquids_pointable = true, + drop = "flowers:waterlily", + on_place = function(itemstack, placer, pointed_thing) + local keys=placer:get_player_control() + local pt = pointed_thing + + local place_pos = nil + local top_pos = {x=pt.under.x, y=pt.under.y+1, z=pt.under.z} + local under_node = minetest.get_node(pt.under) + local above_node = minetest.get_node(pt.above) + local top_node = minetest.get_node(top_pos) + + if biome_lib.get_nodedef_field(under_node.name, "buildable_to") then + if under_node.name ~= "default:water_source" then + place_pos = pt.under + elseif top_node.name ~= "default:water_source" + and biome_lib.get_nodedef_field(top_node.name, "buildable_to") then + place_pos = top_pos + else + return + end + elseif biome_lib.get_nodedef_field(above_node.name, "buildable_to") then + place_pos = pt.above + end + + if place_pos and not minetest.is_protected(place_pos, placer:get_player_name()) then + + local nodename = "default:cobble" -- if this block appears, something went....wrong :-) + + if not keys["sneak"] then + local node = minetest.get_node(pt.under) + local waterlily = math.random(1,8) + if waterlily == 1 then + nodename = "flowers:waterlily" + elseif waterlily == 2 then + nodename = "flowers:waterlily_225" + elseif waterlily == 3 then + nodename = "flowers:waterlily_45" + elseif waterlily == 4 then + nodename = "flowers:waterlily_675" + elseif waterlily == 5 then + nodename = "flowers:waterlily_s1" + elseif waterlily == 6 then + nodename = "flowers:waterlily_s2" + elseif waterlily == 7 then + nodename = "flowers:waterlily_s3" + elseif waterlily == 8 then + nodename = "flowers:waterlily_s4" + end + minetest.swap_node(place_pos, {name = nodename, param2 = math.random(0,3) }) + else + local fdir = minetest.dir_to_facedir(placer:get_look_dir()) + minetest.swap_node(place_pos, {name = "flowers:waterlily", param2 = fdir}) + end + + if not biome_lib.expect_infinite_stacks then + itemstack:take_item() + end + return itemstack + end + end, + }) +end + +pl_waterlilies.grow_waterlily = function(pos) + local right_here = {x=pos.x, y=pos.y+1, z=pos.z} + for i in ipairs(lilies_list) do + local chance = math.random(1,8) + local ext = "" + local num = lilies_list[i][3] + + if lilies_list[i][1] ~= nil then + ext = "_"..lilies_list[i][1] + end + + if chance == num then + minetest.swap_node(right_here, {name="flowers:waterlily"..ext, param2=math.random(0,3)}) + end + end +end + +biome_lib.register_on_generate({ + surface = {"default:water_source"}, + max_count = lilies_max_count, + rarity = lilies_rarity, + min_elevation = 1, + max_elevation = 40, + near_nodes = {"default:dirt_with_grass"}, + near_nodes_size = 4, + near_nodes_vertical = 1, + near_nodes_count = 1, + plantlife_limit = -0.9, + temp_max = -0.22, + temp_min = 0.22, + }, + pl_waterlilies.grow_waterlily +) + +minetest.register_alias( "flowers:flower_waterlily", "flowers:waterlily") +minetest.register_alias( "flowers:flower_waterlily_225", "flowers:waterlily_225") +minetest.register_alias( "flowers:flower_waterlily_45", "flowers:waterlily_45") +minetest.register_alias( "flowers:flower_waterlily_675", "flowers:waterlily_675") +minetest.register_alias( "trunks:lilypad" , "flowers:waterlily_s1" ) +minetest.register_alias( "along_shore:lilypads_1" , "flowers:waterlily_s1" ) +minetest.register_alias( "along_shore:lilypads_2" , "flowers:waterlily_s2" ) +minetest.register_alias( "along_shore:lilypads_3" , "flowers:waterlily_s3" ) +minetest.register_alias( "along_shore:lilypads_4" , "flowers:waterlily_s4" ) diff --git a/mods/plantlife_modpack/pl_waterlilies/locale/pl_waterlilies.de.tr b/mods/plantlife_modpack/pl_waterlilies/locale/pl_waterlilies.de.tr new file mode 100644 index 00000000..58de1f51 --- /dev/null +++ b/mods/plantlife_modpack/pl_waterlilies/locale/pl_waterlilies.de.tr @@ -0,0 +1,11 @@ +# textdomain: pl_waterlilies + +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Xanthin, 2017. +# + + + +Waterlily=Seerose diff --git a/mods/plantlife_modpack/flowers_plus/locale/flowers_plus.es.tr b/mods/plantlife_modpack/pl_waterlilies/locale/pl_waterlilies.es.tr similarity index 77% rename from mods/plantlife_modpack/flowers_plus/locale/flowers_plus.es.tr rename to mods/plantlife_modpack/pl_waterlilies/locale/pl_waterlilies.es.tr index 3e903628..bf936425 100644 --- a/mods/plantlife_modpack/flowers_plus/locale/flowers_plus.es.tr +++ b/mods/plantlife_modpack/pl_waterlilies/locale/pl_waterlilies.es.tr @@ -1,4 +1,4 @@ -# textdomain: flowers_plus +# textdomain: pl_waterlilies # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER @@ -8,5 +8,3 @@ Waterlily=Lirio de agua -Seaweed=Algas marinas -Sunflower=Girasol diff --git a/mods/plantlife_modpack/pl_waterlilies/locale/pl_waterlilies.fr.tr b/mods/plantlife_modpack/pl_waterlilies/locale/pl_waterlilies.fr.tr new file mode 100644 index 00000000..c0e0fd1e --- /dev/null +++ b/mods/plantlife_modpack/pl_waterlilies/locale/pl_waterlilies.fr.tr @@ -0,0 +1,10 @@ +# textdomain: pl_waterlilies + +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# fat115 , 2017. +# + + +Waterlily=Nénuphar diff --git a/mods/plantlife_modpack/pl_waterlilies/locale/pl_waterlilies.tr.tr b/mods/plantlife_modpack/pl_waterlilies/locale/pl_waterlilies.tr.tr new file mode 100644 index 00000000..ae05de61 --- /dev/null +++ b/mods/plantlife_modpack/pl_waterlilies/locale/pl_waterlilies.tr.tr @@ -0,0 +1,10 @@ +# textdomain: pl_waterlilies + +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# mahmutelmas06@hotmail.com, 2017. +# + + +Waterlily=Nilüfer diff --git a/mods/plantlife_modpack/pl_waterlilies/locale/template.txt b/mods/plantlife_modpack/pl_waterlilies/locale/template.txt new file mode 100644 index 00000000..bdf61b30 --- /dev/null +++ b/mods/plantlife_modpack/pl_waterlilies/locale/template.txt @@ -0,0 +1,11 @@ +# textdomain: pl_waterlillies + +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# + + + +Waterlily= diff --git a/mods/plantlife_modpack/pl_waterlilies/mod.conf b/mods/plantlife_modpack/pl_waterlilies/mod.conf new file mode 100644 index 00000000..5233adbe --- /dev/null +++ b/mods/plantlife_modpack/pl_waterlilies/mod.conf @@ -0,0 +1,3 @@ +name = pl_waterlilies +depends = biome_lib +optional_depends = farming, flowers diff --git a/mods/plantlife_modpack/pl_waterlilies/settingtypes.txt b/mods/plantlife_modpack/pl_waterlilies/settingtypes.txt new file mode 100644 index 00000000..523a6778 --- /dev/null +++ b/mods/plantlife_modpack/pl_waterlilies/settingtypes.txt @@ -0,0 +1,5 @@ +#Water-lilies maximum count +pl_waterlilies_max_count (Water-lilies maximum count) int 320 1 1000 + +#Water-lilies rarity +pl_waterlilies_rarity (Water-lilies rarity) int 33 0 100 diff --git a/mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily.png b/mods/plantlife_modpack/pl_waterlilies/textures/flowers_waterlily.png similarity index 100% rename from mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily.png rename to mods/plantlife_modpack/pl_waterlilies/textures/flowers_waterlily.png diff --git a/mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily_22.5.png b/mods/plantlife_modpack/pl_waterlilies/textures/flowers_waterlily_22.5.png similarity index 100% rename from mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily_22.5.png rename to mods/plantlife_modpack/pl_waterlilies/textures/flowers_waterlily_22.5.png diff --git a/mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily_45.png b/mods/plantlife_modpack/pl_waterlilies/textures/flowers_waterlily_45.png similarity index 100% rename from mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily_45.png rename to mods/plantlife_modpack/pl_waterlilies/textures/flowers_waterlily_45.png diff --git a/mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily_67.5.png b/mods/plantlife_modpack/pl_waterlilies/textures/flowers_waterlily_67.5.png similarity index 100% rename from mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily_67.5.png rename to mods/plantlife_modpack/pl_waterlilies/textures/flowers_waterlily_67.5.png diff --git a/mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily_small_1.png b/mods/plantlife_modpack/pl_waterlilies/textures/flowers_waterlily_small_1.png similarity index 100% rename from mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily_small_1.png rename to mods/plantlife_modpack/pl_waterlilies/textures/flowers_waterlily_small_1.png diff --git a/mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily_small_2.png b/mods/plantlife_modpack/pl_waterlilies/textures/flowers_waterlily_small_2.png similarity index 100% rename from mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily_small_2.png rename to mods/plantlife_modpack/pl_waterlilies/textures/flowers_waterlily_small_2.png diff --git a/mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily_small_3.png b/mods/plantlife_modpack/pl_waterlilies/textures/flowers_waterlily_small_3.png similarity index 100% rename from mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily_small_3.png rename to mods/plantlife_modpack/pl_waterlilies/textures/flowers_waterlily_small_3.png diff --git a/mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily_small_4.png b/mods/plantlife_modpack/pl_waterlilies/textures/flowers_waterlily_small_4.png similarity index 100% rename from mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily_small_4.png rename to mods/plantlife_modpack/pl_waterlilies/textures/flowers_waterlily_small_4.png diff --git a/mods/plantlife_modpack/trunks/generating.lua b/mods/plantlife_modpack/trunks/generating.lua index 5decb7ca..145a945d 100644 --- a/mods/plantlife_modpack/trunks/generating.lua +++ b/mods/plantlife_modpack/trunks/generating.lua @@ -4,11 +4,13 @@ -- TWiGS ----------------------------------------------------------------------------------------------- -local fakenode = { - name = "default:stone", -- could be anything that's guaranteed to exist at mapgen time, and isn't buildable_to - param1 = 0, - param2 = 0 -} +function check_node_buildable_to(pos) + local node = minetest.get_node(pos) + local def = minetest.registered_nodes[node.name] + if def then + return def.buildable_to + end +end abstract_trunks.place_twig = function(pos) local twig_size = math.random(1,27) @@ -23,25 +25,6 @@ abstract_trunks.place_twig = function(pos) local west = {x=pos.x-1, y=pos.y+1, z=pos.z } local north_west = {x=pos.x-1, y=pos.y+1, z=pos.z+1} - local node_here = minetest.get_node(right_here) - local node_north = minetest.get_node(north) - local node_n_e = minetest.get_node(north_east) - local node_east = minetest.get_node(east) - local node_s_e = minetest.get_node(south_east) - local node_south = minetest.get_node(south) - local node_s_w = minetest.get_node(south_west) - local node_west = minetest.get_node(west) - local node_n_w = minetest.get_node(north_west) - - node_north = minetest.registered_nodes[node_north.name] and node_north or fakenode - node_n_e = minetest.registered_nodes[node_n_e.name] and node_n_e or fakenode - node_east = minetest.registered_nodes[node_east.name] and node_east or fakenode - node_s_e = minetest.registered_nodes[node_s_e.name] and node_s_e or fakenode - node_south = minetest.registered_nodes[node_south.name] and node_south or fakenode - node_s_w = minetest.registered_nodes[node_s_w.name] and node_s_w or fakenode - node_west = minetest.registered_nodes[node_west.name] and node_west or fakenode - node_n_w = minetest.registered_nodes[node_n_w.name] and node_n_w or fakenode - -- small twigs if twig_size <= 16 then minetest.swap_node(right_here, {name="trunks:twig_"..math.random(1,4), param2=math.random(0,3)}) @@ -50,115 +33,115 @@ abstract_trunks.place_twig = function(pos) if Big_Twigs == true then -- big twig 1 if twig_size == 17 then - if not (minetest.registered_nodes[minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z+1}).name].buildable_to - or minetest.registered_nodes[minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z}).name].buildable_to) then + if not (check_node_buildable_to({x=pos.x+1,y=pos.y,z=pos.z+1}) + or check_node_buildable_to({x=pos.x+1,y=pos.y,z=pos.z})) then - if minetest.registered_nodes[node_here.name].buildable_to then + if check_node_buildable_to(right_here) then minetest.swap_node(right_here, {name="trunks:twig_5"}) end - if minetest.registered_nodes[node_n_e.name].buildable_to then + if check_node_buildable_to(north_east) then minetest.swap_node(north_east, {name="trunks:twig_7"}) end - if minetest.registered_nodes[node_east.name].buildable_to then + if check_node_buildable_to(east) then minetest.swap_node(east, {name="trunks:twig_8"}) end end elseif twig_size == 18 then - if not (minetest.registered_nodes[minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z-1}).name].buildable_to - or minetest.registered_nodes[minetest.get_node({x=pos.x,y=pos.y,z=pos.z-1}).name].buildable_to) then + if not (check_node_buildable_to({x=pos.x+1,y=pos.y,z=pos.z-1}) + or check_node_buildable_to({x=pos.x,y=pos.y,z=pos.z-1})) then - if minetest.registered_nodes[node_here.name].buildable_to then + if check_node_buildable_to(right_here) then minetest.swap_node(right_here, {name="trunks:twig_5", param2=1}) end - if minetest.registered_nodes[node_s_e.name].buildable_to then + if check_node_buildable_to(south_east) then minetest.swap_node(south_east, {name="trunks:twig_7", param2=1}) end - if minetest.registered_nodes[node_south.name].buildable_to then + if check_node_buildable_to(south) then minetest.swap_node(south, {name="trunks:twig_8", param2=1}) end end elseif twig_size == 19 then - if not (minetest.registered_nodes[minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z-1}).name].buildable_to - or minetest.registered_nodes[minetest.get_node({x=pos.x-1,y=pos.y,z=pos.z}).name].buildable_to) then + if not (check_node_buildable_to({x=pos.x+1,y=pos.y,z=pos.z-1}) + or check_node_buildable_to({x=pos.x-1,y=pos.y,z=pos.z})) then - if minetest.registered_nodes[node_here.name].buildable_to then + if check_node_buildable_to(right_here) then minetest.swap_node(right_here, {name="trunks:twig_5", param2=2}) end - if minetest.registered_nodes[node_s_w.name].buildable_to then + if check_node_buildable_to(south_west) then minetest.swap_node(south_west, {name="trunks:twig_7", param2=2}) end - if minetest.registered_nodes[node_west.name].buildable_to then + if check_node_buildable_to(west) then minetest.swap_node(west, {name="trunks:twig_8", param2=2}) end end elseif twig_size == 20 then - if not (minetest.registered_nodes[minetest.get_node({x=pos.x-1,y=pos.y,z=pos.z+1}).name].buildable_to - or minetest.registered_nodes[minetest.get_node({x=pos.x,y=pos.y,z=pos.z+1}).name].buildable_to) then + if not (check_node_buildable_to({x=pos.x-1,y=pos.y,z=pos.z+1}) + or check_node_buildable_to({x=pos.x,y=pos.y,z=pos.z+1})) then - if minetest.registered_nodes[node_here.name].buildable_to then + if check_node_buildable_to(right_here) then minetest.swap_node(right_here, {name="trunks:twig_5", param2=3}) end - if minetest.registered_nodes[node_n_w.name].buildable_to then + if check_node_buildable_to(north_west) then minetest.swap_node(north_west, {name="trunks:twig_7", param2=3}) end - if minetest.registered_nodes[node_north.name].buildable_to then + if check_node_buildable_to(north) then minetest.swap_node(north, {name="trunks:twig_8", param2=3}) end end -- big twig 2 elseif twig_size == 21 then - if not (minetest.registered_nodes[minetest.get_node({x=pos.x,y=pos.y,z=pos.z+1}).name].buildable_to - or minetest.registered_nodes[minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z+1}).name].buildable_to) then + if not (check_node_buildable_to({x=pos.x,y=pos.y,z=pos.z+1}) + or check_node_buildable_to({x=pos.x+1,y=pos.y,z=pos.z+1})) then - if minetest.registered_nodes[node_here.name].buildable_to then + if check_node_buildable_to(right_here) then minetest.swap_node(right_here, {name="trunks:twig_9"}) end - if minetest.registered_nodes[node_north.name].buildable_to then + if check_node_buildable_to(north) then minetest.swap_node(north, {name="trunks:twig_10"}) end - if minetest.registered_nodes[node_n_e.name].buildable_to then + if check_node_buildable_to(north_east) then minetest.swap_node(north_east, {name="trunks:twig_11"}) end end elseif twig_size == 22 then - if not (minetest.registered_nodes[minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z}).name].buildable_to - or minetest.registered_nodes[minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z-1}).name].buildable_to) then + if not (check_node_buildable_to({x=pos.x+1,y=pos.y,z=pos.z}) + or check_node_buildable_to({x=pos.x+1,y=pos.y,z=pos.z-1})) then - if minetest.registered_nodes[node_here.name].buildable_to then + if check_node_buildable_to(right_here) then minetest.swap_node(right_here, {name="trunks:twig_9", param2=1}) end - if minetest.registered_nodes[node_east.name].buildable_to then + if check_node_buildable_to(east) then minetest.swap_node(east, {name="trunks:twig_10", param2=1}) end - if minetest.registered_nodes[node_s_e.name].buildable_to then + if check_node_buildable_to(south_east) then minetest.swap_node(south_east, {name="trunks:twig_11", param2=1}) end end elseif twig_size == 23 then - if not (minetest.registered_nodes[minetest.get_node({x=pos.x,y=pos.y,z=pos.z-1}).name].buildable_to - or minetest.registered_nodes[minetest.get_node({x=pos.x-1,y=pos.y,z=pos.z-1}).name].buildable_to) then + if not (check_node_buildable_to({x=pos.x,y=pos.y,z=pos.z-1}) + or check_node_buildable_to({x=pos.x-1,y=pos.y,z=pos.z-1})) then - if minetest.registered_nodes[node_here.name].buildable_to then + if check_node_buildable_to(right_here) then minetest.swap_node(right_here, {name="trunks:twig_9", param2=2}) end - if minetest.registered_nodes[node_south.name].buildable_to then + if check_node_buildable_to(south) then minetest.swap_node(south, {name="trunks:twig_10", param2=2}) end - if minetest.registered_nodes[node_s_w.name].buildable_to then + if check_node_buildable_to(south_west) then minetest.swap_node(south_west, {name="trunks:twig_11", param2=2}) end end elseif twig_size == 24 then - if not (minetest.registered_nodes[minetest.get_node({x=pos.x-1,y=pos.y,z=pos.z}).name].buildable_to - or minetest.registered_nodes[minetest.get_node({x=pos.x-1,y=pos.y,z=pos.z+1}).name].buildable_to) then + if not (check_node_buildable_to({x=pos.x-1,y=pos.y,z=pos.z}) + or check_node_buildable_to({x=pos.x-1,y=pos.y,z=pos.z+1})) then - if minetest.registered_nodes[node_here.name].buildable_to then + if check_node_buildable_to(right_here) then minetest.swap_node(right_here, {name="trunks:twig_9", param2=3}) end - if minetest.registered_nodes[node_west.name].buildable_to then + if check_node_buildable_to(west) then minetest.swap_node(west, {name="trunks:twig_10", param2=3}) end - if minetest.registered_nodes[node_n_w.name].buildable_to then + if check_node_buildable_to(north_west) then minetest.swap_node(north_west, {name="trunks:twig_11", param2=3}) end end @@ -256,16 +239,7 @@ abstract_trunks.place_trunk = function(pos) local east = {x=pos.x+1, y=pos.y+1, z=pos.z} local east2 = {x=pos.x+2, y=pos.y+1, z=pos.z} - local node_here = minetest.get_node(right_here) - local node_north = minetest.get_node(north) - local node_north2 = minetest.get_node(north2) - local node_south = minetest.get_node(south) - local node_south2 = minetest.get_node(south2) - local node_west = minetest.get_node(west) - local node_west2 = minetest.get_node(west2) - local node_east = minetest.get_node(east) - local node_east2 = minetest.get_node(east2) - if minetest.registered_nodes[node_here.name].buildable_to then -- instead of check_air = true, + if check_node_buildable_to(right_here) then -- instead of check_air = true, for i in pairs(TRuNKS) do local MoD = TRuNKS[i][1] local TRuNK = TRuNKS[i][2] @@ -282,63 +256,63 @@ abstract_trunks.place_trunk = function(pos) end elseif trunk_type == 2 and Horizontal_Trunks == true then if minetest.get_modpath(MoD) ~= nil then - if minetest.registered_nodes[node_north.name].buildable_to then + if check_node_buildable_to(north) then minetest.swap_node(north, {name=MoD..":"..TRuNK, param2=4}) end - if length >= 4 and minetest.registered_nodes[node_north2.name].buildable_to then + if length >= 4 and check_node_buildable_to(north2) then minetest.swap_node(north2, {name=MoD..":"..TRuNK, param2=4}) end minetest.swap_node(right_here, {name=MoD..":"..TRuNK, param2=4}) - if minetest.registered_nodes[node_south.name].buildable_to then + if check_node_buildable_to(south) then minetest.swap_node(south, {name=MoD..":"..TRuNK, param2=4}) end - if length == 5 and minetest.registered_nodes[node_south2.name].buildable_to then + if length == 5 and check_node_buildable_to(south2) then minetest.swap_node(south2, {name=MoD..":"..TRuNK, param2=4}) end else - if minetest.registered_nodes[node_north.name].buildable_to then + if check_node_buildable_to(north) then minetest.swap_node(north, {name="default:tree", param2=4}) end - if length >= 4 and minetest.registered_nodes[node_north2.name].buildable_to then + if length >= 4 and check_node_buildable_to(north2) then minetest.swap_node(north2, {name="default:tree", param2=4}) end minetest.swap_node(right_here, {name="default:tree", param2=4}) - if minetest.registered_nodes[node_south.name].buildable_to then + if check_node_buildable_to(south) then minetest.swap_node(south, {name="default:tree", param2=4}) end - if length == 5 and minetest.registered_nodes[node_south2.name].buildable_to then + if length == 5 and check_node_buildable_to(south2) then minetest.swap_node(south2, {name="default:tree", param2=4}) end end elseif trunk_type == 3 and Horizontal_Trunks == true then if minetest.get_modpath(MoD) ~= nil then - if minetest.registered_nodes[node_west.name].buildable_to then + if check_node_buildable_to(west) then minetest.swap_node(west, {name=MoD..":"..TRuNK, param2=12}) end - if length >= 4 and minetest.registered_nodes[node_west2.name].buildable_to then + if length >= 4 and check_node_buildable_to(west2) then minetest.swap_node(west2, {name=MoD..":"..TRuNK, param2=12}) end minetest.swap_node(right_here, {name=MoD..":"..TRuNK, param2=12}) - if minetest.registered_nodes[node_east.name].buildable_to then + if check_node_buildable_to(east) then minetest.swap_node(east, {name=MoD..":"..TRuNK, param2=12}) end - if length == 5 and minetest.registered_nodes[node_east2.name].buildable_to then + if length == 5 and check_node_buildable_to(east2) then minetest.swap_node(east2, {name=MoD..":"..TRuNK, param2=12}) end else - if minetest.registered_nodes[node_west.name].buildable_to then + if check_node_buildable_to(west) then minetest.swap_node(west, {name="default:tree", param2=12}) end - if length >= 4 and minetest.registered_nodes[node_west2.name].buildable_to then + if length >= 4 and check_node_buildable_to(west2) then minetest.swap_node(west2, {name="default:tree", param2=12}) end minetest.swap_node(right_here, {name="default:tree", param2=12}) - if minetest.registered_nodes[node_east.name].buildable_to then + if check_node_buildable_to(east) then minetest.swap_node(east, {name="default:tree", param2=12}) end - if length == 5 and minetest.registered_nodes[node_east2.name].buildable_to then + if length == 5 and check_node_buildable_to(east2) then minetest.swap_node(east2, {name="default:tree", param2=12}) end end @@ -413,17 +387,9 @@ abstract_trunks.grow_moss_on_trunk = function(pos) local at_side_e = {x=pos.x+1, y=pos.y, z=pos.z} local at_side_s = {x=pos.x, y=pos.y, z=pos.z-1} local at_side_w = {x=pos.x-1, y=pos.y, z=pos.z} - local undrneath = {x=pos.x, y=pos.y-1, z=pos.z} - - local node_here = minetest.get_node(on_ground) - local node_north = minetest.get_node(at_side_n) - local node_east = minetest.get_node(at_side_e) - local node_south = minetest.get_node(at_side_s) - local node_west = minetest.get_node(at_side_w) - local node_under = minetest.get_node(undrneath) --if minetest.get_item_group(node_under.name, "tree") < 1 then - if minetest.registered_nodes[node_here.name].buildable_to then + if check_node_buildable_to(on_ground) then local moss_type = math.random(1,41) local rot = math.random(0,3) if moss_type == 1 then @@ -432,7 +398,7 @@ abstract_trunks.grow_moss_on_trunk = function(pos) minetest.swap_node(on_ground, {name="trunks:moss_plain_"..rot, param2=1}) end end - if minetest.registered_nodes[node_north.name].buildable_to then + if check_node_buildable_to(at_side_n) then local moss_type = math.random(1,31) -- cliche of more moss at north local rot = math.random(0,3) if moss_type == 1 then @@ -441,7 +407,7 @@ abstract_trunks.grow_moss_on_trunk = function(pos) minetest.swap_node(at_side_n, {name="trunks:moss_plain_"..rot, param2=5}) end end - if minetest.registered_nodes[node_east.name].buildable_to then + if check_node_buildable_to(at_side_e) then local moss_type = math.random(1,41) local rot = math.random(0,3) if moss_type == 1 then @@ -450,7 +416,7 @@ abstract_trunks.grow_moss_on_trunk = function(pos) minetest.swap_node(at_side_e, {name="trunks:moss_plain_"..rot, param2=3}) end end - if minetest.registered_nodes[node_south.name].buildable_to then + if check_node_buildable_to(at_side_s) then local moss_type = math.random(1,41) local rot = math.random(0,3) if moss_type == 1 then @@ -459,7 +425,7 @@ abstract_trunks.grow_moss_on_trunk = function(pos) minetest.swap_node(at_side_s, {name="trunks:moss_plain_"..rot, param2=4}) end end - if minetest.registered_nodes[node_west.name].buildable_to then + if check_node_buildable_to(at_side_w) then local moss_type = math.random(1,41) local rot = math.random(0,3) if moss_type == 1 then @@ -520,10 +486,6 @@ abstract_trunks.grow_roots = function(pos) local node_here = minetest.get_node(right_here) local node_below = minetest.get_node(below) - local node_north = minetest.get_node(north) - local node_east = minetest.get_node(east) - local node_south = minetest.get_node(south) - local node_west = minetest.get_node(west) for i in pairs(TRuNKS) do local MoD = TRuNKS[i][1] @@ -532,16 +494,16 @@ abstract_trunks.grow_roots = function(pos) and node_here.name == MoD..":"..TRuNK and string.find(node_below.name, "dirt") and node_here.param2 == 0 then - if minetest.registered_nodes[node_north.name].buildable_to then + if check_node_buildable_to(north) then minetest.swap_node(north, {name="trunks:"..TRuNK.."root", param2=2}) end - if minetest.registered_nodes[node_east.name].buildable_to then + if check_node_buildable_to(east) then minetest.swap_node(east, {name="trunks:"..TRuNK.."root", param2=3}) end - if minetest.registered_nodes[node_south.name].buildable_to then + if check_node_buildable_to(south) then minetest.swap_node(south, {name="trunks:"..TRuNK.."root", param2=0}) end - if minetest.registered_nodes[node_west.name].buildable_to then + if check_node_buildable_to(west) then minetest.swap_node(west, {name="trunks:"..TRuNK.."root", param2=1}) end end diff --git a/mods/plantlife_modpack/vines/init.lua b/mods/plantlife_modpack/vines/init.lua index 7873e54a..f38f9694 100644 --- a/mods/plantlife_modpack/vines/init.lua +++ b/mods/plantlife_modpack/vines/init.lua @@ -11,8 +11,8 @@ local enable_side = minetest.settings:get_bool("vines_enable_side", true) local enable_jungle = minetest.settings:get_bool("vines_enable_jungle", true) local enable_willow = minetest.settings:get_bool("vines_enable_willow", true) -local default_rarity = 75 -local rarity_roots = tonumber(minetest.settings:get("vines_rarity_roots")) or default_rarity +local rarity_roots = tonumber(minetest.settings:get("vines_rarity_roots")) or 70 +local default_rarity = 95 local rarity_standard = tonumber(minetest.settings:get("vines_rarity_standard")) or default_rarity local rarity_side = tonumber(minetest.settings:get("vines_rarity_side")) or default_rarity local rarity_jungle = tonumber(minetest.settings:get("vines_rarity_jungle")) or default_rarity @@ -43,7 +43,7 @@ local function on_dig(pos, node, player) drop_item = vine_name_end end - wielded_item = player:get_wielded_item() + wielded_item = player and player:get_wielded_item() if wielded_item then wielded_item:add_wear(1) if wielded_item:get_name() == 'vines:shears' then @@ -371,6 +371,7 @@ if enable_roots ~= false then spawn_on_bottom = true, plantlife_limit = -0.6, rarity = rarity_roots, + tries = 3, humidity_min = 0.4, temp_min = 0.4, }) @@ -395,6 +396,7 @@ if enable_standard ~= false then spawn_on_bottom = true, plantlife_limit = -0.9, rarity = rarity_standard, + tries = 1, humidity_min = 0.7, temp_min = 0.4, }) @@ -419,6 +421,7 @@ if enable_side ~= false then spawn_on_side = true, plantlife_limit = -0.9, rarity = rarity_side, + tries = 1, humidity_min = 0.4, temp_min = 0.4, }) @@ -451,6 +454,7 @@ if enable_jungle ~= false then spawn_on_side = true, plantlife_limit = -0.9, rarity = rarity_jungle, + tries = 1, humidity_min = 0.2, temp_min = 0.3, }) @@ -473,6 +477,7 @@ if enable_willow ~= false then spawn_on_side = true, surface = {"moretrees:willow_leaves"}, rarity = rarity_willow, + tries = 1, humidity_min = 0.5, temp_min = 0.5, }) diff --git a/mods/plantlife_modpack/vines/settingtypes.txt b/mods/plantlife_modpack/vines/settingtypes.txt index a1936bf6..6a5d0fb7 100644 --- a/mods/plantlife_modpack/vines/settingtypes.txt +++ b/mods/plantlife_modpack/vines/settingtypes.txt @@ -8,31 +8,31 @@ vines_enable_rope (Enable vine ropes) bool true vines_enable_roots (Enable root vines) bool true #Rarity of root vines, from 1 to 100, higher numbers are rarer. -vines_rarity_roots (Rarity of roots vines) int 75 1 100 +vines_rarity_roots (Rarity of roots vines) float 95 0 100 #Enables the standard type of vines. vines_enable_standard (Enable standard vines) bool true #Rarity of standard vines, from 1 to 100, higher numbers are rarer. -vines_rarity_standard (Rarity of standard vines) int 75 1 100 +vines_rarity_standard (Rarity of standard vines) float 95 0 100 #Enables the type of vines that grow on the sides of leaf blocks. vines_enable_side (Enable side vines) bool true #Rarity of side vines, from 1 to 100, higher numbers are rarer. -vines_rarity_side (Rarity of side vines) int 75 1 100 +vines_rarity_side (Rarity of side vines) float 95 0 100 #Enables jungle style vines. vines_enable_jungle (Enable jungle vines) bool true #Rarity of jungle vines, from 1 to 100, higher numbers are rarer. -vines_rarity_jungle (Rarity of jungle vines) int 75 1 100 +vines_rarity_jungle (Rarity of jungle vines) float 95 0 100 #Enables willow vines. vines_enable_willow (Enable willow vines) bool true #Rarity of willow vines, from 1 to 100, higher numbers are rarer. -vines_rarity_willow (Rarity of willow vines) int 75 1 100 +vines_rarity_willow (Rarity of willow vines) float 95 0 100 #Vine growth speed, minimum number of seconds between each growth. vines_growth_min (Minimum number of seconds between growth) int 180 1 3600 diff --git a/mods/plantlife_modpack/youngtrees/init.lua b/mods/plantlife_modpack/youngtrees/init.lua index 61c285f4..96bcb9ac 100644 --- a/mods/plantlife_modpack/youngtrees/init.lua +++ b/mods/plantlife_modpack/youngtrees/init.lua @@ -1,8 +1,12 @@ -- support for i18n local S = minetest.get_translator("youngtrees") - abstract_youngtrees = {} +local youngtrees_youngtrees_rarity = tonumber(minetest.settings:get("youngtrees_youngtrees_rarity")) or 100 +local youngtrees_youngtrees_rarity_fertility = tonumber(minetest.settings:get("youngtrees_youngtrees_rarity_fertility")) or 0.5 +local youngtrees_youngtrees_fertility = tonumber(minetest.settings:get("youngtrees_youngtrees_fertility")) or -0.3 + + minetest.register_node("youngtrees:bamboo", { description = S("Young Bamboo Tree"), drawtype="nodebox", @@ -40,7 +44,7 @@ minetest.register_node("youngtrees:youngtree2_middle",{ {-0.500000,0.125000,-0.500000,0.500000,0.500000,0.500000}, --NodeBox 3 } }, - groups = {snappy=3,flammable=2,attached_node=1}, + groups = {snappy=3,flammable=2,attached_node=1}, sounds = default.node_sound_leaves_defaults(), drop = 'trunks:twig_1' }) @@ -63,7 +67,6 @@ minetest.register_node("youngtrees:youngtree_top", { drop = 'trunks:twig_1' }) - minetest.register_node("youngtrees:youngtree_middle", { description = S("Young Tree (middle)"), drawtype = "plantlike", @@ -82,8 +85,6 @@ minetest.register_node("youngtrees:youngtree_middle", { drop = 'trunks:twig_1' }) - - minetest.register_node("youngtrees:youngtree_bottom", { description = S("Young Tree (bottom)"), drawtype = "plantlike", @@ -103,47 +104,46 @@ minetest.register_node("youngtrees:youngtree_bottom", { }) - abstract_youngtrees.grow_youngtree = function(pos) +abstract_youngtrees.grow_youngtree = function(pos) local height = math.random(1,3) abstract_youngtrees.grow_youngtree_node(pos,height) end + abstract_youngtrees.grow_youngtree_node = function(pos, height) - - local right_here = {x=pos.x, y=pos.y+1, z=pos.z} local above_right_here = {x=pos.x, y=pos.y+2, z=pos.z} - if minetest.get_node(right_here).name == "air" -- instead of check_air = true, + if minetest.get_node(right_here).name == "air" -- instead of check_air = true, or minetest.get_node(right_here).name == "default:junglegrass" then if height == 1 then - minetest.swap_node(right_here, {name="youngtrees:youngtree_top"}) + minetest.swap_node(right_here, {name="youngtrees:youngtree_top"}) end if height == 2 then - minetest.swap_node(right_here, {name="youngtrees:youngtree_bottom"}) - minetest.swap_node(above_right_here, {name="youngtrees:youngtree_top"}) + minetest.swap_node(right_here, {name="youngtrees:youngtree_bottom"}) + minetest.swap_node(above_right_here, {name="youngtrees:youngtree_top"}) end if height == 3 then - local two_above_right_here = {x=pos.x, y=pos.y+3, z=pos.z} - minetest.swap_node(right_here, {name="youngtrees:youngtree_bottom"}) - minetest.swap_node(above_right_here, {name="youngtrees:youngtree_middle"}) - minetest.swap_node(two_above_right_here, {name="youngtrees:youngtree_top"}) + local two_above_right_here = {x=pos.x, y=pos.y+3, z=pos.z} + minetest.swap_node(right_here, {name="youngtrees:youngtree_bottom"}) + minetest.swap_node(above_right_here, {name="youngtrees:youngtree_middle"}) + minetest.swap_node(two_above_right_here, {name="youngtrees:youngtree_top"}) end end end biome_lib.register_on_generate({ - surface = { - "default:dirt_with_grass", - "stoneage:grass_with_silex", - "sumpf:peat", - "sumpf:sumpf" + surface = { + "default:dirt_with_grass", + "stoneage:grass_with_silex", + "sumpf:peat", + "sumpf:sumpf" + }, + rarity = youngtrees_youngtrees_rarity, + rarity_fertility = youngtrees_youngtrees_rarity_fertility, + plantlife_limit = youngtrees_youngtrees_fertility, + min_elevation = 1, -- above sea level }, - max_count = 55, --10,15 - rarity = 101 - 4, --3,4 - min_elevation = 1, -- above sea level - plantlife_limit = -0.9, - }, - abstract_youngtrees.grow_youngtree + abstract_youngtrees.grow_youngtree ) diff --git a/mods/plantlife_modpack/youngtrees/settingtypes.txt b/mods/plantlife_modpack/youngtrees/settingtypes.txt new file mode 100644 index 00000000..d9e6cfd8 --- /dev/null +++ b/mods/plantlife_modpack/youngtrees/settingtypes.txt @@ -0,0 +1,8 @@ +#Youngtree rarity % +youngtrees_youngtrees_rarity (Youngtree rarity %) float 100 0 100 + +#How much the rarity is reduced by fertility % +youngtrees_youngtrees_rarity_fertility (Youngtree rarity fertility reduction %) float 0.5 0 100 + +#Youngtree minimum fertility (-1 to +1) +youngtrees_youngtrees_fertility (Youngtree minimum fertility) float -0.3 -1 1 diff --git a/mods/skinsdb/meta/character_2145.txt b/mods/skinsdb/meta/character_2145.txt new file mode 100644 index 00000000..8dfdc1b7 --- /dev/null +++ b/mods/skinsdb/meta/character_2145.txt @@ -0,0 +1,3 @@ +Haruko +tractionmain +CC BY-NC-SA 3.0 diff --git a/mods/skinsdb/meta/character_2146.txt b/mods/skinsdb/meta/character_2146.txt new file mode 100644 index 00000000..b1be8d02 --- /dev/null +++ b/mods/skinsdb/meta/character_2146.txt @@ -0,0 +1,3 @@ +Haruko +Grampsman +CC BY-NC-SA 3.0 diff --git a/mods/skinsdb/meta/character_2147.txt b/mods/skinsdb/meta/character_2147.txt new file mode 100644 index 00000000..f23293a0 --- /dev/null +++ b/mods/skinsdb/meta/character_2147.txt @@ -0,0 +1,3 @@ +Tom From SkyBlock Telesight Server +yotuderconnect +CC 0 (1.0) diff --git a/mods/skinsdb/textures/character_2145.png b/mods/skinsdb/textures/character_2145.png new file mode 100644 index 00000000..39d4cfab Binary files /dev/null and b/mods/skinsdb/textures/character_2145.png differ diff --git a/mods/skinsdb/textures/character_2146.png b/mods/skinsdb/textures/character_2146.png new file mode 100644 index 00000000..9f0900c7 Binary files /dev/null and b/mods/skinsdb/textures/character_2146.png differ diff --git a/mods/skinsdb/textures/character_2147.png b/mods/skinsdb/textures/character_2147.png new file mode 100644 index 00000000..2c35ec3d Binary files /dev/null and b/mods/skinsdb/textures/character_2147.png differ diff --git a/mods/tubelib2/depends.txt b/mods/tubelib2/depends.txt index 9207dab8..60f8390c 100644 --- a/mods/tubelib2/depends.txt +++ b/mods/tubelib2/depends.txt @@ -1,2 +1,2 @@ -default +default? intllib? diff --git a/mods/unified_inventory/internal.lua b/mods/unified_inventory/internal.lua index 6449979c..b49906e7 100644 --- a/mods/unified_inventory/internal.lua +++ b/mods/unified_inventory/internal.lua @@ -332,7 +332,9 @@ function ui.apply_filter(player, filter, search_dir) return true end else - local lang = minetest.get_player_information(player_name).lang_code + local player_info = minetest.get_player_information(player_name) + local lang = player_info and player_info.lang_code or "" + ffilter = function(name, def) local lname = string.lower(name) local ldesc = string.lower(def.description) diff --git a/mods/unified_inventory/register.lua b/mods/unified_inventory/register.lua index 387dbd51..8dc20f00 100644 --- a/mods/unified_inventory/register.lua +++ b/mods/unified_inventory/register.lua @@ -499,6 +499,14 @@ local function craftguide_craft(player, formname, fields) local alternate = ui.alternate[player_name] local craft = crafts[alternate] + if not craft.width then + if not craft.output then + minetest.log("warning", "[unified_inventory] Craft has no output.") + else + minetest.log("warning", ("[unified_inventory] Craft for '%s' has no width."):format(craft.output)) + end + return + end if craft.width > 3 then return end ui.craftguide_match_craft(player, "main", "craft", craft, amount) diff --git a/mods/xdecor/locale/template.txt b/mods/xdecor/locale/template.txt index 17e37b4a..4addddd9 100644 --- a/mods/xdecor/locale/template.txt +++ b/mods/xdecor/locale/template.txt @@ -36,6 +36,7 @@ check= Bowl= Bowl of soup= Cauldron= +Cauldron (active)= Cauldron (active) - Drop foods inside to make a soup= Cauldron (active) - Use a bowl to eat the soup= Cauldron (empty)= diff --git a/mods/xdecor/locale/xdecor.de.tr b/mods/xdecor/locale/xdecor.de.tr index 4188623e..bdff7694 100644 --- a/mods/xdecor/locale/xdecor.de.tr +++ b/mods/xdecor/locale/xdecor.de.tr @@ -34,6 +34,7 @@ check=Schach Bowl=Schüssel Bowl of soup=Suppenschüssel Cauldron=Kessel +Cauldron (active)=Kessel (aktiv) Cauldron (active) - Drop foods inside to make a soup=Kessel (aktiv) - Nahrungsmittel einwerfen, um Suppe zu machen. Cauldron (active) - Use a bowl to eat the soup=Kessel (aktiv) - Benutze eine Schüssel, um die Suppe zu essen Cauldron (empty)=Kessel (leer) diff --git a/mods/xdecor/locale/xdecor.fr.tr b/mods/xdecor/locale/xdecor.fr.tr index 51b3eeab..52ae1585 100644 --- a/mods/xdecor/locale/xdecor.fr.tr +++ b/mods/xdecor/locale/xdecor.fr.tr @@ -36,6 +36,7 @@ check=échec Bowl=Bol Bowl of soup=Bol de soupe Cauldron=Chaudron +Cauldron (active)=Chaudron (actif) Cauldron (active) - Drop foods inside to make a soup=Chaudron (actif) - Placez des ingrédients à l’intérieur pour faire une soupe Cauldron (active) - Use a bowl to eat the soup=Chaudron (actif) - Utilisez un bol pour boire la soupe Cauldron (empty)=Chaudron (vide) diff --git a/mods/xdecor/locale/xdecor.it.tr b/mods/xdecor/locale/xdecor.it.tr index 4007620c..f88655b0 100644 --- a/mods/xdecor/locale/xdecor.it.tr +++ b/mods/xdecor/locale/xdecor.it.tr @@ -36,6 +36,7 @@ check=scacco Bowl=Ciotola Bowl of soup=Ciotola di zuppa Cauldron=Calderone +Cauldron (active)=Calderone (attivo) Cauldron (active) - Drop foods inside to make a soup=Calderone (attivo) - Mettere gli ingredienti all'interno per fare una zuppa. Cauldron (active) - Use a bowl to eat the soup=Calderone (actif) - Utilizzare una ciotola per mangiare la zuppa Cauldron (empty)=Calderone (vuoto) diff --git a/mods/xdecor/src/cooking.lua b/mods/xdecor/src/cooking.lua index fb0699ec..8abcb142 100644 --- a/mods/xdecor/src/cooking.lua +++ b/mods/xdecor/src/cooking.lua @@ -173,6 +173,7 @@ xdecor.register("cauldron_empty", { }) xdecor.register("cauldron_idle", { + description = S("Cauldron (idle)"), groups = {cracky=2, oddly_breakable_by_hand=1, not_in_creative_inventory=1}, on_rotate = screwdriver.rotate_simple, tiles = {"xdecor_cauldron_top_idle.png", "xdecor_cauldron_sides.png"}, @@ -185,6 +186,7 @@ xdecor.register("cauldron_idle", { }) xdecor.register("cauldron_boiling", { + description = S("Cauldron (active)"), groups = {cracky=2, oddly_breakable_by_hand=1, not_in_creative_inventory=1}, on_rotate = screwdriver.rotate_simple, drop = "xdecor:cauldron_empty", @@ -207,6 +209,7 @@ xdecor.register("cauldron_boiling", { }) xdecor.register("cauldron_soup", { + description = S("Cauldron (active)"), groups = {cracky = 2, oddly_breakable_by_hand = 1, not_in_creative_inventory = 1}, on_rotate = screwdriver.rotate_simple, drop = "xdecor:cauldron_empty",