Modpack refactor (#4)

Split this mod into a set of sub-mods in a modpack, and in the process did a whole bunch of renovations.

* updated Subterrane's API to allow for more patterned placement of things
* added "warrens"
* clean separation of flooded and non-flooded caverns
* rearranged biomes to make cavern layers more distinct
* added oil layer
* added underworld layer
This commit is contained in:
FaceDeer
2018-12-31 11:46:27 -07:00
committed by GitHub
parent 24c955dbd4
commit 882395ef75
355 changed files with 9514 additions and 5396 deletions

View File

@ -0,0 +1,26 @@
Dwarf Fortress is copyright 2018 by Tarn Adams. This mod uses no assets or other copyrighted materials from Dwarf Fortress.
Sounds and textures are under various licenses, see the license.txt file in the /sounds and /textures directories for details.
License for Code
----------------
Copyright (C) 2018 FaceDeer
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -0,0 +1,27 @@
local CONFIG_FILE_PREFIX = "dfcaverns_"
df_underworld_items.config = {}
local print_settingtypes = false
local function setting(stype, name, default, description)
local value
if stype == "bool" then
value = minetest.setting_getbool(CONFIG_FILE_PREFIX..name)
elseif stype == "string" then
value = minetest.setting_get(CONFIG_FILE_PREFIX..name)
elseif stype == "int" or stype == "float" then
value = tonumber(minetest.setting_get(CONFIG_FILE_PREFIX..name))
end
if value == nil then
value = default
end
df_underworld_items.config[name] = value
if print_settingtypes then
minetest.debug(CONFIG_FILE_PREFIX..name.." ("..description..") "..stype.." "..tostring(default))
end
end
setting("bool", "invulnerable_slade", true, "Slade is invulnerable to players")
setting("bool", "destructive_pit_plasma", true, "Pit plasma destroys adjacent nodes")

View File

@ -0,0 +1,79 @@
-- internationalization boilerplate
local MP = minetest.get_modpath(minetest.get_current_modname())
local S, NS = dofile(MP.."/intllib.lua")
minetest.register_node("df_underworld_items:glow_amethyst", {
description = S("Glowing Amethyst Block"),
_doc_items_longdesc = df_underworld_items.doc.glow_amethyst_desc,
_doc_items_usagehelp = df_underworld_items.doc.glow_amethyst_usage,
tiles = {"dfcaverns_glow_amethyst.png"},
is_ground_content = true,
groups = {cracky=3, pit_plasma_resistant=1},
sounds = default.node_sound_glass_defaults(),
light_source = 6,
paramtype = "light",
use_texture_alpha = true,
drawtype = "glasslike",
sunlight_propagates = true,
})
if minetest.get_modpath("radiant_damage") and radiant_damage.override_radiant_damage and radiant_damage.config.enable_mese_damage then
radiant_damage.override_radiant_damage("mese", {emitted_by={["df_underworld_items:glow_amethyst"] = radiant_damage.config.mese_damage*0.25}})
end
local c_amethyst = minetest.get_content_id("df_underworld_items:glow_amethyst")
local safe_write = function(data, area, vi, c_node)
if area:containsi(vi) then data[vi] = c_node end
end
-- x_slant and z_slant can be 1, 0 or -1
-- rotated is true or false
-- length is 1 or more
df_underworld_items.underworld_shard = function(data, area, vi, x_slant, z_slant, rotated, length)
if x_slant == nil then x_slant = math.random(-1,1) end
if z_slant == nil then z_slant = math.random(-1,1) end
if rotated == nil then rotated = math.random() > 0.5 end
if length == nil then length = math.random(4, 12) end
length = math.ceil(length/2) * 2 -- make it an even multiple of 2
local xstride, ystride, zstride
ystride = area.ystride
if rotated then
xstride = area.zstride
zstride = 1
else
xstride = 1
zstride = area.zstride
end
-- bottom end
safe_write(data, area, vi, c_amethyst)
safe_write(data, area, vi+xstride, c_amethyst)
for i = 1, length do
vi = vi + ystride
safe_write(data, area, vi-xstride, c_amethyst)
safe_write(data, area, vi+zstride, c_amethyst)
safe_write(data, area, vi, c_amethyst)
safe_write(data, area, vi-zstride, c_amethyst)
safe_write(data, area, vi+zstride+xstride, c_amethyst)
safe_write(data, area, vi+xstride, c_amethyst)
safe_write(data, area, vi-zstride+xstride, c_amethyst)
safe_write(data, area, vi+2*xstride, c_amethyst)
if i % 2 == 0 and i ~= length then
vi = vi + xstride * x_slant + zstride * z_slant
end
end
vi = vi + ystride
safe_write(data, area, vi, c_amethyst)
safe_write(data, area, vi+xstride, c_amethyst)
end

View File

@ -0,0 +1,7 @@
default
intllib?
doc?
radiant_damage?
mesecons_mvps?
tnt?
stairs

View File

@ -0,0 +1 @@
Various node types used by the dfcaverns mapgen mod for its underworld layer.

View File

@ -0,0 +1,26 @@
df_underworld_items.doc = {}
if not minetest.get_modpath("doc") then
return
end
-- internationalization boilerplate
local MP = minetest.get_modpath(minetest.get_current_modname())
local S, NS = dofile(MP.."/intllib.lua")
df_underworld_items.doc.glowstone_desc = S("Bright glowing stones of unknown origin found lodged in the crevices of the underworld's ceiling.")
df_underworld_items.doc.glowstone_usage = S("These stones are highly volatile and should not be disturbed.")
df_underworld_items.doc.slade_desc = S("The very foundation of the world, Slade is a mysterious ultra-dense substance.")
df_underworld_items.doc.slade_usage = S("Slade is extremely hard to work with so it has little use.")
if df_underworld_items.config.invulnerable_slade then
df_underworld_items.doc.slade_usage = df_underworld_items.doc.slade_usage .. " " .. S("In fact, Slade is impervious to conventional mining entirely.")
end
df_underworld_items.doc.slade_seal_desc = S("This block of Slade, carved by an unknown hand, is engraved with mysterious symbols. Most of the engraving's meaning is lost to the mists of time but one frament in the oldest known language can be translated: \"This place is not a place of honor.\"")
df_underworld_items.doc.glow_amethyst_desc = S("Glowing purple crystals that grow through holes in the foundation of the world.")
df_underworld_items.doc.glow_amethyst_usage = S("These crystals have no known use.")
df_underworld_items.doc.pit_plasma_desc = S("The liquid found in the deepest pits in the underworld is highly dangerous and damaging.")
df_underworld_items.doc.pit_plasma_usage = S("The only use for this material is that it destroys whatever is thrown into it. It cannot otherwise be manipulated.")

View File

@ -0,0 +1,25 @@
-- internationalization boilerplate
local MP = minetest.get_modpath(minetest.get_current_modname())
local S, NS = dofile(MP.."/intllib.lua")
local glowstone_def = {
_doc_items_longdesc = df_underworld_items.doc.glowstone_desc,
_doc_items_usagehelp = df_underworld_items.doc.glowstone_usage,
light_source = minetest.LIGHT_MAX,
description = S("Lightseam"),
tiles = {"dfcaverns_glowstone.png"},
is_ground_content = true,
groups = {cracky=3},
sounds = default.node_sound_glass_defaults(),
paramtype = "light",
--use_texture_alpha = true,
drawtype = "glasslike",
drop = "",
sunlight_propagates = true,
}
if minetest.get_modpath("tnt") then
glowstone_def.on_dig = function(pos, node, digger)
tnt.boom(pos, {radius=3})
end
end
minetest.register_node("df_underworld_items:glowstone", glowstone_def)

View File

@ -0,0 +1,168 @@
-- internationalization boilerplate
local MP = minetest.get_modpath(minetest.get_current_modname())
local S, NS = dofile(MP.."/intllib.lua")
minetest.register_node("df_underworld_items:pit_plasma", {
description = S("Glowing Pit Plasma"),
_doc_items_longdesc = df_underworld_items.doc.pit_plasma_desc,
_doc_items_usagehelp = df_underworld_items.doc.pit_plasma_usage,
tiles = {
{
name = "dfcaverns_pit_plasma.png",
backface_culling = true,
animation = {
type = "vertical_frames",
aspect_w = 32,
aspect_h = 32,
length = 0.5,
},
},
},
groups={pit_plasma=1, pit_plasma_resistant=1},
walkable = false,
pointable = false,
diggable = false,
sunlight_propagates = false,
buildable_to = true,
drop = "",
drowning = 1,
liquid_viscosity = 7,
damage_per_second = 4 * 2,
post_effect_color = {a = 200, r = 245, g = 211, b = 251},
drawtype="liquid",
liquidtype="source",
liquid_alternative_flowing = "df_underworld_items:pit_plasma_flowing",
liquid_alternative_source = "df_underworld_items:pit_plasma",
liquid_renewable = false,
is_ground_content = true,
light_source = minetest.LIGHT_MAX,
paramtype = "light",
})
minetest.register_node("df_underworld_items:pit_plasma_flowing", {
description = S("Glowing Pit Plasma"),
_doc_items_longdesc = df_underworld_items.doc.pit_plasma_desc,
_doc_items_usagehelp = df_underworld_items.doc.pit_plasma_usage,
tiles = {"dfcaverns_pit_plasma_static.png"},
special_tiles = {
{
name = "dfcaverns_pit_plasma.png",
backface_culling = true,
animation = {
type = "vertical_frames",
aspect_w = 32,
aspect_h = 32,
length = 0.5,
},
},
{
name = "dfcaverns_pit_plasma.png",
backface_culling = true,
animation = {
type = "vertical_frames",
aspect_w = 32,
aspect_h = 32,
length = 0.5,
},
},
},
groups={pit_plasma=1, pit_plasma_resistant=1},
walkable = false,
pointable = false,
diggable = false,
sunlight_propagates = false,
buildable_to = true,
drop = "",
drowning = 1,
liquid_viscosity = 7,
damage_per_second = 4 * 2,
post_effect_color = {a = 200, r = 245, g = 211, b = 251},
liquidtype = "flowing",
drawtype = "flowingliquid",
paramtype2 = "flowingliquid",
liquid_alternative_flowing = "df_underworld_items:pit_plasma_flowing",
liquid_alternative_source = "df_underworld_items:pit_plasma",
liquid_renewable = false,
is_ground_content = true,
light_source = minetest.LIGHT_MAX,
paramtype = "light",
})
if minetest.get_modpath("radiant_damage") and radiant_damage.override_radiant_damage then
if radiant_damage.config.enable_mese_damage then
radiant_damage.override_radiant_damage("mese", {emitted_by={["group:pit_plasma"] = radiant_damage.config.mese_damage*2}})
end
if radiant_damage.config.enable_heat_damage then
radiant_damage.override_radiant_damage("heat", {emitted_by={["group:pit_plasma"] = radiant_damage.config.lava_damage}})
end
end
local sparkle = function(sparkle_pos)
minetest.add_particlespawner({
amount = 10,
time = 1,
minpos = {x=sparkle_pos.x-5, y=sparkle_pos.y-0.5, z=sparkle_pos.z-5},
maxpos = {x=sparkle_pos.x+5, y=sparkle_pos.y+0.5, z=sparkle_pos.z+5},
minvel = {x=-0.1, y=2, z=-0.1},
maxvel = {x=0.1, y=2, z=0.1},
minacc = {x=0, y=2, z=0},
maxacc = {x=0, y=2, z=0},
minexptime = 5,
maxexptime = 10,
minsize = 1,
maxsize = 1,
collisiondetection = true,
collision_removal = true,
vertical = false,
glow = minetest.LIGHT_MAX,
texture = "dfcaverns_glowpit_particle.png",
})
minetest.sound_play({name="dfcaverns_arcing"}, {
pos = sparkle_pos,
gain = 1,
max_hear_distance = 32,
})
end
if df_underworld_items.config.destructive_pit_plasma then
minetest.register_abm({
label = "glowing pit matter degradation",
nodenames = {"group:pit_plasma"},
interval = 1,
chance = 30,
catch_up = false,
action = function(pos)
local sparkle_pos
for x = pos.x-1, pos.x+1 do
for y = pos.y-1, pos.y+1 do
for z = pos.z-1, pos.z+1 do
local test_pos = {x=x, y=y, z=z}
if minetest.get_item_group(minetest.get_node(test_pos).name, "pit_plasma_resistant") == 0 then
sparkle_pos = test_pos
minetest.set_node(test_pos, {name="air"})
end
end
end
end
if sparkle_pos then
sparkle(sparkle_pos)
end
end,
})
else
minetest.register_abm({
label = "glowing pit sparkle",
nodenames = {"group:pit_plasma"},
neighbors = {"air"},
interval = 1,
chance = 30,
catch_up = false,
action = function(pos)
local air_pos = minetest.find_node_near(pos, 1, "air")
if air_pos then
sparkle(air_pos)
end
end,
})
end

View File

@ -0,0 +1,11 @@
df_underworld_items = {}
local modpath = minetest.get_modpath(minetest.get_current_modname())
dofile(modpath.."/config.lua")
dofile(modpath.."/doc.lua")
dofile(modpath.."/crystals_amethyst.lua")
dofile(modpath.."/glow_stone.lua")
dofile(modpath.."/slade.lua")
dofile(modpath.."/glowing_pit_plasma.lua")

View File

@ -0,0 +1,45 @@
-- Fallback functions for when `intllib` is not installed.
-- Code released under Unlicense <http://unlicense.org>.
-- Get the latest version of this file at:
-- https://raw.githubusercontent.com/minetest-mods/intllib/master/lib/intllib.lua
local function format(str, ...)
local args = { ... }
local function repl(escape, open, num, close)
if escape == "" then
local replacement = tostring(args[tonumber(num)])
if open == "" then
replacement = replacement..close
end
return replacement
else
return "@"..open..num..close
end
end
return (str:gsub("(@?)@(%(?)(%d+)(%)?)", repl))
end
local gettext, ngettext
if minetest.get_modpath("intllib") then
if intllib.make_gettext_pair then
-- New method using gettext.
gettext, ngettext = intllib.make_gettext_pair()
else
-- Old method using text files.
gettext = intllib.Getter()
end
end
-- Fill in missing functions.
gettext = gettext or function(msgid, ...)
return format(msgid, ...)
end
ngettext = ngettext or function(msgid, msgid_plural, n, ...)
return format(n==1 and msgid or msgid_plural, ...)
end
return gettext, ngettext

View File

@ -0,0 +1,131 @@
# ITALIAN LOCALE FOR THE DFCAVERNS MODULE
# Copyright (C) 2017 FaceDeer <derksenmobile@gmail.com>
# This file is distributed under the same license as the DFCAVERNS package.
# Hamlet <h4mlet@riseup.net>, 2017.
#
msgid ""
msgstr ""
"Project-Id-Version: dfcaverns module's Italian locale\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-12-24 21:26-0700\n"
"PO-Revision-Date: 2017-08-17 23:01+0100\n"
"Last-Translator: H4mlet <h4mlet@riseup.net>\n"
"Language-Team: ITALIANO\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.6.10\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: df_underworld_items\crystals_amethyst.lua:6
msgid "Glowing Amethyst Block"
msgstr ""
#: df_underworld_items\doc.lua:11
msgid ""
"Bright glowing stones of unknown origin found lodged in the crevices of the "
"underworld's ceiling."
msgstr ""
#: df_underworld_items\doc.lua:12
msgid "These stones are highly volatile and should not be disturbed."
msgstr ""
#: df_underworld_items\doc.lua:14
msgid ""
"The very foundation of the world, Slade is a mysterious ultra-dense "
"substance."
msgstr ""
#: df_underworld_items\doc.lua:15
msgid "Slade is extremely hard to work with so it has little use."
msgstr ""
#: df_underworld_items\doc.lua:17
msgid "In fact, Slade is impervious to conventional mining entirely."
msgstr ""
#: df_underworld_items\doc.lua:20
msgid ""
"This block of Slade, carved by an unknown hand, is engraved with mysterious "
"symbols. Most of the engraving's meaning is lost to the mists of time but "
"one frament in the oldest known language can be translated: \"This place is "
"not a place of honor.\""
msgstr ""
#: df_underworld_items\doc.lua:22
msgid ""
"Glowing purple crystals that grow through holes in the foundation of the "
"world."
msgstr ""
#: df_underworld_items\doc.lua:23
msgid "These crystals have no known use."
msgstr ""
#: df_underworld_items\doc.lua:25
msgid ""
"The liquid found in the deepest pits in the underworld is highly dangerous "
"and damaging."
msgstr ""
#: df_underworld_items\doc.lua:26
msgid ""
"The only use for this material is that it destroys whatever is thrown into "
"it. It cannot otherwise be manipulated."
msgstr ""
#: df_underworld_items\glowing_pit_plasma.lua:6
#: df_underworld_items\glowing_pit_plasma.lua:44
msgid "Glowing Pit Plasma"
msgstr ""
#: df_underworld_items\glow_stone.lua:9
msgid "Lightseam"
msgstr ""
#: df_underworld_items\slade.lua:18
msgid "Slade"
msgstr ""
#: df_underworld_items\slade.lua:38
msgid "Slade Brick"
msgstr ""
#: df_underworld_items\slade.lua:52
msgid "Slade Wall"
msgstr ""
#: df_underworld_items\slade.lua:77
msgid "Slade Sand"
msgstr ""
#: df_underworld_items\slade.lua:89
msgid "Slade Block"
msgstr ""
#: df_underworld_items\slade.lua:105
msgid "Slade Seal"
msgstr ""
#: df_underworld_items\slade.lua:154
msgid "Slade Stair"
msgstr ""
#: df_underworld_items\slade.lua:155
msgid "Slade Slab"
msgstr ""
#, fuzzy
#~ msgid "Cave Coral"
#~ msgstr "Grano di caverna"
#~ msgid "Glow Worms"
#~ msgstr "Vermi luminosi"
#~ msgid "Dirt With Cave Moss"
#~ msgstr "Terra con muschio di caverna"
#~ msgid "Cobblestone With Floor Fungus"
#~ msgstr "Ciottoli con funghi del terreno"

View File

@ -0,0 +1,117 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-12-24 21:26-0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#: df_underworld_items\crystals_amethyst.lua:6
msgid "Glowing Amethyst Block"
msgstr ""
#: df_underworld_items\doc.lua:11
msgid ""
"Bright glowing stones of unknown origin found lodged in the crevices of the "
"underworld's ceiling."
msgstr ""
#: df_underworld_items\doc.lua:12
msgid "These stones are highly volatile and should not be disturbed."
msgstr ""
#: df_underworld_items\doc.lua:14
msgid ""
"The very foundation of the world, Slade is a mysterious ultra-dense "
"substance."
msgstr ""
#: df_underworld_items\doc.lua:15
msgid "Slade is extremely hard to work with so it has little use."
msgstr ""
#: df_underworld_items\doc.lua:17
msgid "In fact, Slade is impervious to conventional mining entirely."
msgstr ""
#: df_underworld_items\doc.lua:20
msgid ""
"This block of Slade, carved by an unknown hand, is engraved with mysterious "
"symbols. Most of the engraving's meaning is lost to the mists of time but "
"one frament in the oldest known language can be translated: \"This place is "
"not a place of honor.\""
msgstr ""
#: df_underworld_items\doc.lua:22
msgid ""
"Glowing purple crystals that grow through holes in the foundation of the "
"world."
msgstr ""
#: df_underworld_items\doc.lua:23
msgid "These crystals have no known use."
msgstr ""
#: df_underworld_items\doc.lua:25
msgid ""
"The liquid found in the deepest pits in the underworld is highly dangerous "
"and damaging."
msgstr ""
#: df_underworld_items\doc.lua:26
msgid ""
"The only use for this material is that it destroys whatever is thrown into "
"it. It cannot otherwise be manipulated."
msgstr ""
#: df_underworld_items\glowing_pit_plasma.lua:6
#: df_underworld_items\glowing_pit_plasma.lua:44
msgid "Glowing Pit Plasma"
msgstr ""
#: df_underworld_items\glow_stone.lua:9
msgid "Lightseam"
msgstr ""
#: df_underworld_items\slade.lua:18
msgid "Slade"
msgstr ""
#: df_underworld_items\slade.lua:38
msgid "Slade Brick"
msgstr ""
#: df_underworld_items\slade.lua:52
msgid "Slade Wall"
msgstr ""
#: df_underworld_items\slade.lua:77
msgid "Slade Sand"
msgstr ""
#: df_underworld_items\slade.lua:89
msgid "Slade Block"
msgstr ""
#: df_underworld_items\slade.lua:105
msgid "Slade Seal"
msgstr ""
#: df_underworld_items\slade.lua:154
msgid "Slade Stair"
msgstr ""
#: df_underworld_items\slade.lua:155
msgid "Slade Slab"
msgstr ""

View File

@ -0,0 +1,6 @@
@echo off
setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
cd ..
set LIST=
for /r %%X in (*.lua) do set LIST=!LIST! %%X
..\..\intllib\tools\xgettext.bat %LIST%

View File

@ -0,0 +1 @@
name = df_underworld_items

View File

@ -0,0 +1,2 @@
dfcaverns_invulnerable_slade (Slade cannot be damaged) bool true
dfcaverns_destructive_pit_plasma (Pit plasma destroys adjacent nodes) bool true

View File

@ -0,0 +1,162 @@
-- internationalization boilerplate
local MP = minetest.get_modpath(minetest.get_current_modname())
local S, NS = dofile(MP.."/intllib.lua")
local invulnerable = df_underworld_items.config.invulnerable_slade and not minetest.settings:get_bool("creative_mode")
local add_immortality = function(slade_def)
slade_def.groups.immortal = 1
slade_def.groups.cracky = nil
--slade_def.on_destruct = function() end
--slade_def.can_dig = function(pos, player) return minetest.settings:get_bool("creative_mode") == true end
--slade_def.diggable = false
--slade_def.on_blast = function() end
return slade_def
end
local slade_def = {
description = S("Slade"),
_doc_items_longdesc = df_underworld_items.doc.slade_desc,
_doc_items_usagehelp = df_underworld_items.doc.slade_usage,
tiles = {"dfcaverns_slade.png"},
groups = {cracky=3, stone=1, level=3, slade=1, pit_plasma_resistant=1, mese_radiation_shield=1},
sounds = default.node_sound_stone_defaults({ footstep = { name = "bedrock2_step", gain = 1 } }),
is_ground_content = false,
on_blast = function(pos, intensity)
if intensity > 3.0 then
minetest.set_node(pos, {name="df_underworld_items:slade_sand"})
minetest.check_for_falling(pos)
end
end,
}
if invulnerable then
add_immortality(slade_def)
end
minetest.register_node("df_underworld_items:slade", slade_def)
local slade_brick_def = {
description = S("Slade Brick"),
_doc_items_longdesc = df_underworld_items.doc.slade_desc,
_doc_items_usagehelp = df_underworld_items.doc.slade_usage,
tiles = {"dfcaverns_slade_brick.png"},
groups = { cracky=3, stone=1, level=3, slade=1, pit_plasma_resistant=1, mese_radiation_shield=1},
sounds = default.node_sound_stone_defaults({ footstep = { name = "bedrock2_step", gain = 1 } }),
is_ground_content = false,
}
if invulnerable then
add_immortality(slade_brick_def)
end
minetest.register_node("df_underworld_items:slade_brick", slade_brick_def)
local slade_wall_def = {
description = S("Slade Wall"),
drawtype = "nodebox",
node_box = {
type = "connected",
fixed = {{-1/4, -1/2, -1/4, 1/4, 1/2, 1/4}},
-- connect_bottom =
connect_front = {{-3/16, -1/2, -1/2, 3/16, 3/8, -1/4}},
connect_left = {{-1/2, -1/2, -3/16, -1/4, 3/8, 3/16}},
connect_back = {{-3/16, -1/2, 1/4, 3/16, 3/8, 1/2}},
connect_right = {{ 1/4, -1/2, -3/16, 1/2, 3/8, 3/16}},
},
connects_to = { "group:wall", "group:stone", "group:fence" },
paramtype = "light",
tiles = {"dfcaverns_slade_brick.png"},
walkable = true,
groups = { cracky=3, stone=1, level=3, slade=1, pit_plasma_resistant=1, mese_radiation_shield=1},
sounds = default.node_sound_stone_defaults({ footstep = { name = "bedrock2_step", gain = 1 } }),
}
if invulnerable then
add_immortality(slade_wall_def)
end
minetest.register_node("df_underworld_items:slade_wall", slade_wall_def)
minetest.register_node("df_underworld_items:slade_sand", {
description = S("Slade Sand"),
_doc_items_longdesc = df_underworld_items.doc.slade_desc,
_doc_items_usagehelp = df_underworld_items.doc.slade_usage,
tiles = {"dfcaverns_slade_sand.png"},
is_ground_content = true,
groups = {crumbly = 3, level = 2, falling_node = 1, slade=1, pit_plasma_resistant=1, mese_radiation_shield=1},
sounds = default.node_sound_gravel_defaults({
footstep = {name = "default_gravel_footstep", gain = 0.45},
}),
})
local slade_block_def = {
description = S("Slade Block"),
_doc_items_longdesc = df_underworld_items.doc.slade_desc,
_doc_items_usagehelp = df_underworld_items.doc.slade_usage,
tiles = {"dfcaverns_slade_block.png"},
groups = {cracky=3, stone=1, level=3, slade=1, pit_plasma_resistant=1, mese_radiation_shield=1},
sounds = default.node_sound_stone_defaults({ footstep = { name = "bedrock2_step", gain = 1 } }),
is_ground_content = false,
}
if invulnerable then
add_immortality(slade_block_def)
slade_block_def.on_blast = function() end
end
minetest.register_node("df_underworld_items:slade_block", slade_block_def)
local slade_seal_def = {
description = S("Slade Seal"),
_doc_items_longdesc = df_underworld_items.doc.slade_seal_desc,
_doc_items_usagehelp = df_underworld_items.doc.slade_usage,
tiles = {"dfcaverns_slade_block.png^dfcaverns_seal.png", "dfcaverns_slade_block.png"},
groups = {cracky=3, stone=1, level=3, slade=1, pit_plasma_resistant=1, mese_radiation_shield=1},
sounds = default.node_sound_stone_defaults({ footstep = { name = "bedrock2_step", gain = 1 } }),
is_ground_content = false,
}
if invulnerable then
slade_seal_def.on_blast = function() end
add_immortality(slade_seal_def)
end
minetest.register_node("df_underworld_items:slade_seal", slade_seal_def)
minetest.register_abm{
label = "slade seal scratching",
nodenames = {"df_underworld_items:slade_seal"},
interval = 10,
chance = 20,
catch_up = false,
action = function(pos)
minetest.sound_play({name="dfcaverns_grinding_stone"},
{
pos = pos,
gain = 0.05,
max_hear_distance = 32,
}
)
end,
}
-- Register stair and slab
if minetest.get_modpath("stairs") then
local stair_groups = {level = 3, mese_radiation_shield=1, pit_plasma_resistant=1, slade=1}
if invulnerable then
stair_groups.immortal = 1
else
stair_groups.cracky = 3
end
stairs.register_stair_and_slab(
"slade_brick",
"df_underworld_items:slade_brick",
stair_groups,
{"dfcaverns_slade_brick.png"},
S("Slade Stair"),
S("Slade Slab"),
default.node_sound_stone_defaults({ footstep = { name = "bedrock2_step", gain = 1 } })
)
end
if minetest.get_modpath("mesecons_mvps") and df_underworld_items.config.invulnerable_slade then
mesecon.register_mvps_stopper("df_underworld_items:slade")
end

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,12 @@
bedrock2_step.1.ogg - from the Bedrock mod by Wuzzy, https://repo.or.cz/w/minetest_bedrock2.git, under the WTFPL, relicenced to MIT for this mod.
bedrock2_step.2.ogg
bedrock2_step.3.ogg
dfcaverns_grinding_stone.1.ogg - from https://freesound.org/people/FreqMan/sounds/25845/ by FreqMan under Creative Commons BY 3.0
dfcaverns_grinding_stone.2.ogg - from https://freesound.org/people/FreqMan/sounds/25846/ by FreqMan under Creative Commons BY 3.0
dfcaverns_grinding_stone.3.ogg - from https://freesound.org/people/FreqMan/sounds/25847/ by FreqMan under Creative Commons BY 3.0
dfcaverns_arcing.1.ogg - from https://freesound.org/people/unfa/sounds/264827/ by unfa under Creative Commons BY 3.0
dfcaverns_arcing.2.ogg - from https://freesound.org/people/unfa/sounds/264827/ by unfa under Creative Commons BY 3.0
dfcaverns_arcing.3.ogg - from https://freesound.org/people/unfa/sounds/264827/ by unfa under Creative Commons BY 3.0
dfcaverns_arcing.4.ogg - from https://freesound.org/people/unfa/sounds/264827/ by unfa under Creative Commons BY 3.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 325 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 301 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 876 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 360 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 580 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 374 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 546 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 550 B

View File

@ -0,0 +1,5 @@
All textures not specifically listed here are created by FaceDeer and released under both the MIT license and under the Creative Commons CC0 license.
dfcaverns_glow_amethyst, dfcaverns_glow_amethist_ore - from caverealms glow_amethyst
dfcaverns_slade, dfcaverns_slade_sand, dfcaverns_slade_brick, dfcaverns_glowstone, are all from the Nether mod by PilzAdam: Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) http://creativecommons.org/licenses/by-sa/3.0/