14 Commits

Author SHA1 Message Date
de08a9d481 Fix bedrock in mineclone2 (#49)
* adjust more mcl_vars variables that were recently added to MineClone2

* try to detect mcl_vars values that should have been changed
2023-12-03 00:36:34 -07:00
8edf220213 fix crash when fake player dig slade (#46)
When a fake player, for example a node, dig slade, it return player ~= nil but it is not a current player, the server_diggable_only function tries to check the privs of the node, then this crashes

Here we use the built-in check player:is_player() so the node privs are not checked

This crash occurred in the technic mod when the corium eats the slade
2023-12-03 00:33:53 -07:00
2f2577eada add mine_gas to optional depends 2023-01-08 02:38:10 -07:00
06096ddc8f No achievement when torch is placed by mods (#43) 2022-12-05 00:29:35 -07:00
b27a9eb8da Add a bit of API documentation. Incomplete, but covers the important stuff IMO 2022-10-22 22:43:29 -06:00
a6cd433ecf Fix a crash in ambient sound biome checking when the player is halfway between level 2 and level 3. Also add API to puzzle chests
This fixes issue https://github.com/FaceDeer/dfcaverns/issues/39
2022-10-22 10:02:34 -06:00
5ea9ee9de0 group fixes suggested on the forum 2022-09-10 16:21:50 -06:00
efeae89ab9 fix local variable access 2022-09-06 22:50:01 -06:00
77b990a697 fix crash when using mesecons with default game, remove flora group from all plants. 2022-08-29 06:51:17 -06:00
e82fcf7c87 using experimental supported_games mod.conf feature 2022-08-29 00:34:53 -06:00
52b2cf8ebb add some additional checks to maybe allow for older versions of these mods 2022-08-29 00:29:44 -06:00
0a0c97b74e Mineclone compatibility (#36)
* latest versions of mapgen_helper and subterrane

* initial work

* call it "minetest_game" compatibility instead of "default" compatibility

* Getting started on moving all default dependencies to a single root mod

* distilling out more dependencies

* fix some typos

* more default dependencies

* beds

* start getting some MCL equivalents set up

* mine gas dependencies

* reorganize

* add some mapgen stuff

* getting close to actually being able to run mineclone with this

* it actually runs! Crashes with out-of-memory error when you try to go below -64, but it's a start.

* hide flowing pit plasma from creative inventory

* mineclone 5 settings

* Update subterrane

* get rid of meselamp dependency, bring in ancient lanterns from deep roads

* stair dependencies

* add mcl fences

* add mcl blast resistance and hardness to everything. Also an alternate name for Nethercap in MCL, since "nether" has another meaning there.

* buckets of oil and syrup should work in mineclone now

* 'splosions!

* make hunters avoid repaired ancient lanterns

* mapgen torchspine wasn't having its timer set

* split mapgen compatibility code into its own file

* bypass dependency indirection for df_farming.

* apply threshold alpha to food items, they look better that way

* bypass dependency indirection for df_mapitems

* bypass dependency indirection for df_primordial_items

* bypass dependency indirection for df_trees

* bypass dependency indirection for df_underworld_items

* bypass dependency indirection for df_caverns

* fixing up the puzzle seal to work in both

* fix puzzle seal formspec for mcl

* create built-in substitutes for fireflies and bones mods for when those aren't available

* set up mcl dungeon loot for underworld warriors, port over some translations from default

* overlooked a debug

* add itemslot backgrounds for mcl

* added mineclone groups to all registered nodes. TODO: craftitems.

This was extremely tedious. Completely untested, aside from simply running the game.

* minor fixes to the built-in bones node

* eatable group for edibles

* clean up some TODOs

* adjust pit plasma abm conditions

* add df_ambience

* fixing up explosions. Also make slade sand diggable in mcl, and fix a bug in web generators

* make tower cap caves less chirpy, fix bigger goblin hut schematic, allow glowing spindlestem extract bottles

* avoid an undeclared global check

* alas, cave pearls aren't set up right for attached_node_facedir.

* bunch of work on mineclone ores, moved main config into df_dependencies

* add a few more ores

* update depends in mod.conf

* 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.

* add a touch of reverb to one of the whisper tracks, it didn't fit with the others without it

* bloodthorn also needs to be set opaque

* add sound to torchspines

* isolate Nethercap translation name to make it easier to swap out in Mineclone contexts

* ambience tweak

* fix dirt spreads

https://github.com/FaceDeer/dfcaverns/issues/35

* adding achievements! Almost all untested yet.

* fix a few achievements glitches

* tweak some more achievements, add delay when achievements unlock other achievements

* fix farming achievements, fix spindlestem callbacks on place

* icons for farming achievements

* more achievement icons, fix ancient lantern achievement

* two more icons, update text

* add icons for upper cavern layers

* all achievements have icons now. Also add another sound to the magma sea ambience

* hook into awards' trigger system to get "x/y" progress displayed for the multi-achievement achievements

* ironically, Mineclone has an old version of awards that is incompatible with my trigger work.

* every award should now have a description and a difficulty.

* removing leftovers

* missing callbacks for farmables

* put growth restrictions on farmables so the achievement doesn't trigger inappropriately.

* enable ores in MCL2, fix some undeclared globals, fix icecap growth in MCL (achievements are a good debugging tool)

* get *all* the copper and iron containing nodes

* fix old awards mod's handling of grouped dig items

* Add a little bonus for players who activate a slade breacher - a handheld 'splosion tool

* used the wrong drop method

* beef up explosions in MCL, make slade brick craftable from slade sand and lava

* better creative mode checks, fix crash when digging walls in MCL

* Update subterrane

* various bugfixes and tweaks

* 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

* prepare for some art tomorrow

* chest node and sounds

* images for the combination dials

* add puzzle chests to the underworld buildings

* update translations

* oops, can't initialize the contents of puzzle chests every time or players get endless stuff

* add backgrounds to item slots in MCL

* wrap the existing function rather than copy and pasting it

* fix bucket dependency in cooking recipes

* add _mcl_saturation to edibles
2022-08-28 23:48:44 -06:00
b2ee829c1a Update subterrane 2022-08-27 18:35:34 -06:00
0296f7fb7e update subterrane, fix a crash in torchspine growth 2022-08-08 00:18:03 -06:00
30 changed files with 279 additions and 176 deletions

60
API.md Normal file
View File

@ -0,0 +1,60 @@
# 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,6 +28,8 @@ Some of the other cave decorations provide dim bioluminescent lighting in some c
[A more comprehensive guide can be found here.](guide.md) [A more comprehensive guide can be found here.](guide.md)
[APIs and player commands can be found here.](API.md)
## Synergies with other mods ## 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. "[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,6 +60,7 @@ local plant_node_achievements =
} }
minetest.register_on_placenode(function(pos, newnode, placer, oldnode, itemstack, pointed_thing) 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() local player_name = placer:get_player_name()
if player_name == nil then return end if player_name == nil then return end
local player_awards = awards.player(player_name) local player_awards = awards.player(player_name)

View File

@ -47,7 +47,12 @@ df_caverns.register_biome_check(function(pos, heat, humidity)
end end
local biome = get_biome(heat, humidity) local biome = get_biome(heat, humidity)
if biome == "bloodnether" then if biome == "bloodnether" then
if subterrane.get_cavern_value("cavern layer 3", pos) < 0 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
return "nethercap" return "nethercap"
end end
return "bloodthorn" return "bloodthorn"

View File

@ -1,4 +1,4 @@
name = df_caverns 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. 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 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 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

View File

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

View File

@ -17,6 +17,17 @@ if mapgen_helper.log_location_enabled then
log_location = mapgen_helper.log_first_location log_location = mapgen_helper.log_first_location
end 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_pit = function() end
local name_ruin = function() end local name_ruin = function() end
@ -81,8 +92,6 @@ if named_waypoints_path then
end end
end end
local c_slade = df_caverns.node_id.slade local c_slade = df_caverns.node_id.slade
local c_slade_block = df_caverns.node_id.slade_block local c_slade_block = df_caverns.node_id.slade_block
local c_air = df_caverns.node_id.air local c_air = df_caverns.node_id.air
@ -496,13 +505,7 @@ minetest.register_on_generated(function(minp, maxp, seed)
if puzzle_chest then if puzzle_chest then
local def = minetest.registered_nodes["df_underworld_items:puzzle_chest_closed"] local def = minetest.registered_nodes["df_underworld_items:puzzle_chest_closed"]
def.can_dig(puzzle_chest) -- initializes the inventory def.can_dig(puzzle_chest) -- initializes the inventory
local meta = minetest.get_meta(puzzle_chest) df_caverns.populate_puzzle_chest(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
end) end)
elseif building.building_type == "medium building" then elseif building.building_type == "medium building" then

View File

@ -65,7 +65,7 @@ end
df_dependencies.register_stairs = function(name, override_def) df_dependencies.register_stairs = function(name, override_def)
local mod, node_copy = node_name_to_stair_properties(name, override_def) local mod, node_copy = node_name_to_stair_properties(name, override_def)
if minetest.get_modpath("stairs") then if minetest.get_modpath("stairs") and stairs.register_stair_and_slab then
stairs.register_stair_and_slab( stairs.register_stair_and_slab(
name, name,
mod ..":" .. name, mod ..":" .. name,
@ -76,7 +76,7 @@ df_dependencies.register_stairs = function(name, override_def)
node_copy.sounds node_copy.sounds
) )
end end
if minetest.get_modpath("mcl_stairs") then if minetest.get_modpath("mcl_stairs") and mcl_stairs.register_stair_and_slab_simple then
mcl_stairs.register_stair_and_slab_simple( mcl_stairs.register_stair_and_slab_simple(
name, name,
mod ..":" .. name, mod ..":" .. name,
@ -89,7 +89,7 @@ end
df_dependencies.register_more_stairs = function(name, override_def) df_dependencies.register_more_stairs = function(name, override_def)
local mod, node_copy = node_name_to_stair_properties(name, override_def) local mod, node_copy = node_name_to_stair_properties(name, override_def)
if minetest.get_modpath("moreblocks") then if minetest.get_modpath("moreblocks") and stairsplus.register_all then
stairsplus:register_all(mod, name, mod..":"..name, node_copy) stairsplus:register_all(mod, name, mod..":"..name, node_copy)
end end
end end
@ -104,6 +104,7 @@ df_dependencies.register_all_fences = function (name, override_def)
local texture = override_def.texture or node_def.tiles[1] local texture = override_def.texture or node_def.tiles[1]
if minetest.get_modpath("default") then if minetest.get_modpath("default") then
if default.register_fence then
default.register_fence(material .. "_fence", { default.register_fence(material .. "_fence", {
description = S("@1 Fence", node_def.description), description = S("@1 Fence", node_def.description),
texture = texture, texture = texture,
@ -118,7 +119,9 @@ df_dependencies.register_all_fences = function (name, override_def)
burntime = burntime, -- ignoring two sticks burntime = burntime, -- ignoring two sticks
}) })
end end
end
if default.register_fence_rail then
default.register_fence_rail(material .. "_fence_rail", { default.register_fence_rail(material .. "_fence_rail", {
description = S("@1 Fence Rail", node_def.description), description = S("@1 Fence Rail", node_def.description),
texture = texture, texture = texture,
@ -133,7 +136,9 @@ df_dependencies.register_all_fences = function (name, override_def)
burntime = burntime * 4/16, burntime = burntime * 4/16,
}) })
end end
end
if default.register_mesepost then
default.register_mesepost(material .. "_mese_light", { default.register_mesepost(material .. "_mese_light", {
description = S("@1 Mese Post Light", node_def.description), description = S("@1 Mese Post Light", node_def.description),
texture = texture, texture = texture,
@ -142,8 +147,9 @@ df_dependencies.register_all_fences = function (name, override_def)
sounds = node_def.sounds sounds = node_def.sounds
}) })
end end
end
if minetest.get_modpath("doors") then if minetest.get_modpath("doors") and doors.register_fencegate then
doors.register_fencegate(material .. "_fence_gate", { doors.register_fencegate(material .. "_fence_gate", {
description = S("@1 Fence Gate", node_def.description), description = S("@1 Fence Gate", node_def.description),
texture = texture, texture = texture,
@ -161,7 +167,7 @@ df_dependencies.register_all_fences = function (name, override_def)
end end
end end
if minetest.get_modpath("mcl_fences") then if minetest.get_modpath("mcl_fences") and mcl_fences.register_fence_and_fence_gate then
local groups = deep_copy(node_def.groups or {}) local groups = deep_copy(node_def.groups or {})
groups.fence_wood = 1 groups.fence_wood = 1
mcl_fences.register_fence_and_fence_gate(name .. "_fence", mcl_fences.register_fence_and_fence_gate(name .. "_fence",

View File

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

View File

@ -215,8 +215,33 @@ if minetest.get_modpath("mcl_init") then -- Mineclone 2
mcl_vars.mg_overworld_min = lowest_elevation mcl_vars.mg_overworld_min = lowest_elevation
mcl_vars.mg_bedrock_overworld_min = mcl_vars.mg_overworld_min 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_lava_overworld_max = mcl_vars.mg_overworld_min + 10
mcl_vars.mg_end_max = mcl_vars.mg_overworld_min - 2000 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 -- shouldn't need to worry about the setting, extend_ores checks if the ores
-- have already been registered. -- have already been registered.

View File

@ -49,24 +49,24 @@ end
-- don't trigger on air, that's for sparkle generation -- 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.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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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") df_dependencies.nethercap_name = S("Nethercap")
if minetest.get_modpath("mcl_mapgen_core") then if minetest.get_modpath("mcl_mapgen_core") then

View File

@ -1,4 +1,5 @@
name = df_dependencies 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. 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 = 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_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 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

View File

@ -1,20 +1,20 @@
local S = minetest.get_translator(minetest.get_current_modname()) local S = minetest.get_translator(minetest.get_current_modname())
local required_nodes = {} local required_nodes = {}
local function select_required(...) local function select_required(def)
local newdef = {} local newdef = {}
for _, node in pairs({...}) do for _, node in ipairs(def) do
newdef[string.match(node, "(.-):")] = node table.insert(newdef, {string.match(node, "(.-):"), node})
end end
local ret = df_dependencies.select_required(newdef) local ret = df_dependencies.select_required(newdef)
table.insert(required_nodes, ret) table.insert(required_nodes, ret)
return ret return ret
end end
local function select_optional(...) local function select_optional(def)
local newdef = {} local newdef = {}
for _, node in pairs({...}) do for _, node in ipairs(def) do
newdef[string.match(node, "(.-):")] = node table.insert(newdef, {string.match(node, "(.-):"), node})
end end
local ret = df_dependencies.select_optional(newdef) local ret = df_dependencies.select_optional(newdef)
table.insert(required_nodes, ret) table.insert(required_nodes, ret)
@ -37,86 +37,86 @@ minetest.after(0, function()
end) end)
df_dependencies.node_name_apple = select_required("default:apple", "mcl_core:apple") 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_chest = select_required({"default:chest", "mcl_chests:chest"})
df_dependencies.node_name_coalblock = select_required("default:coalblock", "mcl_core:coalblock") 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_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_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_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_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_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_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_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_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_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_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_gravel = select_required({"default:gravel", "mcl_core:gravel"})
df_dependencies.node_name_ice = select_required("default:ice", "mcl_core:ice") 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_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_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_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_mossycobble = select_required({"default:mossycobble", "mcl_core:mossycobble"})
df_dependencies.node_name_obsidian = select_required("default:obsidian", "mcl_core:obsidian") 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_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_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_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_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_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_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 = 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_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_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 = 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_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_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_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_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_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_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_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_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_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_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_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_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_lava = select_required({"bucket:bucket_lava", "mcl_buckets:bucket_lava"})
-- from "wool" -- 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" -- from "fireflies"
df_dependencies.node_name_fireflies = select_optional("fireflies:firefly") df_dependencies.node_name_fireflies = select_optional({"fireflies:firefly"})
-- from "vessels" -- from "vessels"
df_dependencies.node_name_glass_bottle = select_required("vessels:glass_bottle", "mcl_potions:glass_bottle") 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_shelf = select_optional({"vessels:shelf"})
-- from "beds" -- from "beds"
df_dependencies.node_name_bed_bottom = select_required("beds:bed_bottom", "mcl_beds:bed_red_bottom") 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_top = select_required({"beds:bed_top", "mcl_beds:bed_red_top"})
-- from "doors" -- 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_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_hidden = select_required({"doors:hidden", "mcl_doors:wooden_door_t_1"})
-- from "stairs" -- 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_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_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_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_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_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_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_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_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_slade_block_top = select_optional({"mcl_stairs:slab_slade_block_top"})
-- from "tnt" -- 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()) 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") assert(false, "One of [default] or [mcl_sounds] must be active")
end end
df_dependencies.soundfile_grass_footstep = select_required({default="default_grass_footstep", mcl_sounds="default_grass_footstep"}) 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_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_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_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_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, is_ground_content = false,
buildable_to = true, buildable_to = true,
floodable = true, floodable = true,
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}, 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},
sounds = df_dependencies.sound_leaves(), sounds = df_dependencies.sound_leaves(),
selection_box = { selection_box = {
type = "fixed", 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_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, flora = 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, fire_encouragement=60,fire_flammability=100, compostability=70, handy=1,shearsy=1,hoey=1}
local register_dimple_cup = function(number) local register_dimple_cup = function(number)
local name = "df_farming:dimple_cup_"..tostring(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, is_ground_content = false,
floodable = true, floodable = true,
buildable_to = true, buildable_to = true,
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}, 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},
sounds = df_dependencies.sound_leaves(), sounds = df_dependencies.sound_leaves(),
selection_box = { selection_box = {
type = "fixed", type = "fixed",

View File

@ -15,7 +15,7 @@ minetest.register_node("df_farming:dead_fungus", {
is_ground_content = false, is_ground_content = false,
buildable_to = true, buildable_to = true,
floodable = true, floodable = true,
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}, 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},
sounds = df_dependencies.sound_leaves(), sounds = df_dependencies.sound_leaves(),
selection_box = { selection_box = {
type = "fixed", type = "fixed",
@ -50,7 +50,7 @@ minetest.register_node("df_farming:cavern_fungi", {
buildable_to = true, buildable_to = true,
floodable = true, floodable = true,
light_source = 6, 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, flora = 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, 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(), sounds = df_dependencies.sound_leaves(),
selection_box = { selection_box = {
type = "fixed", type = "fixed",

View File

@ -92,7 +92,7 @@ minetest.register_node("df_farming:plump_helmet_spawn", {
tiles = { tiles = {
"dfcaverns_plump_helmet_cap.png", "dfcaverns_plump_helmet_cap.png",
}, },
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}, 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},
_dfcaverns_next_stage = "df_farming:plump_helmet_1", _dfcaverns_next_stage = "df_farming:plump_helmet_1",
_dfcaverns_next_stage_time = plump_helmet_grow_time, _dfcaverns_next_stage_time = plump_helmet_grow_time,
drawtype = "nodebox", drawtype = "nodebox",
@ -123,7 +123,7 @@ minetest.register_node("df_farming:plump_helmet_spawn", {
end, 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, flora = 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, 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 get_plump_helmet_groups = function(eatable)
local ret = {} local ret = {}
for key, val in pairs(plump_helmet_groups) do for key, val in pairs(plump_helmet_groups) do

View File

@ -18,7 +18,7 @@ local register_quarry_bush = function(number)
buildable_to = true, buildable_to = true,
is_ground_content = false, is_ground_content = false,
floodable = true, floodable = true,
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}, 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},
sounds = df_dependencies.sound_leaves(), sounds = df_dependencies.sound_leaves(),
selection_box = { selection_box = {
type = "fixed", type = "fixed",

View File

@ -21,7 +21,7 @@ local register_sweet_pod = function(number)
is_ground_content = false, is_ground_content = false,
buildable_to = true, buildable_to = true,
floodable = true, floodable = true,
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}, 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},
sounds = df_dependencies.sound_leaves(), sounds = df_dependencies.sound_leaves(),
selection_box = { selection_box = {
type = "fixed", type = "fixed",
@ -111,7 +111,7 @@ minetest.register_craftitem("df_farming:sugar", {
_doc_items_longdesc = df_farming.doc.sweet_pod_sugar_desc, _doc_items_longdesc = df_farming.doc.sweet_pod_sugar_desc,
_doc_items_usagehelp = df_farming.doc.sweet_pod_sugar_usage, _doc_items_usagehelp = df_farming.doc.sweet_pod_sugar_usage,
inventory_image = "dfcaverns_sugar.png", inventory_image = "dfcaverns_sugar.png",
groups = {dfcaverns_cookable = 1, sugar = 1}, groups = {dfcaverns_cookable = 1, sugar = 1, food_sugar = 1},
}) })
local recipe_registered = false 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"}, tiles = {"dfcaverns_mush_orb_vert.png"},
inventory_image = "dfcaverns_mush_orb_vert.png", inventory_image = "dfcaverns_mush_orb_vert.png",
wield_image = "dfcaverns_mush_orb_vert.png", wield_image = "dfcaverns_mush_orb_vert.png",
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}, groups = {snappy = 3, flammable = 1, attached_node = 1, plant = 1, handy=1, swordy=1, hoey=1, destroy_by_lava_flow=1,dig_by_piston=1},
paramtype = "light", paramtype = "light",
paramtype2 = "degrotate", paramtype2 = "degrotate",
drawtype = "plantlike", drawtype = "plantlike",

View File

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

View File

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

View File

@ -101,7 +101,7 @@ minetest.register_node("df_primordial_items:jungle_mushroom_sapling", {
tiles = {"dfcaverns_jungle_mushroom_02.png^[brighten"}, tiles = {"dfcaverns_jungle_mushroom_02.png^[brighten"},
inventory_image = "dfcaverns_jungle_mushroom_02.png^[brighten", inventory_image = "dfcaverns_jungle_mushroom_02.png^[brighten",
wield_image = "dfcaverns_jungle_mushroom_02.png^[brighten", wield_image = "dfcaverns_jungle_mushroom_02.png^[brighten",
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}, groups = {snappy = 3, attached_node = 1, flammable = 1, sapling = 1, light_sensitive_fungus = 13, dig_by_piston=1,destroy_by_lava_flow=1,deco_block=1, compostability=30,dig_immediate=3},
selection_box = { selection_box = {
type = "fixed", type = "fixed",
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16} 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 -- Ferns
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} local jungle_plant_groups = {snappy = 3, attached_node = 1, flammable = 1, primordial_jungle_plant = 1, light_sensitive_fungus = 13, handy=1, swordy=1, hoey=1, destroy_by_lava_flow=1,dig_by_piston=1, compostability = 30}
minetest.register_node("df_primordial_items:fern_1", { minetest.register_node("df_primordial_items:fern_1", {
description = S("Primordial Fern"), description = S("Primordial Fern"),
@ -221,7 +221,7 @@ minetest.register_node("df_primordial_items:jungle_ivy", {
tiles = {"dfcaverns_jungle_ivy_01.png"}, tiles = {"dfcaverns_jungle_ivy_01.png"},
inventory_image = "dfcaverns_jungle_ivy_01.png", inventory_image = "dfcaverns_jungle_ivy_01.png",
wield_image = "dfcaverns_jungle_ivy_01.png", wield_image = "dfcaverns_jungle_ivy_01.png",
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}, groups = {snappy = 3, flammable = 1, vines = 1, handy=1,axey=1,shearsy=1,swordy=1, flammable=2,deco_block=1,destroy_by_lava_flow=1,dig_by_piston=1, fire_encouragement=15, fire_flammability=100, compostability=50},
paramtype = "light", paramtype = "light",
drawtype = "plantlike", drawtype = "plantlike",
place_param2 = 3, place_param2 = 3,
@ -398,7 +398,7 @@ minetest.register_node("df_primordial_items:jungle_roots_1", {
tiles = {"dfcaverns_jungle_root_01.png"}, tiles = {"dfcaverns_jungle_root_01.png"},
inventory_image = "dfcaverns_jungle_root_01.png", inventory_image = "dfcaverns_jungle_root_01.png",
wield_image = "dfcaverns_jungle_root_01.png", wield_image = "dfcaverns_jungle_root_01.png",
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}, groups = {snappy = 3, flammable = 1, vines = 1, handy=1,axey=1,shearsy=1,swordy=1, deco_block=1,destroy_by_lava_flow=1,dig_by_piston=1, fire_encouragement=3, fire_flammability=10, compostability=50},
paramtype = "light", paramtype = "light",
drawtype = "plantlike", drawtype = "plantlike",
sounds = df_dependencies.sound_leaves(), sounds = df_dependencies.sound_leaves(),
@ -418,7 +418,7 @@ minetest.register_node("df_primordial_items:jungle_roots_2", {
tiles = {"dfcaverns_jungle_root_02.png"}, tiles = {"dfcaverns_jungle_root_02.png"},
inventory_image = "dfcaverns_jungle_root_02.png", inventory_image = "dfcaverns_jungle_root_02.png",
wield_image = "dfcaverns_jungle_root_02.png", wield_image = "dfcaverns_jungle_root_02.png",
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}, groups = {snappy = 3, flammable = 1, vines = 1, handy=1,axey=1,shearsy=1,swordy=1, deco_block=1,destroy_by_lava_flow=1,dig_by_piston=1, fire_encouragement=3, fire_flammability=10, compostability=50},
paramtype = "light", paramtype = "light",
drawtype = "plantlike", drawtype = "plantlike",
sounds = df_dependencies.sound_leaves(), sounds = df_dependencies.sound_leaves(),
@ -442,7 +442,7 @@ minetest.register_node("df_primordial_items:jungle_thorns", {
visual_scale = 1.41, visual_scale = 1.41,
inventory_image = "dfcaverns_jungle_thorns_01.png", inventory_image = "dfcaverns_jungle_thorns_01.png",
wield_image = "dfcaverns_jungle_thorns_01.png", wield_image = "dfcaverns_jungle_thorns_01.png",
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}, groups = {snappy = 3, flammable = 1, primordial_jungle_plant = 1, handy=1, swordy=1, hoey=1, destroy_by_lava_flow=1,dig_by_piston=1, fire_encouragement=30, fire_flammability=100, compostability=50},
paramtype = "light", paramtype = "light",
drawtype = "plantlike", drawtype = "plantlike",
walkable = false, walkable = false,

View File

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

View File

@ -35,7 +35,7 @@ minetest.register_node("df_primordial_items:mushroom_gills", {
tiles = {"dfcaverns_mush_gills.png"}, tiles = {"dfcaverns_mush_gills.png"},
inventory_image = "dfcaverns_mush_gills.png", inventory_image = "dfcaverns_mush_gills.png",
wield_image = "dfcaverns_mush_gills.png", wield_image = "dfcaverns_mush_gills.png",
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}, groups = {snappy = 3, flammable = 1, leaves = 1, leafdecay = 8,handy=1, hoey=1, shearsy=1, swordy=1, deco_block=1, dig_by_piston=1, fire_encouragement=15, fire_flammability=30, compostability=30},
paramtype = "light", paramtype = "light",
drawtype = "plantlike", drawtype = "plantlike",
waving = 2, waving = 2,
@ -71,7 +71,7 @@ minetest.register_node("df_primordial_items:mushroom_gills_glowing", {
tiles = {"dfcaverns_mush_gills_glow.png"}, tiles = {"dfcaverns_mush_gills_glow.png"},
inventory_image = "dfcaverns_mush_gills_glow.png", inventory_image = "dfcaverns_mush_gills_glow.png",
wield_image = "dfcaverns_mush_gills_glow.png", wield_image = "dfcaverns_mush_gills_glow.png",
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}, groups = {snappy = 3, flammable = 1, leaves = 1, leafdecay = 8,handy=1, hoey=1, shearsy=1, swordy=1, deco_block=1, dig_by_piston=1, fire_encouragement=15, fire_flammability=30, compostability=30},
paramtype = "light", paramtype = "light",
drawtype = "plantlike", drawtype = "plantlike",
waving = 2, waving = 2,
@ -747,7 +747,7 @@ minetest.register_node("df_primordial_items:mush_sapling", {
tiles = {"dfcaverns_mush_sapling.png"}, tiles = {"dfcaverns_mush_sapling.png"},
inventory_image = "dfcaverns_mush_sapling.png", inventory_image = "dfcaverns_mush_sapling.png",
wield_image = "dfcaverns_mush_sapling.png", wield_image = "dfcaverns_mush_sapling.png",
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}, groups = {snappy = 3, attached_node = 1, flammable = 1, sapling = 1, light_sensitive_fungus = 11, dig_by_piston=1,destroy_by_lava_flow=1,deco_block=1, compostability=30,dig_immediate=3},
selection_box = { selection_box = {
type = "fixed", type = "fixed",
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16} 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 invulnerable = df_underworld_items.config.invulnerable_slade and not minetest.settings:get_bool("creative_mode")
local server_diggable_only = function(pos, player) local server_diggable_only = function(pos, player)
if player then if player and player:is_player() then
return minetest.check_player_privs(player, "server") return minetest.check_player_privs(player, "server")
end end
return false return false

View File

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