From b1cbe64c7a40dc1bb460bc61bb78ba234170076f Mon Sep 17 00:00:00 2001 From: FaceDeer Date: Sun, 7 Aug 2022 12:34:59 -0600 Subject: [PATCH] buckets of oil and syrup should work in mineclone now --- df_dependencies/helper_functions.lua | 40 +++++++++++-------- df_dependencies/misc.lua | 38 ++++++++++-------- df_farming/sweet_pod.lua | 6 +-- df_trees/schematics/goblin_cap_big_hut.lua | 10 ++++- df_trees/schematics/goblin_cap_bigger_hut.lua | 8 +++- oil/init.lua | 8 ++-- 6 files changed, 67 insertions(+), 43 deletions(-) diff --git a/df_dependencies/helper_functions.lua b/df_dependencies/helper_functions.lua index cea3253..e15908c 100644 --- a/df_dependencies/helper_functions.lua +++ b/df_dependencies/helper_functions.lua @@ -13,10 +13,18 @@ end df_dependencies.mods_required.bucket = true +df_dependencies.mods_required.mcl_buckets = true if minetest.get_modpath("bucket") then df_dependencies.bucket_register_liquid = bucket.register_liquid -else - -- TODO +elseif minetest.get_modpath("mcl_buckets") then + df_dependencies.bucket_register_liquid = function(source_liquid, flowing_liquid, bucket_node, texture, desc) + mcl_buckets.register_liquid({ + bucketname = bucket_node, + source_take = {source_liquid}, + source_place = source_liquid, + inventory_image = texture, + name = desc}) + end end @@ -135,20 +143,6 @@ df_dependencies.register_all_fences = function (name, override_def) }) end - if minetest.get_modpath("mcl_fences") then - local groups = deep_copy(node_def.groups or {}) - groups.fence_wood = 1 - mcl_fences.register_fence_and_fence_gate(name .. "_fence", - S("@1 Fence", node_def.description), - S("@1 Fence Gate", node_def.description), - texture, - groups, - node_def._mcl_hardness or minetest.registered_nodes["mcl_core:wood"]._mcl_hardness, - node_def._mcl_blast_resistance or minetest.registered_nodes["mcl_core:wood"]._mcl_blast_resistance, - {"group:fence_wood"} - ) - end - if minetest.get_modpath("doors") then doors.register_fencegate(material .. "_fence_gate", { description = S("@1 Fence Gate", node_def.description), @@ -166,6 +160,20 @@ df_dependencies.register_all_fences = function (name, override_def) }) end end + + if minetest.get_modpath("mcl_fences") then + local groups = deep_copy(node_def.groups or {}) + groups.fence_wood = 1 + mcl_fences.register_fence_and_fence_gate(name .. "_fence", + S("@1 Fence", node_def.description), + S("@1 Fence Gate", node_def.description), + texture, + groups, + node_def._mcl_hardness or minetest.registered_nodes["mcl_core:wood"]._mcl_hardness, + node_def._mcl_blast_resistance or minetest.registered_nodes["mcl_core:wood"]._mcl_blast_resistance, + {"group:fence_wood"} + ) + end end df_dependencies.register_all_stairs_and_fences = function(name, override_def) diff --git a/df_dependencies/misc.lua b/df_dependencies/misc.lua index 1548b3a..92c2379 100644 --- a/df_dependencies/misc.lua +++ b/df_dependencies/misc.lua @@ -3,6 +3,8 @@ local S = minetest.get_translator(minetest.get_current_modname()) local select_required = df_dependencies.select_required local select_optional = df_dependencies.select_optional +df_dependencies.mods_required.farming = true + -- If the farming mod is installed, add the "straw" group to farming straw. -- This way goblin caps just need to check for group:straw to get cave straw as well local straw_def = minetest.registered_items["farming:straw"] @@ -40,6 +42,8 @@ df_dependencies.texture_mineral_coal = select_required({default="default_mineral df_dependencies.texture_glass_bottle = select_required({vessels="vessels_glass_bottle.png", mcl_potions="mcl_potions_potion_bottle.png"}) df_dependencies.texture_meselamp = "dfcaverns_glow_mese.png" +--------------------------------------- mapgen + local prefix = "dfcaverns_" -- NOTE: These defaults are from df_caverns' config. Update them if those change. @@ -58,15 +62,16 @@ if minetest.settings:get_bool(prefix.."enable_primordial", true) then end lowest_elevation = lowest_elevation - 193 -- add a little buffer space -minetest.debug("lowest elevation: " .. tostring(lowest_elevation)) - df_dependencies.mods_required.mcl_init = true df_dependencies.mods_required.mcl_worlds = true df_dependencies.mods_required.mcl_strongholds = true df_dependencies.mods_required.mcl_compatibility = true df_dependencies.mods_required.mcl_mapgen = true + +local old_overworld_min + if minetest.get_modpath("mcl_init") then -- Mineclone 2 - local old_overworld_min = mcl_vars.mg_overworld_min -- remember this for weather control + old_overworld_min = mcl_vars.mg_overworld_min -- remember this for weather control mcl_vars.mg_overworld_min = lowest_elevation mcl_vars.mg_bedrock_overworld_min = mcl_vars.mg_overworld_min @@ -75,16 +80,7 @@ if minetest.get_modpath("mcl_init") then -- Mineclone 2 -- Important note. This doesn't change the values for the various ores and mobs and biomes and whatnot that have already been registered. -- to keep things consistent, add dependencies to - - if minetest.get_modpath("mcl_worlds") then - mcl_worlds.has_weather = function(pos) - -- Weather in the Overworld. No weather in the deep caverns - return pos.y <= mcl_vars.mg_overworld_max and pos.y >= old_overworld_min - end - end --- minetest.debug(dump(mcl_vars)) - dofile(minetest.get_modpath(minetest.get_current_modname()).."/ores.lua") -- never mind - add dependency on mcl_strongholds and these will get generated before overworld_min gets changed. @@ -95,6 +91,8 @@ if minetest.get_modpath("mcl_init") then -- Mineclone 2 --end end if minetest.get_modpath("mcl_compatibility") then -- Mineclone 5 + old_overworld_min = mcl_vars.mg_overworld_min -- remember this for weather control + mcl_vars.mg_overworld_min = lowest_elevation mcl_vars.mg_bedrock_overworld_min = mcl_vars.mg_overworld_min mcl_vars.mg_bedrock_overworld_max = mcl_vars.mg_overworld_min+4 @@ -105,6 +103,8 @@ if minetest.get_modpath("mcl_compatibility") then -- Mineclone 5 mcl_vars.mg_realm_barrier_overworld_end_min = mcl_vars.mg_end_max-11 end if minetest.get_modpath("mcl_mapgen") then -- Mineclone 5 + old_overworld_min = mcl_mapgen.overworld.min -- remember this for weather control + mcl_mapgen.overworld.min = lowest_elevation mcl_mapgen.overworld.bedrock_min = mcl_mapgen.overworld.min mcl_mapgen.overworld.bedrock_max = mcl_mapgen.overworld.bedrock_min + (mcl_mapgen.bedrock_is_rough and 4 or 0) @@ -118,7 +118,13 @@ if minetest.get_modpath("mcl_mapgen") then -- Mineclone 5 mcl_mapgen.on_settings_changed() end end ---minetest.after(1, function() ---minetest.debug("mcl_vars="..dump(mcl_vars)) ---minetest.debug("mcl_mapgen="..dump(mcl_mapgen)) ---end) \ No newline at end of file +if minetest.get_modpath("mcl_worlds") then + local old_has_weather = mcl_worlds.has_weather + mcl_worlds.has_weather = function(pos) + -- No weather in the deep caverns + if pos.y >= lowest_elevation and pos.y <= old_overworld_min then + return false + end + return old_has_weather(pos) + end +end diff --git a/df_farming/sweet_pod.lua b/df_farming/sweet_pod.lua index a11cb18..53bef3a 100644 --- a/df_farming/sweet_pod.lua +++ b/df_farming/sweet_pod.lua @@ -140,8 +140,6 @@ end ---------------------------------------------- -- Syrup --- TODO: mcl_core.register_liquid - if df_dependencies.bucket_register_liquid then minetest.register_node("df_farming:dwarven_syrup_source", { description = S("Dwarven Syrup Source"), @@ -187,7 +185,7 @@ if df_dependencies.bucket_register_liquid then liquid_renewable = false, liquid_range = 2, post_effect_color = {a = 204, r = 179, g = 131, b = 88}, - groups = {liquid = 3, flammable = 2}, + groups = {liquid = 3, flammable = 2, dig_by_piston=1}, sounds = df_farming.sounds.syrup, _mcl_blast_resistance = 100, _mcl_hardness = -1, @@ -238,7 +236,7 @@ if df_dependencies.bucket_register_liquid then liquid_renewable = false, liquid_range = 2, post_effect_color = {a = 204, r = 179, g = 131, b = 88}, - groups = {liquid = 3, flammable = 2, not_in_creative_inventory = 1}, + groups = {liquid = 3, flammable = 2, not_in_creative_inventory = 1, dig_by_piston=1}, sounds = df_farming.sounds.syrup, _mcl_blast_resistance = 100, _mcl_hardness = -1, diff --git a/df_trees/schematics/goblin_cap_big_hut.lua b/df_trees/schematics/goblin_cap_big_hut.lua index dca0e0e..c9e22db 100644 --- a/df_trees/schematics/goblin_cap_big_hut.lua +++ b/df_trees/schematics/goblin_cap_big_hut.lua @@ -23,7 +23,7 @@ if minetest.get_modpath("vessels") then n18 = { name = "df_trees:glowing_bottle_red", force_place=true} end -if not minetest.get_modpath("stairs") then +if not df_dependencies.node_name_stair_goblin_cap_stem_wood then -- replace stairs with air n3 = n1 n20 = n1 @@ -31,7 +31,7 @@ if not minetest.get_modpath("stairs") then n22 = n1 end -return { +local schematic = { yslice_prob = {}, size = {y = 9, x = 11, z = 11}, center_pos = {x=5, y=2, z=5}, @@ -246,3 +246,9 @@ return { n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, } } + +for index, node in ipairs(schematic.data) do + assert(node.name ~= nil, "undefined node name for index " .. tostring(index) .. " in goblin_cap_big_hut schematic data") +end + +return schematic \ No newline at end of file diff --git a/df_trees/schematics/goblin_cap_bigger_hut.lua b/df_trees/schematics/goblin_cap_bigger_hut.lua index 84c1134..4f9fc11 100644 --- a/df_trees/schematics/goblin_cap_bigger_hut.lua +++ b/df_trees/schematics/goblin_cap_bigger_hut.lua @@ -35,7 +35,7 @@ if not minetest.get_modpath("stairs") then n22 = nil end -return { +local schematic = { yslice_prob = {}, size = {y = 10, x = 13, z = 13}, center_pos = {x=6, y=2, z=6}, @@ -314,3 +314,9 @@ return { n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, } } + +for index, node in ipairs(schematic.data) do + assert(node.name ~= nil, "undefined node name for index " .. tostring(index) .. " in goblin_cap_bigger_hut schematic data") +end + +return schematic \ No newline at end of file diff --git a/oil/init.lua b/oil/init.lua index bba7897..afba5ce 100644 --- a/oil/init.lua +++ b/oil/init.lua @@ -61,7 +61,7 @@ minetest.register_node("oil:oil_source", { liquid_alternative_source = "oil:oil_source", liquid_viscosity = 1, post_effect_color = {a = 250, r = 0, g = 0, b = 0}, - groups = {liquid = 3}, + groups = {liquid = 3, dig_by_piston=1}, sounds = oil_sounds, _mcl_blast_resistance = 100, _mcl_hardness = -1, @@ -113,7 +113,7 @@ minetest.register_node("oil:oil_flowing", { liquid_alternative_source = "oil:oil_source", liquid_viscosity = 1, post_effect_color = {a = 250, r = 0, g = 0, b = 0}, - groups = {liquid = 3, not_in_creative_inventory = 1}, + groups = {liquid = 3, not_in_creative_inventory = 1, dig_by_piston=1}, sounds = oil_sounds, _mcl_blast_resistance = 100, _mcl_hardness = -1, @@ -193,8 +193,8 @@ if minetest.get_modpath("dynamic_liquid") then end -if minetest.get_modpath("bucket") then - bucket.register_liquid( +if df_dependencies.bucket_register_liquid then + df_dependencies.bucket_register_liquid( "oil:oil_source", "oil:oil_flowing", "oil:oil_bucket",