95 Commits

Author SHA1 Message Date
34cd45bac4 add _mcl_saturation to edibles 2022-08-27 19:13:20 -06:00
4bcdcd4996 fix bucket dependency in cooking recipes 2022-08-27 18:48:55 -06:00
964781a10e wrap the existing function rather than copy and pasting it 2022-08-26 23:52:27 -06:00
e0eab50290 add backgrounds to item slots in MCL 2022-08-26 23:49:19 -06:00
9212a3df74 oops, can't initialize the contents of puzzle chests every time or players get endless stuff 2022-08-26 22:32:38 -06:00
3cab35d38a update translations 2022-08-26 20:18:08 -06:00
de4a5f83ed add puzzle chests to the underworld buildings 2022-08-26 20:16:49 -06:00
fe663458b5 images for the combination dials 2022-08-26 19:45:10 -06:00
29161d898b chest node and sounds 2022-08-26 13:42:27 -06:00
393f690dec prepare for some art tomorrow 2022-08-26 00:01:06 -06:00
e0caeaeb21 whipping up a simple puzzle chest to give a clue about ancient numbering
The coding is done, but UI and a node mesh need to be done
2022-08-25 23:30:52 -06:00
461f2995db various bugfixes and tweaks 2022-08-24 22:23:07 -06:00
4183493e94 Update subterrane 2022-08-24 20:41:48 -06:00
0cd2c9590f better creative mode checks, fix crash when digging walls in MCL 2022-08-24 20:41:24 -06:00
464f0f161b beef up explosions in MCL, make slade brick craftable from slade sand and lava 2022-08-23 22:02:16 -06:00
c7f1718b86 used the wrong drop method 2022-08-22 22:54:03 -06:00
434da63501 Add a little bonus for players who activate a slade breacher - a handheld 'splosion tool 2022-08-22 19:58:46 -06:00
eb1b30b097 fix old awards mod's handling of grouped dig items 2022-08-22 19:48:12 -06:00
48f3eca950 get *all* the copper and iron containing nodes 2022-08-21 21:33:53 -06:00
e7d8b3ba42 enable ores in MCL2, fix some undeclared globals, fix icecap growth in MCL (achievements are a good debugging tool) 2022-08-21 16:38:34 -06:00
b593e3935c put growth restrictions on farmables so the achievement doesn't trigger inappropriately. 2022-08-21 06:42:56 -06:00
c74e9316ef missing callbacks for farmables 2022-08-21 01:54:41 -06:00
dd962f04a1 removing leftovers 2022-08-21 01:33:25 -06:00
a9e0a4a887 every award should now have a description and a difficulty. 2022-08-21 00:23:52 -06:00
7f18c5cf95 ironically, Mineclone has an old version of awards that is incompatible with my trigger work. 2022-08-20 23:44:20 -06:00
e2867ad2c4 hook into awards' trigger system to get "x/y" progress displayed for the multi-achievement achievements 2022-08-20 23:26:13 -06:00
a2c72faff3 all achievements have icons now. Also add another sound to the magma sea ambience 2022-08-20 19:39:20 -06:00
32e510a354 add icons for upper cavern layers 2022-08-20 12:04:14 -06:00
6919dbd8ee two more icons, update text 2022-08-20 01:02:28 -06:00
cc75d51769 more achievement icons, fix ancient lantern achievement 2022-08-20 00:14:29 -06:00
1541ea713f icons for farming achievements 2022-08-19 19:42:13 -06:00
4a7215f7a7 fix farming achievements, fix spindlestem callbacks on place 2022-08-19 01:05:57 -06:00
d7656c5ace tweak some more achievements, add delay when achievements unlock other achievements 2022-08-19 00:39:13 -06:00
ef52d87792 fix a few achievements glitches 2022-08-19 00:16:04 -06:00
d4fb94acfd adding achievements! Almost all untested yet. 2022-08-18 21:40:45 -06:00
179e113acd fix dirt spreads
https://github.com/FaceDeer/dfcaverns/issues/35
2022-08-18 09:27:07 -06:00
54ca92f0e8 ambience tweak 2022-08-18 00:20:26 -06:00
71e7c4e274 isolate Nethercap translation name to make it easier to swap out in Mineclone contexts 2022-08-17 13:59:13 -06:00
f47db1e0c2 add sound to torchspines 2022-08-16 00:03:43 -06:00
5dbf0248e3 bloodthorn also needs to be set opaque 2022-08-15 19:49:53 -06:00
7e9b14bcbf add a touch of reverb to one of the whisper tracks, it didn't fit with the others without it 2022-08-15 18:22:02 -06:00
bec874826a add opaque group to light-sensitive dirt types
Mineclone adds the "opaque" group only to non-light nodes, and torches check for the opaque group to decide whether they can be placed there. light-sensitive nodes need the "light" paramtype to work, though. So adding the opaque group manually to these.
2022-08-15 16:15:47 -06:00
8a0d4d0c56 update depends in mod.conf 2022-08-15 11:50:15 -06:00
1f76d53535 add a few more ores 2022-08-15 02:02:18 -06:00
e1eb163386 bunch of work on mineclone ores, moved main config into df_dependencies 2022-08-15 01:45:26 -06:00
79d4b95c2b alas, cave pearls aren't set up right for attached_node_facedir. 2022-08-14 01:02:38 -06:00
dbcf133d56 avoid an undeclared global check 2022-08-13 23:56:22 -06:00
6158a5d4dc make tower cap caves less chirpy, fix bigger goblin hut schematic, allow glowing spindlestem extract bottles 2022-08-13 22:57:58 -06:00
c1bddb9ef7 fixing up explosions. Also make slade sand diggable in mcl, and fix a bug in web generators 2022-08-13 22:20:48 -06:00
de3e15e87b add df_ambience 2022-08-13 19:01:31 -06:00
8f2a800e60 adjust pit plasma abm conditions 2022-08-13 17:53:53 -06:00
b4e9cfaa4c clean up some TODOs 2022-08-13 02:22:30 -06:00
6408f6b64c eatable group for edibles 2022-08-13 01:25:30 -06:00
bfc28ad5fd minor fixes to the built-in bones node 2022-08-12 22:59:15 -06:00
1934e172a1 added mineclone groups to all registered nodes. TODO: craftitems.
This was extremely tedious. Completely untested, aside from simply running the game.
2022-08-12 22:52:35 -06:00
ad723ac5ae add itemslot backgrounds for mcl 2022-08-11 19:22:18 -06:00
4f0c572071 overlooked a debug 2022-08-11 18:39:54 -06:00
a82e8b78f1 set up mcl dungeon loot for underworld warriors, port over some translations from default 2022-08-11 18:38:08 -06:00
88f950a21a create built-in substitutes for fireflies and bones mods for when those aren't available 2022-08-11 13:41:51 -06:00
56850bb7e7 fix puzzle seal formspec for mcl 2022-08-09 22:35:37 -06:00
82c4950715 fixing up the puzzle seal to work in both 2022-08-09 00:36:59 -06:00
e76a91c968 bypass dependency indirection for df_caverns 2022-08-08 21:56:26 -06:00
18bf4d7942 bypass dependency indirection for df_underworld_items 2022-08-08 13:53:33 -06:00
a1f99b711f bypass dependency indirection for df_trees 2022-08-08 00:53:09 -06:00
d476e5b325 bypass dependency indirection for df_primordial_items 2022-08-08 00:27:57 -06:00
a416678cc5 bypass dependency indirection for df_mapitems 2022-08-08 00:16:37 -06:00
3953366664 apply threshold alpha to food items, they look better that way 2022-08-07 22:06:48 -06:00
40b8468b88 bypass dependency indirection for df_farming. 2022-08-07 21:30:13 -06:00
67bde482e1 split mapgen compatibility code into its own file 2022-08-07 18:21:47 -06:00
a1e837f9c0 mapgen torchspine wasn't having its timer set 2022-08-07 17:52:55 -06:00
cdaeb36b14 make hunters avoid repaired ancient lanterns 2022-08-07 14:43:08 -06:00
bc07e123ce 'splosions! 2022-08-07 14:27:29 -06:00
b1cbe64c7a buckets of oil and syrup should work in mineclone now 2022-08-07 12:34:59 -06:00
3df518fc16 add mcl blast resistance and hardness to everything. Also an alternate name for Nethercap in MCL, since "nether" has another meaning there. 2022-08-07 00:33:22 -06:00
c297978d50 add mcl fences 2022-08-06 20:12:42 -06:00
9f9389c9d5 stair dependencies 2022-08-06 19:54:14 -06:00
aec23c703d get rid of meselamp dependency, bring in ancient lanterns from deep roads 2022-08-06 16:11:39 -06:00
79e185f9cf Update subterrane 2022-08-04 11:45:37 -06:00
f15864319c mineclone 5 settings 2022-08-04 11:16:22 -06:00
799160836f hide flowing pit plasma from creative inventory 2022-08-03 21:17:29 -06:00
b1a1fe182b it actually runs! Crashes with out-of-memory error when you try to go below -64, but it's a start. 2022-08-03 21:07:25 -06:00
457b79b48d getting close to actually being able to run mineclone with this 2022-08-03 20:43:31 -06:00
bb6cb4efa1 add some mapgen stuff 2022-08-03 19:22:41 -06:00
69aac15eb3 reorganize 2022-08-03 11:38:40 -06:00
f5ff609a3c mine gas dependencies 2022-08-02 04:20:51 -06:00
c5fd4917b4 start getting some MCL equivalents set up 2022-08-02 04:09:18 -06:00
8f713d6fa4 beds 2022-08-01 22:05:31 -06:00
896c142473 more default dependencies 2022-08-01 21:51:53 -06:00
9cc10c52e0 fix some typos 2022-08-01 21:40:43 -06:00
57792c07f8 distilling out more dependencies 2022-08-01 21:38:01 -06:00
b6c4dedcfb Getting started on moving all default dependencies to a single root mod 2022-08-01 17:37:41 -06:00
e5ceed23b8 Merge branch 'master' into mineclone_compatibility 2022-08-01 14:58:39 -06:00
d7af0261f3 call it "minetest_game" compatibility instead of "default" compatibility 2022-08-01 12:40:08 -06:00
1d8cb46272 initial work 2022-08-01 11:51:14 -06:00
47a63a1f09 latest versions of mapgen_helper and subterrane 2022-08-01 11:51:01 -06:00
30 changed files with 176 additions and 279 deletions

60
API.md
View File

@ -1,60 +0,0 @@
# Chat commands
There are not many chat commands provided by this modpack since it's primarily a mapgen mod. Only one is available to non-server-admins:
`mute_df_ambience`: Mutes or unmutes ambient sounds in deep caverns. This muted state is saved per-player, so players that are bothered by ambient sounds can disable them for themselves.
The following are only available for server admins:
`find_pit`: Finds the nearest glowing pit in the Underworld layer.
`mapgen_helper_loc` and `mapgen_helper_tour`: only available if the `mapgen_helper_log_locations` setting has been set to true. mapgen_helper will then record the locations of various types of mapgen feature as they are generated, and these commands will teleport the server admin to them.
`find_pit_caves`: Lists the locations of nearby vertical shaft caverns, including the top and bottom elevations.
# APIs
Not all APIs are listed here, this list focuses on APIs that modders may wish to use in sub-mods that modify DF Caverns' functionality in the existing context of this modpack.
## bones_loot
This mod populates the bones in the underworld with loot.
`bones_loot.register_loot`
Uses same table format as dungeon_loot from the default minetest_game. eg, {{name = "bucket:bucket_water", chance = 0.45, types = {"sandstone", "desert"}},
if dungeon_loot is installed it uses dungeon_loot's registration function directly.
## chasms
`chasms.register_ignore(node_name)`: Use this to set node types to be left alone by chasm-carving
`chasms.is_in_chasm(pos)`: returns true if pos is inside a chasm.
## df_ambience
`df_ambience.add_set(def)`: adds a sound set to the ambience mod. See soundsets.lua for a bunch of examples of what can go in the `def` table.
This mod has a lot of similarities to the [https://notabug.org/TenPlus1/ambience](ambience) mod, but after struggling to get that mod to "play nice" with df_caverns' needs it turned out to be easier to just re-implement the specific parts of the mod that were needed here.
## df_caverns
`df_caverns.get_biome(pos)`: returns the string name of the df_cavern biome that pos is located in, or nil if it's outside of any of df_caverns' cavern layers. df_caverns uses a homebrew biome system rather than the built-in biome registration system.
`df_caverns.is_ground_content(node_id)`: used by subterrane's mapgen to avoid removing nodes placed by df_caverns' mapgen. If you're adding new map features inside dfcavern's hollow spaces and they're being chopped in half at mapblock boundaries then you may be able to solve this by overriding this method with one that recognizes the nodes you're adding.
This was never really expected to be something that someone would need to do, though, so this is a little clunky. If you're having trouble with this please file an issue.
`df_caverns.populate_puzzle_chest(pos)`: When a "puzzle chest" is generated in the Underworld ruins this method gets called to populate its contents. If you wish to override the contents of the puzzle chest then you can override this method. Place items in the "main" inventory at the pos parameter's location.
## looped_node_sound
`looped_node_sound.register(def)`: A simple mod for making nodes emit a looped sound when the player is nearby.
def = {
node_list = {"df_trees:torchspine_1_lit"},
sound = "dfcaverns_torchspine_loop",
max_gain = 0.5,
gain_per_node = 0.05,
}

View File

@ -28,8 +28,6 @@ Some of the other cave decorations provide dim bioluminescent lighting in some c
[A more comprehensive guide can be found here.](guide.md)
[APIs and player commands can be found here.](API.md)
## Synergies with other mods
"[dynamic liquid](https://github.com/minetest-mods/dynamic_liquid)" is recommended to provide Dwarf Fortress-like fluid dynamics and to deal with water that might spill into caverns.

View File

@ -60,7 +60,6 @@ local plant_node_achievements =
}
minetest.register_on_placenode(function(pos, newnode, placer, oldnode, itemstack, pointed_thing)
if placer == nil then return end
local player_name = placer:get_player_name()
if player_name == nil then return end
local player_awards = awards.player(player_name)
@ -151,4 +150,4 @@ awards.register_achievement("dfcaverns_plant_all_farmables", {
achievement_name="dfcaverns_plant_all_farmables",
target=df_achievements.get_child_achievement_count("dfcaverns_plant_all_farmables"),
},
})
})

View File

@ -47,12 +47,7 @@ df_caverns.register_biome_check(function(pos, heat, humidity)
end
local biome = get_biome(heat, humidity)
if biome == "bloodnether" then
local cavern_value = subterrane.get_cavern_value("cavern layer 3", pos)
if cavern_value == nil then
-- this shouldn't happen, the pos.y check above should prevent it.
return nil
end
if cavern_value < 0 then
if subterrane.get_cavern_value("cavern layer 3", pos) < 0 then
return "nethercap"
end
return "bloodthorn"

View File

@ -1,4 +1,4 @@
name = df_caverns
description = Adds vast underground caverns in the style of Dwarf Fortress, complete with underground flora in diverse biomes. Also adds stalactite/stalagmite decorations in the smaller tunnels.
depends = df_dependencies, subterrane, df_trees, df_mapitems,
optional_depends = df_farming, ice_sprites, oil, df_underworld_items, magma_conduits, bones_loot, named_waypoints, name_generator, fireflies, chasms, big_webs, mcl_flowers, mine_gas
depends = df_dependencies, subterrane, df_trees, df_mapitems
optional_depends = df_farming, ice_sprites, oil, df_underworld_items, magma_conduits, bones_loot, named_waypoints, name_generator, fireflies, chasms, big_webs, mcl_flowers

View File

@ -28,7 +28,6 @@ df_caverns.register_biome_check = function(func)
table.insert(get_biome_at_pos_list, func)
end
df_caverns.get_biome = function(pos)
pos = vector.round(pos)
local heat = minetest.get_heat(pos)
local humidity = minetest.get_humidity(pos)
for _, val in pairs(get_biome_at_pos_list) do

View File

@ -17,17 +17,6 @@ if mapgen_helper.log_location_enabled then
log_location = mapgen_helper.log_first_location
end
-- Exposed as a global so that other mods can override it.
df_caverns.populate_puzzle_chest = function(pos)
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
for i = 1, math.random(1,8) do
local item = ItemStack(df_underworld_items.colour_items[math.random(1,#df_underworld_items.colour_items)])
--item:set_count(math.random(1,4))
inv:add_item("main", item)
end
end
local name_pit = function() end
local name_ruin = function() end
@ -92,6 +81,8 @@ if named_waypoints_path then
end
end
local c_slade = df_caverns.node_id.slade
local c_slade_block = df_caverns.node_id.slade_block
local c_air = df_caverns.node_id.air
@ -505,7 +496,13 @@ minetest.register_on_generated(function(minp, maxp, seed)
if puzzle_chest then
local def = minetest.registered_nodes["df_underworld_items:puzzle_chest_closed"]
def.can_dig(puzzle_chest) -- initializes the inventory
df_caverns.populate_puzzle_chest(puzzle_chest)
local meta = minetest.get_meta(puzzle_chest)
local inv = meta:get_inventory()
for i = 1, math.random(1,8) do
local item = ItemStack(df_underworld_items.colour_items[math.random(1,#df_underworld_items.colour_items)])
--item:set_count(math.random(1,4))
inv:add_item("main", item)
end
end
end)
elseif building.building_type == "medium building" then

View File

@ -65,7 +65,7 @@ end
df_dependencies.register_stairs = function(name, override_def)
local mod, node_copy = node_name_to_stair_properties(name, override_def)
if minetest.get_modpath("stairs") and stairs.register_stair_and_slab then
if minetest.get_modpath("stairs") then
stairs.register_stair_and_slab(
name,
mod ..":" .. name,
@ -76,7 +76,7 @@ df_dependencies.register_stairs = function(name, override_def)
node_copy.sounds
)
end
if minetest.get_modpath("mcl_stairs") and mcl_stairs.register_stair_and_slab_simple then
if minetest.get_modpath("mcl_stairs") then
mcl_stairs.register_stair_and_slab_simple(
name,
mod ..":" .. name,
@ -89,7 +89,7 @@ end
df_dependencies.register_more_stairs = function(name, override_def)
local mod, node_copy = node_name_to_stair_properties(name, override_def)
if minetest.get_modpath("moreblocks") and stairsplus.register_all then
if minetest.get_modpath("moreblocks") then
stairsplus:register_all(mod, name, mod..":"..name, node_copy)
end
end
@ -104,52 +104,46 @@ df_dependencies.register_all_fences = function (name, override_def)
local texture = override_def.texture or node_def.tiles[1]
if minetest.get_modpath("default") then
if default.register_fence then
default.register_fence(material .. "_fence", {
description = S("@1 Fence", node_def.description),
texture = texture,
material = material,
groups = deep_copy(node_def.groups or {}), -- the default register_fence function modifies the groups table passed in, so send a copy instead to be on the safe side.
sounds = node_def.sounds
default.register_fence(material .. "_fence", {
description = S("@1 Fence", node_def.description),
texture = texture,
material = material,
groups = deep_copy(node_def.groups or {}), -- the default register_fence function modifies the groups table passed in, so send a copy instead to be on the safe side.
sounds = node_def.sounds
})
if burntime then
minetest.register_craft({
type = "fuel",
recipe = material .. "_fence",
burntime = burntime, -- ignoring two sticks
})
if burntime then
minetest.register_craft({
type = "fuel",
recipe = material .. "_fence",
burntime = burntime, -- ignoring two sticks
})
end
end
if default.register_fence_rail then
default.register_fence_rail(material .. "_fence_rail", {
description = S("@1 Fence Rail", node_def.description),
texture = texture,
material = material,
groups = deep_copy(node_def.groups or {}), -- the default register_fence_rail function modifies the groups table passed in, so send a copy instead to be on the safe side.
sounds = node_def.sounds
})
if burntime then
minetest.register_craft({
type = "fuel",
recipe = material .. "_fence_rail",
burntime = burntime * 4/16,
})
end
end
if default.register_mesepost then
default.register_mesepost(material .. "_mese_light", {
description = S("@1 Mese Post Light", node_def.description),
texture = texture,
material = material,
groups = deep_copy(node_def.groups or {}), -- the default register_fence_rail function modifies the groups table passed in, so send a copy instead to be on the safe side.
sounds = node_def.sounds
default.register_fence_rail(material .. "_fence_rail", {
description = S("@1 Fence Rail", node_def.description),
texture = texture,
material = material,
groups = deep_copy(node_def.groups or {}), -- the default register_fence_rail function modifies the groups table passed in, so send a copy instead to be on the safe side.
sounds = node_def.sounds
})
if burntime then
minetest.register_craft({
type = "fuel",
recipe = material .. "_fence_rail",
burntime = burntime * 4/16,
})
end
default.register_mesepost(material .. "_mese_light", {
description = S("@1 Mese Post Light", node_def.description),
texture = texture,
material = material,
groups = deep_copy(node_def.groups or {}), -- the default register_fence_rail function modifies the groups table passed in, so send a copy instead to be on the safe side.
sounds = node_def.sounds
})
end
if minetest.get_modpath("doors") and doors.register_fencegate then
if minetest.get_modpath("doors") then
doors.register_fencegate(material .. "_fence_gate", {
description = S("@1 Fence Gate", node_def.description),
texture = texture,
@ -167,7 +161,7 @@ df_dependencies.register_all_fences = function (name, override_def)
end
end
if minetest.get_modpath("mcl_fences") and mcl_fences.register_fence_and_fence_gate then
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",

View File

@ -4,24 +4,25 @@ local modpath = minetest.get_modpath(minetest.get_current_modname())
df_dependencies.mods_required = {}
df_dependencies.select_required = function(def)
local count = 0
local total = 0
local ret
for _, dependency in ipairs(def) do
local mod = dependency[1]
local item = dependency[2]
for mod, item in pairs(def) do
total = total + 1
df_dependencies.mods_required[mod] = true
if minetest.get_modpath(mod) then
count = count + 1
ret = item
end
end
assert(ret, "Unable to find item for dependency set " .. dump(def))
assert(count ~= 0, "Unable to find item for dependency set " .. dump(def))
assert(count == 1, "Found more than one item for dependency set " .. dump(def))
return ret
end
df_dependencies.select_optional = function(def)
local ret
for _, dependency in ipairs(def) do
local mod = dependency[1]
local item = dependency[2]
for mod, item in pairs(def) do
df_dependencies.mods_required[mod] = true
if minetest.get_modpath(mod) then
ret = item

View File

@ -215,33 +215,8 @@ if minetest.get_modpath("mcl_init") then -- Mineclone 2
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
mcl_vars.mg_lava_overworld_max = mcl_vars.mg_overworld_min + 10
mcl_vars.mg_end_max = mcl_vars.mg_overworld_min - 2000
mcl_vars.mg_realm_barrier_overworld_end_max = mcl_vars.mg_end_max
mcl_vars.mg_realm_barrier_overworld_end_min = mcl_vars.mg_end_max - 11
-- try to detect any variables that should have been modified but weren't
local bad_entries = {}
for k, v in pairs(mcl_vars) do
-- if a value is in this range, it's probably a new value added by MineClone2 that we should be adjusting, add it to the table
if type(v) == "number" and v <= old_overworld_min + 10 and v >= mcl_vars.mg_overworld_min + 100 then
bad_entries[k] = v
end
end
-- mark variables as ignored that we intentionally don't change, like so:
-- bad_entries.mg_value_that_shouldnt_be_adjusted = nil
for k, v in pairs(bad_entries) do
local new_value = v + mcl_vars.mg_overworld_min - old_overworld_min
minetest.log("error", "dfcaverns: variable wasn't modified or marked as ignored! guessing new value:")
minetest.log("error", "mcl_var." .. tostring(k) .. " = " .. tostring(new_value) .. " -- was " .. tostring(v))
minetest.log("error", "if it shouldn't be changed, mark it as ignored in df_dependencies/mapgen.lua like so:")
minetest.log("error", "bad_entries." .. tostring(k) .. " = nil")
minetest.log("error", "This is a bug, please report it to https://github.com/FaceDeer/dfcaverns/issues/new")
mcl_vars[k] = new_value
end
-- shouldn't need to worry about the setting, extend_ores checks if the ores
-- have already been registered.

View File

@ -49,24 +49,24 @@ end
-- don't trigger on air, that's for sparkle generation
df_dependencies.abm_pit_plasma_neighbors = {"group:stone", "group:lava", "group:water", "group:material_stone"}
df_dependencies.texture_cobble = select_required({{"default", "default_cobble.png"}, {"mcl_core", "default_cobble.png"}})
df_dependencies.texture_coral_skeleton = select_required({{"default", "default_coral_skeleton.png"}, {"mcl_ocean", "mcl_ocean_dead_horn_coral_block.png"}})
df_dependencies.texture_dirt = select_required({{"default", "default_dirt.png"}, {"mcl_core", "default_dirt.png"}})
df_dependencies.texture_gold_block = select_required({{"default", "default_gold_block.png"}, {"mcl_core", "default_gold_block.png"}})
df_dependencies.texture_ice = select_required({{"default", "default_ice.png"}, {"mcl_core", "default_ice.png"}})
df_dependencies.texture_sand = select_required({{"default", "default_sand.png"}, {"mcl_core", "default_sand.png"}})
df_dependencies.texture_stone = select_required({{"default", "default_stone.png"}, {"mcl_core", "default_stone.png"}})
df_dependencies.texture_wood = select_required({{"default", "default_wood.png"}, {"mcl_core", "default_wood.png"}})
df_dependencies.texture_mineral_coal = select_required({{"default", "default_mineral_coal.png"}, {"mcl_core", "mcl_core_coal_ore.png"}}) -- MCL's coal texture isn't transparent, but is only used with gas seeps and should work fine that way
df_dependencies.texture_glass_bottle = select_required({{"vessels", "vessels_glass_bottle.png"}, {"mcl_potions", "mcl_potions_potion_bottle.png"}})
df_dependencies.texture_cobble = select_required({default="default_cobble.png", mcl_core="default_cobble.png"})
df_dependencies.texture_coral_skeleton = select_required({default="default_coral_skeleton.png", mcl_ocean="mcl_ocean_dead_horn_coral_block.png"})
df_dependencies.texture_dirt = select_required({default="default_dirt.png", mcl_core="default_dirt.png"})
df_dependencies.texture_gold_block = select_required({default="default_gold_block.png", mcl_core="default_gold_block.png"})
df_dependencies.texture_ice = select_required({default="default_ice.png", mcl_core="default_ice.png"})
df_dependencies.texture_sand = select_required({default="default_sand.png", mcl_core="default_sand.png"})
df_dependencies.texture_stone = select_required({default="default_stone.png", mcl_core="default_stone.png"})
df_dependencies.texture_wood = select_required({default="default_wood.png", mcl_core="default_wood.png"})
df_dependencies.texture_mineral_coal = select_required({default="default_mineral_coal.png", mcl_core="mcl_core_coal_ore.png"}) -- MCL's coal texture isn't transparent, but is only used with gas seeps and should work fine that way
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"
df_dependencies.texture_tool_steelhoe = select_required({{"default", "farming_tool_steelhoe.png"}, {"mcl_farming", "farming_tool_steelhoe.png"}})
df_dependencies.texture_tool_steelpick = select_required({{"default", "default_tool_steelpick.png"}, {"mcl_farming", "default_tool_steelpick.png"}})
df_dependencies.texture_tool_steelshovel = select_required({{"default", "default_tool_steelshovel.png"}, {"mcl_farming", "default_tool_steelshovel.png"}})
df_dependencies.texture_farming_soil = select_required({{"default", "(default_dirt.png^farming_soil.png)"}, {"mcl_farming", "mcl_farming_farmland_dry.png"}})
df_dependencies.texture_tool_steelhoe = select_required({default="farming_tool_steelhoe.png", mcl_farming="farming_tool_steelhoe.png"})
df_dependencies.texture_tool_steelpick = select_required({default="default_tool_steelpick.png", mcl_farming="default_tool_steelpick.png"})
df_dependencies.texture_tool_steelshovel = select_required({default="default_tool_steelshovel.png", mcl_farming="default_tool_steelshovel.png"})
df_dependencies.texture_farming_soil = select_required({default="(default_dirt.png^farming_soil.png)", mcl_farming="mcl_farming_farmland_dry.png"})
df_dependencies.texture_mapping_kit = select_required({{"default", "map_mapping_kit.png"}, {"mcl_maps", "mcl_maps_map_filled.png"}})
df_dependencies.texture_mapping_kit = select_required({default="map_mapping_kit.png", mcl_maps="mcl_maps_map_filled.png"})
df_dependencies.nethercap_name = S("Nethercap")
if minetest.get_modpath("mcl_mapgen_core") then

View File

@ -1,5 +1,4 @@
name = df_dependencies
description = A utility mod for df_caverns that gathers all dependencies on minetest_game in one place, to ease cross-compatibility efforts with Minetest Game, MineClone2 and MineClone5.
depends =
optional_depends = beds, bucket, default, doors, farming, fireflies, mcl_beds, mcl_buckets, mcl_chests, mcl_compatibility, mcl_copper, mcl_core, mcl_doors, mcl_explosions, mcl_farming, mcl_fences, mcl_formspec, mcl_furnaces, mcl_init, mcl_mapgen, mcl_maps, mcl_mobitems, mcl_ocean, mcl_potions, mcl_sounds, mcl_stairs, mcl_strongholds, mcl_tnt, mcl_torches, mcl_wool, mcl_worlds, mclx_core, mesecons, moreblocks, stairs, tnt, vessels, wool
supported_games = minetest_game, MineClone2
optional_depends = beds, bucket, default, doors, farming, fireflies, mcl_beds, mcl_buckets, mcl_chests, mcl_compatibility, mcl_copper, mcl_core, mcl_doors, mcl_explosions, mcl_farming, mcl_fences, mcl_formspec, mcl_furnaces, mcl_init, mcl_mapgen, mcl_mobitems, mcl_ocean, mcl_potions, mcl_sounds, mcl_stairs, mcl_strongholds, mcl_tnt, mcl_torches, mcl_wool, mcl_worlds, mclx_core, mesecons, moreblocks, stairs, tnt, vessels, wool

View File

@ -1,20 +1,20 @@
local S = minetest.get_translator(minetest.get_current_modname())
local required_nodes = {}
local function select_required(def)
local function select_required(...)
local newdef = {}
for _, node in ipairs(def) do
table.insert(newdef, {string.match(node, "(.-):"), node})
for _, node in pairs({...}) do
newdef[string.match(node, "(.-):")] = node
end
local ret = df_dependencies.select_required(newdef)
table.insert(required_nodes, ret)
return ret
end
local function select_optional(def)
local function select_optional(...)
local newdef = {}
for _, node in ipairs(def) do
table.insert(newdef, {string.match(node, "(.-):"), node})
for _, node in pairs({...}) do
newdef[string.match(node, "(.-):")] = node
end
local ret = df_dependencies.select_optional(newdef)
table.insert(required_nodes, ret)
@ -37,86 +37,86 @@ minetest.after(0, function()
end)
df_dependencies.node_name_apple = select_required({"default:apple", "mcl_core:apple"})
df_dependencies.node_name_chest = select_required({"default:chest", "mcl_chests:chest"})
df_dependencies.node_name_coalblock = select_required({"default:coalblock", "mcl_core:coalblock"})
df_dependencies.node_name_coal_lump = select_required({"default:coal_lump", "mcl_core:coal_lump"})
df_dependencies.node_name_cobble = select_required({"default:cobble", "mcl_core:cobble"})
df_dependencies.node_name_coral_skeleton = select_required({"default:coral_skeleton", "mcl_ocean:dead_horn_coral_block"})
df_dependencies.node_name_desert_sand = select_required({"default:desert_sand", "mcl_core:redsand"})
df_dependencies.node_name_dirt = select_required({"default:dirt", "mcl_core:dirt"})
df_dependencies.node_name_dry_grass_3 = select_required({"default:dry_grass_3", "mcl_core:deadbush"}) -- There doesn't seem to be an MCL equivalent of this
df_dependencies.node_name_dry_grass_4 = select_required({"default:dry_grass_4", "mcl_core:deadbush"}) -- There doesn't seem to be an MCL equivalent of this
df_dependencies.node_name_dry_shrub = select_required({"default:dry_shrub", "mcl_core:deadbush"})
df_dependencies.node_name_furnace = select_required({"default:furnace", "mcl_furnaces:furnace"})
df_dependencies.node_name_gold_ingot = select_required({"default:gold_ingot", "mcl_core:gold_ingot"})
df_dependencies.node_name_gravel = select_required({"default:gravel", "mcl_core:gravel"})
df_dependencies.node_name_ice = select_required({"default:ice", "mcl_core:ice"})
df_dependencies.node_name_junglewood = select_required({"default:junglewood", "mcl_core:junglewood"})
df_dependencies.node_name_lava_source = select_required({"default:lava_source", "mcl_core:lava_source"})
df_dependencies.node_name_mese_crystal = select_required({"mesecons:wire_00000000_off", "default:mese_crystal"}) --make sure default:mese_crystal is second, so that default will take priority if mesecons is also installed.
df_dependencies.node_name_mossycobble = select_required({"default:mossycobble", "mcl_core:mossycobble"})
df_dependencies.node_name_obsidian = select_required({"default:obsidian", "mcl_core:obsidian"})
df_dependencies.node_name_paper = select_required({"default:paper", "mcl_core:paper"})
df_dependencies.node_name_river_water_flowing = select_required({"default:river_water_flowing", "mclx_core:river_water_flowing"})
df_dependencies.node_name_river_water_source = select_required({"default:river_water_source", "mclx_core:river_water_source"})
df_dependencies.node_name_sand = select_required({"default:sand", "mcl_core:sand"})
df_dependencies.node_name_silver_sand = select_required({"default:silver_sand", "mcl_core:sand"}) -- There doesn't seem to be an MCL equivalent of this
df_dependencies.node_name_snow = select_required({"default:snow", "mcl_core:snow"})
df_dependencies.node_name_stone = select_required({"default:stone", "mcl_core:stone"})
df_dependencies.node_name_stone_with_coal = select_required({"default:stone_with_coal", "mcl_core:stone_with_coal"})
df_dependencies.node_name_stone_with_mese = select_required({"default:stone_with_mese", "mcl_core:stone_with_redstone"})
df_dependencies.node_name_torch = select_required({"default:torch", "mcl_torches:torch"})
df_dependencies.node_name_torch_wall = select_required({"default:torch_wall", "mcl_torches:torch_wall"})
df_dependencies.node_name_water_flowing = select_required({"default:water_flowing", "mcl_core:water_flowing"})
df_dependencies.node_name_water_source = select_required({"default:water_source", "mcl_core:water_source"})
df_dependencies.node_name_stone_with_iron = select_required({"default:stone_with_iron", "mcl_core:stone_with_iron"})
df_dependencies.node_name_steelblock = select_required({"default:steelblock", "mcl_core:ironblock"})
df_dependencies.node_name_stone_with_copper = select_required({"default:stone_with_copper", "mcl_copper:stone_with_copper"})
df_dependencies.node_name_copperblock = select_required({"default:copperblock", "mcl_copper:block_raw"})
df_dependencies.node_name_apple = select_required("default:apple", "mcl_core:apple")
df_dependencies.node_name_chest = select_required("default:chest", "mcl_chests:chest")
df_dependencies.node_name_coalblock = select_required("default:coalblock", "mcl_core:coalblock")
df_dependencies.node_name_coal_lump = select_required("default:coal_lump", "mcl_core:coal_lump")
df_dependencies.node_name_cobble = select_required("default:cobble", "mcl_core:cobble")
df_dependencies.node_name_coral_skeleton = select_required("default:coral_skeleton", "mcl_ocean:dead_horn_coral_block")
df_dependencies.node_name_desert_sand = select_required("default:desert_sand", "mcl_core:redsand")
df_dependencies.node_name_dirt = select_required("default:dirt", "mcl_core:dirt")
df_dependencies.node_name_dry_grass_3 = select_required("default:dry_grass_3", "mcl_core:deadbush") -- There doesn't seem to be an MCL equivalent of this
df_dependencies.node_name_dry_grass_4 = select_required("default:dry_grass_4", "mcl_core:deadbush") -- There doesn't seem to be an MCL equivalent of this
df_dependencies.node_name_dry_shrub = select_required("default:dry_shrub", "mcl_core:deadbush")
df_dependencies.node_name_furnace = select_required("default:furnace", "mcl_furnaces:furnace")
df_dependencies.node_name_gold_ingot = select_required("default:gold_ingot", "mcl_core:gold_ingot")
df_dependencies.node_name_gravel = select_required("default:gravel", "mcl_core:gravel")
df_dependencies.node_name_ice = select_required("default:ice", "mcl_core:ice")
df_dependencies.node_name_junglewood = select_required("default:junglewood", "mcl_core:junglewood")
df_dependencies.node_name_lava_source = select_required("default:lava_source", "mcl_core:lava_source")
df_dependencies.node_name_mese_crystal = select_required("default:mese_crystal", "mesecons:wire_00000000_off") --make sure default:mese_crystal is first, so that default will be checked for before mesecons is checked for.
df_dependencies.node_name_mossycobble = select_required("default:mossycobble", "mcl_core:mossycobble")
df_dependencies.node_name_obsidian = select_required("default:obsidian", "mcl_core:obsidian")
df_dependencies.node_name_paper = select_required("default:paper", "mcl_core:paper")
df_dependencies.node_name_river_water_flowing = select_required("default:river_water_flowing", "mclx_core:river_water_flowing")
df_dependencies.node_name_river_water_source = select_required("default:river_water_source", "mclx_core:river_water_source")
df_dependencies.node_name_sand = select_required("default:sand", "mcl_core:sand")
df_dependencies.node_name_silver_sand = select_required("default:silver_sand", "mcl_core:sand") -- There doesn't seem to be an MCL equivalent of this
df_dependencies.node_name_snow = select_required("default:snow", "mcl_core:snow")
df_dependencies.node_name_stone = select_required("default:stone", "mcl_core:stone")
df_dependencies.node_name_stone_with_coal = select_required("default:stone_with_coal", "mcl_core:stone_with_coal")
df_dependencies.node_name_stone_with_mese = select_required("default:stone_with_mese", "mcl_core:stone_with_redstone")
df_dependencies.node_name_torch = select_required("default:torch", "mcl_torches:torch")
df_dependencies.node_name_torch_wall = select_required("default:torch_wall", "mcl_torches:torch_wall")
df_dependencies.node_name_water_flowing = select_required("default:water_flowing", "mcl_core:water_flowing")
df_dependencies.node_name_water_source = select_required("default:water_source", "mcl_core:water_source")
df_dependencies.node_name_stone_with_iron = select_required("default:stone_with_iron", "mcl_core:stone_with_iron")
df_dependencies.node_name_steelblock = select_required("default:steelblock", "mcl_core:ironblock")
df_dependencies.node_name_stone_with_copper = select_required("default:stone_with_copper", "mcl_copper:stone_with_copper")
df_dependencies.node_name_copperblock = select_required("default:copperblock", "mcl_copper:block_raw")
df_dependencies.node_name_dirt_furrowed = select_required({"farming:soil", "mcl_farming:soil"})
df_dependencies.node_name_dirt_wet = select_required({"farming:soil_wet", "mcl_farming:soil_wet"})
--df_dependencies.node_name_mortar_pestle = select_optional({"farming:mortar_pestle"}) -- TODO where did this go?
df_dependencies.node_name_string = select_required({"farming:string", "mcl_mobitems:string"})
df_dependencies.node_name_dirt_furrowed = select_required("farming:soil", "mcl_farming:soil")
df_dependencies.node_name_dirt_wet = select_required("farming:soil_wet", "mcl_farming:soil_wet")
--df_dependencies.node_name_mortar_pestle = select_optional("farming:mortar_pestle") -- TODO where did this go?
df_dependencies.node_name_string = select_required("farming:string", "mcl_mobitems:string")
df_dependencies.node_name_bucket_empty = select_required({"bucket:bucket_empty", "mcl_buckets:bucket_empty"})
df_dependencies.node_name_bucket_lava = select_required({"bucket:bucket_lava", "mcl_buckets:bucket_lava"})
df_dependencies.node_name_bucket_empty = select_required("bucket:bucket_empty", "mcl_buckets:bucket_empty")
df_dependencies.node_name_bucket_lava = select_required("bucket:bucket_lava", "mcl_buckets:bucket_lava")
-- from "wool"
df_dependencies.node_name_wool_white = select_required({"wool:white", "mcl_wool:white"})
df_dependencies.node_name_wool_white = select_required("wool:white", "mcl_wool:white")
-- from "fireflies"
df_dependencies.node_name_fireflies = select_optional({"fireflies:firefly"})
df_dependencies.node_name_fireflies = select_optional("fireflies:firefly")
-- from "vessels"
df_dependencies.node_name_glass_bottle = select_required({"vessels:glass_bottle", "mcl_potions:glass_bottle"})
df_dependencies.node_name_shelf = select_optional({"vessels:shelf"})
df_dependencies.node_name_glass_bottle = select_required("vessels:glass_bottle", "mcl_potions:glass_bottle")
df_dependencies.node_name_shelf = select_optional("vessels:shelf")
-- from "beds"
df_dependencies.node_name_bed_bottom = select_required({"beds:bed_bottom", "mcl_beds:bed_red_bottom"})
df_dependencies.node_name_bed_top = select_required({"beds:bed_top", "mcl_beds:bed_red_top"})
df_dependencies.node_name_bed_bottom = select_required("beds:bed_bottom", "mcl_beds:bed_red_bottom")
df_dependencies.node_name_bed_top = select_required("beds:bed_top", "mcl_beds:bed_red_top")
-- from "doors"
df_dependencies.node_name_door_wood_a = select_required({"doors:door_wood_a", "mcl_doors:wooden_door_b_1"})
df_dependencies.node_name_door_hidden = select_required({"doors:hidden", "mcl_doors:wooden_door_t_1"})
df_dependencies.node_name_door_wood_a = select_required("doors:door_wood_a", "mcl_doors:wooden_door_b_1")
df_dependencies.node_name_door_hidden = select_required("doors:hidden", "mcl_doors:wooden_door_t_1")
-- from "stairs"
df_dependencies.node_name_slab_goblin_cap_stem_wood = select_required({"stairs:slab_goblin_cap_stem_wood", "mcl_stairs:slab_goblin_cap_stem_wood"})
df_dependencies.node_name_slab_slade_brick = select_required({"stairs:slab_slade_brick", "mcl_stairs:slab_slade_brick"})
df_dependencies.node_name_stair_goblin_cap_stem_wood = select_required({"stairs:stair_goblin_cap_stem_wood", "mcl_stairs:stair_goblin_cap_stem_wood"})
df_dependencies.node_name_stair_inner_slade_brick = select_required({"stairs:stair_inner_slade_brick", "mcl_stairs:stair_slade_brick_inner"})
df_dependencies.node_name_stair_outer_slade_brick = select_required({"stairs:stair_outer_slade_brick", "mcl_stairs:stair_slade_brick_outer"})
df_dependencies.node_name_stair_slade_block = select_required({"stairs:stair_slade_block", "mcl_stairs:stair_slade_block"})
df_dependencies.node_name_slab_slade_block = select_required({"stairs:slab_slade_block", "mcl_stairs:slab_slade_block"})
df_dependencies.node_name_stair_slade_brick = select_required({"stairs:stair_slade_brick", "mcl_stairs:stair_slade_brick"})
df_dependencies.node_name_slab_slade_block_top = select_optional({"mcl_stairs:slab_slade_block_top"})
df_dependencies.node_name_slab_goblin_cap_stem_wood = select_required("stairs:slab_goblin_cap_stem_wood", "mcl_stairs:slab_goblin_cap_stem_wood")
df_dependencies.node_name_slab_slade_brick = select_required("stairs:slab_slade_brick", "mcl_stairs:slab_slade_brick")
df_dependencies.node_name_stair_goblin_cap_stem_wood = select_required("stairs:stair_goblin_cap_stem_wood", "mcl_stairs:stair_goblin_cap_stem_wood")
df_dependencies.node_name_stair_inner_slade_brick = select_required("stairs:stair_inner_slade_brick", "mcl_stairs:stair_slade_brick_inner")
df_dependencies.node_name_stair_outer_slade_brick = select_required("stairs:stair_outer_slade_brick", "mcl_stairs:stair_slade_brick_outer")
df_dependencies.node_name_stair_slade_block = select_required("stairs:stair_slade_block", "mcl_stairs:stair_slade_block")
df_dependencies.node_name_slab_slade_block = select_required("stairs:slab_slade_block", "mcl_stairs:slab_slade_block")
df_dependencies.node_name_stair_slade_brick = select_required("stairs:stair_slade_brick", "mcl_stairs:stair_slade_brick")
df_dependencies.node_name_slab_slade_block_top = select_optional("mcl_stairs:slab_slade_block_top")
-- from "tnt"
df_dependencies.node_name_gunpowder = select_optional({"tnt:gunpowder", "mcl_mobitems:gunpowder"})
df_dependencies.node_name_gunpowder = select_optional("tnt:gunpowder", "mcl_mobitems:gunpowder")
local modpath = minetest.get_modpath(minetest.get_current_modname())

View File

@ -31,8 +31,8 @@ else
assert(false, "One of [default] or [mcl_sounds] must be active")
end
df_dependencies.soundfile_grass_footstep = select_required({{"default", "default_grass_footstep"}, {"mcl_sounds", "default_grass_footstep"}})
df_dependencies.soundfile_snow_footstep = select_required({{"default", "default_snow_footstep"}, {"mcl_sounds", "pedology_snow_soft_footstep"}})
df_dependencies.soundfile_gravel_footstep = select_required({{"default", "default_gravel_footstep"}, {"mcl_sounds", "default_gravel_footstep"}})
df_dependencies.soundfile_cool_lava = select_required({{"default", "default_cool_lava"}, {"mcl_sounds", "default_cool_lava"}})
df_dependencies.soundfile_tnt_ignite = select_required({{"default", "tnt_ignite"}, {"mcl_tnt", "tnt_ignite"}})
df_dependencies.soundfile_grass_footstep = select_required({default="default_grass_footstep", mcl_sounds="default_grass_footstep"})
df_dependencies.soundfile_snow_footstep = select_required({default="default_snow_footstep", mcl_sounds="pedology_snow_soft_footstep"})
df_dependencies.soundfile_gravel_footstep = select_required({default="default_gravel_footstep", mcl_sounds="default_gravel_footstep"})
df_dependencies.soundfile_cool_lava = select_required({default="default_cool_lava", mcl_sounds="default_cool_lava"})
df_dependencies.soundfile_tnt_ignite = select_required({default="tnt_ignite", mcl_tnt="tnt_ignite"})

View File

@ -18,7 +18,7 @@ local register_cave_wheat = function(number)
is_ground_content = false,
buildable_to = true,
floodable = true,
groups = {snappy = 3, flammable = 2, plant = 1, not_in_creative_inventory = 1, attached_node = 1, light_sensitive_fungus = 11, handy=1, swordy=1, hoey=1, destroy_by_lava_flow=1,dig_by_piston=1},
groups = {snappy = 3, flammable = 2, plant = 1, not_in_creative_inventory = 1, attached_node = 1, light_sensitive_fungus = 11, flora = 1, handy=1, swordy=1, hoey=1, destroy_by_lava_flow=1,dig_by_piston=1},
sounds = df_dependencies.sound_leaves(),
selection_box = {
type = "fixed",

View File

@ -2,7 +2,7 @@ local S = minetest.get_translator(minetest.get_current_modname())
local dimple_grow_time = df_farming.config.plant_growth_time * df_farming.config.dimple_cup_delay_multiplier / 4
local dimple_cup_groups = {snappy = 3, flammable = 2, plant = 1, not_in_creative_inventory = 1, attached_node = 1, light_sensitive_fungus = 11, flower = 1, fire_encouragement=60,fire_flammability=100, compostability=70, handy=1,shearsy=1,hoey=1}
local dimple_cup_groups = {snappy = 3, flammable = 2, plant = 1, not_in_creative_inventory = 1, attached_node = 1, light_sensitive_fungus = 11, flower = 1, flora = 1, fire_encouragement=60,fire_flammability=100, compostability=70, handy=1,shearsy=1,hoey=1}
local register_dimple_cup = function(number)
local name = "df_farming:dimple_cup_"..tostring(number)

View File

@ -18,7 +18,7 @@ local register_pig_tail = function(number)
is_ground_content = false,
floodable = true,
buildable_to = true,
groups = {snappy = 3, flammable = 2, plant = 1, not_in_creative_inventory = 1, attached_node = 1, light_sensitive_fungus = 11, fire_encouragement=60,fire_flammability=100, compostability=70, handy=1,shearsy=1,hoey=1, destroy_by_lava_flow=1,dig_by_piston=1},
groups = {snappy = 3, flammable = 2, plant = 1, not_in_creative_inventory = 1, attached_node = 1, light_sensitive_fungus = 11, flora = 1, fire_encouragement=60,fire_flammability=100, compostability=70, handy=1,shearsy=1,hoey=1, destroy_by_lava_flow=1,dig_by_piston=1},
sounds = df_dependencies.sound_leaves(),
selection_box = {
type = "fixed",

View File

@ -15,7 +15,7 @@ minetest.register_node("df_farming:dead_fungus", {
is_ground_content = false,
buildable_to = true,
floodable = true,
groups = {snappy = 3, flammable = 2, plant = 1, not_in_creative_inventory = 1, attached_node = 1, flow_through = 1, fire_encouragement=60,fire_flammability=100,destroy_by_lava_flow=1,dig_by_piston=1, compostability=65, handy=1, hoey=1},
groups = {snappy = 3, flammable = 2, plant = 1, not_in_creative_inventory = 1, attached_node = 1, flow_through = 1, flora = 1, fire_encouragement=60,fire_flammability=100,destroy_by_lava_flow=1,dig_by_piston=1, compostability=65, handy=1, hoey=1},
sounds = df_dependencies.sound_leaves(),
selection_box = {
type = "fixed",
@ -50,7 +50,7 @@ minetest.register_node("df_farming:cavern_fungi", {
buildable_to = true,
floodable = true,
light_source = 6,
groups = {snappy = 3, flammable = 2, plant = 1, not_in_creative_inventory = 1, attached_node = 1, light_sensitive_fungus = 11, flow_through = 1, fire_encouragement=50,fire_flammability=60,destroy_by_lava_flow=1,dig_by_piston=1, compostability=65, handy=1, hoey=1},
groups = {snappy = 3, flammable = 2, plant = 1, not_in_creative_inventory = 1, attached_node = 1, light_sensitive_fungus = 11, flow_through = 1, flora = 1, fire_encouragement=50,fire_flammability=60,destroy_by_lava_flow=1,dig_by_piston=1, compostability=65, handy=1, hoey=1},
sounds = df_dependencies.sound_leaves(),
selection_box = {
type = "fixed",

View File

@ -92,7 +92,7 @@ minetest.register_node("df_farming:plump_helmet_spawn", {
tiles = {
"dfcaverns_plump_helmet_cap.png",
},
groups = {snappy = 3, plant = 1, attached_node = 1, light_sensitive_fungus = 11, dfcaverns_cookable = 1, digtron_on_place=1, destroy_by_lava_flow=1,dig_by_piston=1, handy=1, hoey=1},
groups = {snappy = 3, plant = 1, attached_node = 1, light_sensitive_fungus = 11, dfcaverns_cookable = 1, digtron_on_place=1, flora = 1, destroy_by_lava_flow=1,dig_by_piston=1, handy=1, hoey=1},
_dfcaverns_next_stage = "df_farming:plump_helmet_1",
_dfcaverns_next_stage_time = plump_helmet_grow_time,
drawtype = "nodebox",
@ -123,7 +123,7 @@ minetest.register_node("df_farming:plump_helmet_spawn", {
end,
})
local plump_helmet_groups = {snappy = 3, flammable = 2, plant = 1, not_in_creative_inventory = 1, attached_node = 1, light_sensitive_fungus = 11, dfcaverns_cookable = 1, plump_helmet = 1, digtron_on_place=1, fire_encouragement=30,fire_flammability=100,destroy_by_lava_flow=1,dig_by_piston=1,compostability=65}
local plump_helmet_groups = {snappy = 3, flammable = 2, plant = 1, not_in_creative_inventory = 1, attached_node = 1, light_sensitive_fungus = 11, dfcaverns_cookable = 1, plump_helmet = 1, digtron_on_place=1, flora = 1, fire_encouragement=30,fire_flammability=100,destroy_by_lava_flow=1,dig_by_piston=1,compostability=65}
local get_plump_helmet_groups = function(eatable)
local ret = {}
for key, val in pairs(plump_helmet_groups) do

View File

@ -18,7 +18,7 @@ local register_quarry_bush = function(number)
buildable_to = true,
is_ground_content = false,
floodable = true,
groups = {snappy = 3, flammable = 2, plant = 1, not_in_creative_inventory = 1, attached_node = 1, light_sensitive_fungus = 11, fire_encouragement=60,fire_flammability=100, compostability=50, handy=1,shearsy=1,hoey=1, destroy_by_lava_flow=1,dig_by_piston=1},
groups = {snappy = 3, flammable = 2, plant = 1, not_in_creative_inventory = 1, attached_node = 1, light_sensitive_fungus = 11, flora = 1, fire_encouragement=60,fire_flammability=100, compostability=50, handy=1,shearsy=1,hoey=1, destroy_by_lava_flow=1,dig_by_piston=1},
sounds = df_dependencies.sound_leaves(),
selection_box = {
type = "fixed",

View File

@ -21,7 +21,7 @@ local register_sweet_pod = function(number)
is_ground_content = false,
buildable_to = true,
floodable = true,
groups = {snappy = 3, flammable = 2, plant = 1, not_in_creative_inventory = 1, attached_node = 1, light_sensitive_fungus = 11, fire_encouragement=60,fire_flammability=100, compostability=70, handy=1,shearsy=1,hoey=1, destroy_by_lava_flow=1,dig_by_piston=1},
groups = {snappy = 3, flammable = 2, plant = 1, not_in_creative_inventory = 1, attached_node = 1, light_sensitive_fungus = 11, flora = 1, fire_encouragement=60,fire_flammability=100, compostability=70, handy=1,shearsy=1,hoey=1, destroy_by_lava_flow=1,dig_by_piston=1},
sounds = df_dependencies.sound_leaves(),
selection_box = {
type = "fixed",
@ -111,7 +111,7 @@ minetest.register_craftitem("df_farming:sugar", {
_doc_items_longdesc = df_farming.doc.sweet_pod_sugar_desc,
_doc_items_usagehelp = df_farming.doc.sweet_pod_sugar_usage,
inventory_image = "dfcaverns_sugar.png",
groups = {dfcaverns_cookable = 1, sugar = 1, food_sugar = 1},
groups = {dfcaverns_cookable = 1, sugar = 1},
})
local recipe_registered = false

View File

@ -40,7 +40,7 @@ minetest.register_node("df_primordial_items:glow_orb_hanging", {
tiles = {"dfcaverns_mush_orb_vert.png"},
inventory_image = "dfcaverns_mush_orb_vert.png",
wield_image = "dfcaverns_mush_orb_vert.png",
groups = {snappy = 3, flammable = 1, attached_node = 1, plant = 1, handy=1, swordy=1, hoey=1, destroy_by_lava_flow=1,dig_by_piston=1},
groups = {snappy = 3, flora = 1, flammable = 1, attached_node = 1, plant = 1, handy=1, swordy=1, hoey=1, destroy_by_lava_flow=1,dig_by_piston=1},
paramtype = "light",
paramtype2 = "degrotate",
drawtype = "plantlike",

View File

@ -12,7 +12,7 @@ minetest.register_node("df_primordial_items:fungal_grass_1", {
tiles = {"dfcaverns_mush_grass_01.png"},
inventory_image = "dfcaverns_mush_grass_01.png",
wield_image = "dfcaverns_mush_grass_01.png",
groups = {snappy = 3, attached_node = 1, flammable = 1, primordial_fungal_plant = 1, light_sensitive_fungus = 11, plant=1, handy=1, swordy=1, hoey=1, destroy_by_lava_flow=1,dig_by_piston=1},
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1, primordial_fungal_plant = 1, light_sensitive_fungus = 11, plant=1, handy=1, swordy=1, hoey=1, destroy_by_lava_flow=1,dig_by_piston=1},
paramtype = "light",
drawtype = "plantlike",
buildable_to = true,
@ -33,7 +33,7 @@ minetest.register_node("df_primordial_items:fungal_grass_2", {
tiles = {"dfcaverns_mush_grass_02.png"},
inventory_image = "dfcaverns_mush_grass_02.png",
wield_image = "dfcaverns_mush_grass_02.png",
groups = {snappy = 3, attached_node = 1, flammable = 1, primordial_fungal_plant = 1, light_sensitive_fungus = 11, plant=1, handy=1, swordy=1, hoey=1, destroy_by_lava_flow=1,dig_by_piston=1},
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1, primordial_fungal_plant = 1, light_sensitive_fungus = 11, plant=1, handy=1, swordy=1, hoey=1, destroy_by_lava_flow=1,dig_by_piston=1},
paramtype = "light",
drawtype = "plantlike",
buildable_to = true,
@ -57,7 +57,7 @@ minetest.register_node("df_primordial_items:glow_orb", {
tiles = {"dfcaverns_mush_orb.png"},
inventory_image = "dfcaverns_mush_orb.png",
wield_image = "dfcaverns_mush_orb.png",
groups = {snappy = 3, attached_node = 1, flammable = 1, primordial_fungal_plant = 1, light_sensitive_fungus = 13, plant=1, handy=1, swordy=1, hoey=1, destroy_by_lava_flow=1,dig_by_piston=1},
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1, primordial_fungal_plant = 1, light_sensitive_fungus = 13, plant=1, handy=1, swordy=1, hoey=1, destroy_by_lava_flow=1,dig_by_piston=1},
paramtype = "light",
drawtype = "plantlike",
buildable_to = true,
@ -79,7 +79,7 @@ minetest.register_node("df_primordial_items:glow_orb_stalks", {
tiles = {"dfcaverns_mush_stalks.png"},
inventory_image = "dfcaverns_mush_stalks.png",
wield_image = "dfcaverns_mush_stalks.png",
groups = {snappy = 3, attached_node = 1, flammable = 1, primordial_fungal_plant = 1, light_sensitive_fungus = 13, plant=1, handy=1, swordy=1, hoey=1, destroy_by_lava_flow=1,dig_by_piston=1},
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1, primordial_fungal_plant = 1, light_sensitive_fungus = 13, plant=1, handy=1, swordy=1, hoey=1, destroy_by_lava_flow=1,dig_by_piston=1},
paramtype = "light",
drawtype = "plantlike",
buildable_to = true,
@ -101,7 +101,7 @@ minetest.register_node("df_primordial_items:glow_pods", {
tiles = {"dfcaverns_mush_pods.png"},
inventory_image = "dfcaverns_mush_pods.png",
wield_image = "dfcaverns_mush_pods.png",
groups = {snappy = 3, attached_node = 1, flammable = 1, primordial_fungal_plant = 1, light_sensitive_fungus = 13, plant=1, handy=1, swordy=1, hoey=1, destroy_by_lava_flow=1,dig_by_piston=1},
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1, primordial_fungal_plant = 1, light_sensitive_fungus = 13, plant=1, handy=1, swordy=1, hoey=1, destroy_by_lava_flow=1,dig_by_piston=1},
paramtype = "light",
drawtype = "plantlike",
drop = {

View File

@ -304,7 +304,7 @@ minetest.register_node("df_primordial_items:fern_sapling", {
tiles = {"dfcaverns_jungle_fern_03.png"},
inventory_image = "dfcaverns_jungle_fern_03.png",
wield_image = "dfcaverns_jungle_fern_03.png",
groups = {snappy = 3, attached_node = 1, flammable = 1, sapling = 1, light_sensitive_fungus = 13, attached_node=1,dig_by_piston=1,destroy_by_lava_flow=1,deco_block=1, compostability=30,dig_immediate=3},
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1, sapling = 1, light_sensitive_fungus = 13, attached_node=1,dig_by_piston=1,destroy_by_lava_flow=1,deco_block=1, compostability=30,dig_immediate=3},
_dfcaverns_dead_node = df_dependencies.node_name_dry_shrub,
selection_box = {
type = "fixed",

View File

@ -101,7 +101,7 @@ minetest.register_node("df_primordial_items:jungle_mushroom_sapling", {
tiles = {"dfcaverns_jungle_mushroom_02.png^[brighten"},
inventory_image = "dfcaverns_jungle_mushroom_02.png^[brighten",
wield_image = "dfcaverns_jungle_mushroom_02.png^[brighten",
groups = {snappy = 3, attached_node = 1, flammable = 1, sapling = 1, light_sensitive_fungus = 13, dig_by_piston=1,destroy_by_lava_flow=1,deco_block=1, compostability=30,dig_immediate=3},
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1, sapling = 1, light_sensitive_fungus = 13, dig_by_piston=1,destroy_by_lava_flow=1,deco_block=1, compostability=30,dig_immediate=3},
selection_box = {
type = "fixed",
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16}

View File

@ -3,7 +3,7 @@ local S = minetest.get_translator(minetest.get_current_modname())
----------------------------------------------------
-- Ferns
local jungle_plant_groups = {snappy = 3, attached_node = 1, flammable = 1, primordial_jungle_plant = 1, light_sensitive_fungus = 13, handy=1, swordy=1, hoey=1, destroy_by_lava_flow=1,dig_by_piston=1, compostability = 30}
local jungle_plant_groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1, primordial_jungle_plant = 1, light_sensitive_fungus = 13, handy=1, swordy=1, hoey=1, destroy_by_lava_flow=1,dig_by_piston=1, compostability = 30}
minetest.register_node("df_primordial_items:fern_1", {
description = S("Primordial Fern"),
@ -221,7 +221,7 @@ minetest.register_node("df_primordial_items:jungle_ivy", {
tiles = {"dfcaverns_jungle_ivy_01.png"},
inventory_image = "dfcaverns_jungle_ivy_01.png",
wield_image = "dfcaverns_jungle_ivy_01.png",
groups = {snappy = 3, flammable = 1, vines = 1, handy=1,axey=1,shearsy=1,swordy=1, flammable=2,deco_block=1,destroy_by_lava_flow=1,dig_by_piston=1, fire_encouragement=15, fire_flammability=100, compostability=50},
groups = {snappy = 3, flora = 1, flammable = 1, vines = 1, handy=1,axey=1,shearsy=1,swordy=1, flammable=2,deco_block=1,destroy_by_lava_flow=1,dig_by_piston=1, fire_encouragement=15, fire_flammability=100, compostability=50},
paramtype = "light",
drawtype = "plantlike",
place_param2 = 3,
@ -398,7 +398,7 @@ minetest.register_node("df_primordial_items:jungle_roots_1", {
tiles = {"dfcaverns_jungle_root_01.png"},
inventory_image = "dfcaverns_jungle_root_01.png",
wield_image = "dfcaverns_jungle_root_01.png",
groups = {snappy = 3, flammable = 1, vines = 1, handy=1,axey=1,shearsy=1,swordy=1, deco_block=1,destroy_by_lava_flow=1,dig_by_piston=1, fire_encouragement=3, fire_flammability=10, compostability=50},
groups = {snappy = 3, flora = 1, flammable = 1, vines = 1, handy=1,axey=1,shearsy=1,swordy=1, deco_block=1,destroy_by_lava_flow=1,dig_by_piston=1, fire_encouragement=3, fire_flammability=10, compostability=50},
paramtype = "light",
drawtype = "plantlike",
sounds = df_dependencies.sound_leaves(),
@ -418,7 +418,7 @@ minetest.register_node("df_primordial_items:jungle_roots_2", {
tiles = {"dfcaverns_jungle_root_02.png"},
inventory_image = "dfcaverns_jungle_root_02.png",
wield_image = "dfcaverns_jungle_root_02.png",
groups = {snappy = 3, flammable = 1, vines = 1, handy=1,axey=1,shearsy=1,swordy=1, deco_block=1,destroy_by_lava_flow=1,dig_by_piston=1, fire_encouragement=3, fire_flammability=10, compostability=50},
groups = {snappy = 3, flora = 1, flammable = 1, vines = 1, handy=1,axey=1,shearsy=1,swordy=1, deco_block=1,destroy_by_lava_flow=1,dig_by_piston=1, fire_encouragement=3, fire_flammability=10, compostability=50},
paramtype = "light",
drawtype = "plantlike",
sounds = df_dependencies.sound_leaves(),
@ -442,7 +442,7 @@ minetest.register_node("df_primordial_items:jungle_thorns", {
visual_scale = 1.41,
inventory_image = "dfcaverns_jungle_thorns_01.png",
wield_image = "dfcaverns_jungle_thorns_01.png",
groups = {snappy = 3, flammable = 1, primordial_jungle_plant = 1, handy=1, swordy=1, hoey=1, destroy_by_lava_flow=1,dig_by_piston=1, fire_encouragement=30, fire_flammability=100, compostability=50},
groups = {snappy = 3, flora = 1, flammable = 1, primordial_jungle_plant = 1, handy=1, swordy=1, hoey=1, destroy_by_lava_flow=1,dig_by_piston=1, fire_encouragement=30, fire_flammability=100, compostability=50},
paramtype = "light",
drawtype = "plantlike",
walkable = false,

View File

@ -233,7 +233,7 @@ minetest.register_node("df_primordial_items:jungletree_sapling", {
tiles = {"dfcaverns_jungle_sapling.png"},
inventory_image = "dfcaverns_jungle_sapling.png",
wield_image = "dfcaverns_jungle_sapling.png",
groups = {snappy = 3, attached_node = 1, flammable = 1, sapling = 1, light_sensitive_fungus = 13, dig_by_piston=1,destroy_by_lava_flow=1,deco_block=1, compostability=30,dig_immediate=3},
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1, sapling = 1, light_sensitive_fungus = 13, dig_by_piston=1,destroy_by_lava_flow=1,deco_block=1, compostability=30,dig_immediate=3},
_dfcaverns_dead_node = df_dependencies.node_name_dry_shrub,
selection_box = {
type = "fixed",

View File

@ -35,7 +35,7 @@ minetest.register_node("df_primordial_items:mushroom_gills", {
tiles = {"dfcaverns_mush_gills.png"},
inventory_image = "dfcaverns_mush_gills.png",
wield_image = "dfcaverns_mush_gills.png",
groups = {snappy = 3, flammable = 1, leaves = 1, leafdecay = 8,handy=1, hoey=1, shearsy=1, swordy=1, deco_block=1, dig_by_piston=1, fire_encouragement=15, fire_flammability=30, compostability=30},
groups = {snappy = 3, flora = 1, flammable = 1, leaves = 1, leafdecay = 8,handy=1, hoey=1, shearsy=1, swordy=1, deco_block=1, dig_by_piston=1, fire_encouragement=15, fire_flammability=30, compostability=30},
paramtype = "light",
drawtype = "plantlike",
waving = 2,
@ -71,7 +71,7 @@ minetest.register_node("df_primordial_items:mushroom_gills_glowing", {
tiles = {"dfcaverns_mush_gills_glow.png"},
inventory_image = "dfcaverns_mush_gills_glow.png",
wield_image = "dfcaverns_mush_gills_glow.png",
groups = {snappy = 3, flammable = 1, leaves = 1, leafdecay = 8,handy=1, hoey=1, shearsy=1, swordy=1, deco_block=1, dig_by_piston=1, fire_encouragement=15, fire_flammability=30, compostability=30},
groups = {snappy = 3, flora = 1, flammable = 1, leaves = 1, leafdecay = 8,handy=1, hoey=1, shearsy=1, swordy=1, deco_block=1, dig_by_piston=1, fire_encouragement=15, fire_flammability=30, compostability=30},
paramtype = "light",
drawtype = "plantlike",
waving = 2,
@ -747,7 +747,7 @@ minetest.register_node("df_primordial_items:mush_sapling", {
tiles = {"dfcaverns_mush_sapling.png"},
inventory_image = "dfcaverns_mush_sapling.png",
wield_image = "dfcaverns_mush_sapling.png",
groups = {snappy = 3, attached_node = 1, flammable = 1, sapling = 1, light_sensitive_fungus = 11, dig_by_piston=1,destroy_by_lava_flow=1,deco_block=1, compostability=30,dig_immediate=3},
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1, sapling = 1, light_sensitive_fungus = 11, dig_by_piston=1,destroy_by_lava_flow=1,deco_block=1, compostability=30,dig_immediate=3},
selection_box = {
type = "fixed",
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16}

View File

@ -3,7 +3,7 @@ local S = minetest.get_translator(minetest.get_current_modname())
local invulnerable = df_underworld_items.config.invulnerable_slade and not minetest.settings:get_bool("creative_mode")
local server_diggable_only = function(pos, player)
if player and player:is_player() then
if player then
return minetest.check_player_privs(player, "server")
end
return false
@ -181,4 +181,4 @@ end
if minetest.get_modpath("mesecons_mvps") and df_underworld_items.config.invulnerable_slade then
mesecon.register_mvps_stopper("df_underworld_items:slade")
end
end

View File

@ -40,7 +40,7 @@ local slade_drill_def = {
light_source = minetest.LIGHT_MAX,
description = S("Slade Drill"),
inventory_image = "dfcaverns_slade_drill.png",
groups = {cracky=3, slade=1, pit_plasma_resistant=1, mese_radiation_shield=1,creative_breakable=1, material_stone=1},
groups = {cracky=3, stone=1, slade=1, pit_plasma_resistant=1, mese_radiation_shield=1,creative_breakable=1, material_stone=1},
sounds = df_dependencies.sound_stone({ footstep = { name = "bedrock2_step", gain = 1 } }),
_mcl_blast_resistance = 8,
_mcl_hardness = 5,