many worldgen mods and gonna try technic now
This commit is contained in:
1 parent
bac6ac94a3
commit
548749cb1a
4811 files changed
+163271
-1
No files matched your search
@@ -0,0 +1,24 @@
|
||||
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.
|
||||
@@ -0,0 +1,215 @@
|
||||
local modname = minetest.get_current_modname()
|
||||
local S = minetest.get_translator(modname)
|
||||
local modpath = minetest.get_modpath(modname)
|
||||
|
||||
dofile(modpath.."/wisp.lua")
|
||||
|
||||
local gas_desc
|
||||
local gas_usage
|
||||
|
||||
local seep_desc
|
||||
local seep_usage
|
||||
|
||||
if minetest.get_modpath("doc") then
|
||||
gas_desc = S("Gaseous hydrocarbons formed from the detritus of long dead plants and animals processed by heat and pressure deep within the earth.")
|
||||
gas_usage = S("Gas is highly hazardous. Heavier than air, it pools in deep caverns and asphyxiates the unwary.")
|
||||
if minetest.get_modpath("tnt") then
|
||||
gas_usage = gas_usage .. " " .. S("When exposed to air and an ignition source it can produce a deadly explosion.")
|
||||
end
|
||||
|
||||
seep_desc = S("Some coal deposits have cracks that seep a steady flow of mine gas.")
|
||||
seep_usage = S("Mining out such a deposit seals the crack.")
|
||||
end
|
||||
|
||||
|
||||
minetest.register_alias("oil:gas", "mine_gas:gas")
|
||||
minetest.register_alias("oil:gas_seep", "mine_gas:gas_seep")
|
||||
|
||||
minetest.register_node("mine_gas:gas", {
|
||||
description = S("Mine Gas"),
|
||||
_doc_items_longdesc = gas_desc,
|
||||
_doc_items_usagehelp = gas_usage,
|
||||
walkable = false,
|
||||
pointable = false,
|
||||
diggable = false,
|
||||
is_ground_content = false,
|
||||
buildable_to = true,
|
||||
drawtype = "glasslike",
|
||||
drowning = 1,
|
||||
post_effect_color = {a = 20, r = 20, g = 20, b = 250},
|
||||
tiles = {"mine_gas.png^[opacity:28"},
|
||||
use_texture_alpha = "blend",
|
||||
groups = {not_in_creative_inventory=1, ropes_can_extend_into=1, not_solid=1, not_opaque=1},
|
||||
paramtype = "light",
|
||||
drop = {},
|
||||
sunlight_propagates = true,
|
||||
--on_blast = function() end, -- unaffected by explosions
|
||||
})
|
||||
|
||||
minetest.register_node("mine_gas:gas_seep", {
|
||||
description = S("Gas Seep"),
|
||||
_doc_items_longdesc = seep_desc,
|
||||
_doc_items_usagehelp = seep_usage,
|
||||
tiles = {df_dependencies.texture_stone.."^"..df_dependencies.texture_mineral_coal.."^[combine:16x80:0,-16=crack_anylength.png"},
|
||||
groups = {cracky = 3, pickaxey=1, building_block=1, material_stone=1},
|
||||
drop = df_dependencies.node_name_coal_lump,
|
||||
sounds = df_dependencies.sound_stone(),
|
||||
is_ground_content = true,
|
||||
_mcl_blast_resistance = 5,
|
||||
_mcl_hardness = 3,
|
||||
})
|
||||
|
||||
minetest.register_on_dignode(function(pos, oldnode, digger)
|
||||
if minetest.get_item_group(oldnode.name, "digtron") > 0 then
|
||||
-- skip digtron moved nodes
|
||||
return;
|
||||
end
|
||||
|
||||
local np = minetest.find_node_near(pos, 1,{"mine_gas:gas"})
|
||||
if np ~= nil then
|
||||
minetest.set_node(pos, {name = "mine_gas:gas"})
|
||||
return
|
||||
end
|
||||
end)
|
||||
|
||||
local directions = {
|
||||
{x=1, y=0, z=0},
|
||||
{x=-1, y=0, z=0},
|
||||
{x=0, y=0, z=1},
|
||||
{x=0, y=0, z=-1},
|
||||
}
|
||||
|
||||
local gas_node = {name="mine_gas:gas"}
|
||||
minetest.register_abm({
|
||||
label = "mine_gas:gas movement",
|
||||
nodenames = {"mine_gas:gas"},
|
||||
neighbors = {"group:liquid", "air"},
|
||||
interval = 1.0,
|
||||
chance = 1,
|
||||
catch_up = true,
|
||||
action = function(pos, node)
|
||||
local next_pos = {x=pos.x, y=pos.y+1, z=pos.z}
|
||||
local next_node = minetest.get_node(next_pos)
|
||||
if minetest.get_item_group(next_node.name, "liquid") > 0 then
|
||||
minetest.swap_node(next_pos, gas_node)
|
||||
minetest.swap_node(pos, next_node)
|
||||
else
|
||||
next_pos.y = pos.y-1
|
||||
next_node = minetest.get_node(next_pos)
|
||||
if next_node.name == "air" then
|
||||
minetest.swap_node(next_pos, gas_node)
|
||||
minetest.swap_node(pos, next_node)
|
||||
else
|
||||
local dir = directions[math.random(1,4)]
|
||||
local next_pos = vector.add(pos, dir)
|
||||
local next_node = minetest.get_node(next_pos)
|
||||
if next_node.name == "air" or minetest.get_item_group(next_node.name, "liquid") > 0 then
|
||||
if next_node.name == "air" or math.random() < 0.5 then -- gas never "climbs" above air.
|
||||
minetest.swap_node(next_pos, gas_node)
|
||||
minetest.swap_node(pos, next_node)
|
||||
else
|
||||
-- this can get gas to rise up out of the surface of liquid, preventing it from forming a permanent hole.
|
||||
next_pos.y = next_pos.y + 1
|
||||
next_node = minetest.get_node(next_pos)
|
||||
if next_node.name == "air" then
|
||||
minetest.swap_node(next_pos, gas_node)
|
||||
minetest.swap_node(pos, next_node)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
local soundfile_cool_lava = df_dependencies.soundfile_cool_lava
|
||||
|
||||
minetest.register_abm({
|
||||
label = "mine_gas:gas snuffing torches",
|
||||
nodenames = {"group:torch"},
|
||||
neighbors = {"mine_gas:gas"},
|
||||
interval = 1.0,
|
||||
chance = 1,
|
||||
catch_up = true,
|
||||
action = function(pos, node)
|
||||
if not minetest.find_node_near(pos, 1, "air") then
|
||||
local torch_node = minetest.get_node(pos)
|
||||
local drops = minetest.get_node_drops(torch_node.name, "")
|
||||
for _, dropped_item in pairs(drops) do
|
||||
minetest.add_item(pos, dropped_item)
|
||||
end
|
||||
minetest.set_node(pos, {name="mine_gas:gas"})
|
||||
minetest.sound_play(
|
||||
soundfile_cool_lava,
|
||||
{pos = pos, max_hear_distance = 16, gain = 0.1}
|
||||
)
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
local tnt_boom = df_dependencies.tnt_boom
|
||||
|
||||
if tnt_boom then
|
||||
minetest.register_abm({
|
||||
label = "mine_gas:gas ignition",
|
||||
nodenames = {"group:torch", "group:igniter", "group:fire"}, -- checking for ignition sources because there will be fewer than there are gas nodes
|
||||
neighbors = {"mine_gas:gas"},
|
||||
interval = 1.0,
|
||||
chance = 1,
|
||||
catch_up = true,
|
||||
action = function(pos, node)
|
||||
if minetest.find_node_near(pos, 1, "air") then
|
||||
tnt_boom(pos, {radius=1, damage_radius=6})
|
||||
-- One in a hundred explosions will spawn a gas wisp
|
||||
if math.random() < 0.01 then
|
||||
minetest.set_node(pos, {name="mine_gas:gas_wisp"})
|
||||
end
|
||||
end
|
||||
end,
|
||||
})
|
||||
end
|
||||
|
||||
local orthogonal = {
|
||||
{x=0,y=0,z=1},
|
||||
{x=0,y=1,z=0},
|
||||
{x=1,y=0,z=0},
|
||||
{x=0,y=0,z=-1},
|
||||
{x=0,y=-1,z=0},
|
||||
{x=-1,y=0,z=0},
|
||||
}
|
||||
|
||||
local stone_with_coal = df_dependencies.node_name_stone_with_coal
|
||||
minetest.register_lbm({
|
||||
label = "shut down gas seeps near lava",
|
||||
name = "mine_gas:shut_down_lava_adjacent",
|
||||
nodenames = {"mine_gas:gas_seep"},
|
||||
run_at_every_load = true,
|
||||
action = function(pos, node)
|
||||
minetest.after(math.random()*60, function()
|
||||
if minetest.find_node_near(pos, 30, "group:lava") then
|
||||
minetest.set_node(pos, {name=stone_with_coal})
|
||||
end
|
||||
end)
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_abm({
|
||||
label = "mine_gas:gas seep",
|
||||
nodenames = {"mine_gas:gas_seep"},
|
||||
neighbors = {"air"},
|
||||
interval = 1.0,
|
||||
chance = 1,
|
||||
catch_up = true,
|
||||
action = function(pos, node)
|
||||
local target_pos = vector.add(pos,orthogonal[math.random(1,6)])
|
||||
if minetest.get_node(target_pos).name == "air" then
|
||||
minetest.swap_node(target_pos, {name="mine_gas:gas"})
|
||||
if math.random() < 0.5 then
|
||||
minetest.sound_play(
|
||||
"mine_gas_seep_hiss",
|
||||
{pos = pos, max_hear_distance = 8, gain = 0.05}
|
||||
)
|
||||
end
|
||||
end
|
||||
end,
|
||||
})
|
||||
@@ -0,0 +1,36 @@
|
||||
# textdomain: mine_gas
|
||||
|
||||
|
||||
### init.lua ###
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Gas Seep=Gassickern
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Gas is highly hazardous. Heavier than air, it pools in deep caverns and asphyxiates the unwary.=Gas ist sehr gefährlich. Schwerer als Luft, sammelt es sich in tiefen Höhlen und erstickt die Unachtsamen.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Gaseous hydrocarbons formed from the detritus of long dead plants and animals processed by heat and pressure deep within the earth.=Gasförmige Kohlenwasserstoffe, die aus dem Abfall langer toter Pflanzen und Tiere entstehen, die durch Hitze und Druck tief in der Erde verarbeitet werden.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Mine Gas=Minengas
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Mining out such a deposit seals the crack.=Durch den Abbau einer solchen Ablagerung wird der Riss versiegelt.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Some coal deposits have cracks that seep a steady flow of mine gas.=Einige Kohlevorkommen weisen Risse auf, die einen stetigen Fluss von Minengas versickern lassen.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
When exposed to air and an ignition source it can produce a deadly explosion.=Wenn es Luft und einer Zündquelle ausgesetzt wird, kann es zu einer tödlichen Explosion kommen.
|
||||
|
||||
|
||||
### wisp.lua ###
|
||||
|
||||
Gas Wisp=
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Gas Wisps have no known use, and fortunately they are not hostile or very dangerous.=Gas-Wisps haben keine bekannte Verwendung und sind glücklicherweise nicht feindlich oder sehr gefährlich.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Mysterious blue flames may occasionally be found flickering on the edges of oil lakes, burning without oxygen and seeming to maintain their size as they drift about through the unbreathable atmosphere.=Gelegentlich flackern mysteriöse blaue Flammen an den Rändern von Ölseen, brennen ohne Sauerstoff und scheinen ihre Größe beizubehalten, wenn sie durch die unatmbare Atmosphäre treiben.
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
# textdomain: mine_gas
|
||||
|
||||
|
||||
### init.lua ###
|
||||
|
||||
Gas Seep=
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Gas is highly hazardous. Heavier than air, it pools in deep caverns and asphyxiates the unwary.=Il gas è altamente pericoloso. Più pesante dell'aria, si accumula in profonde caverne e asfissia gli incauti.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Gaseous hydrocarbons formed from the detritus of long dead plants and animals processed by heat and pressure deep within the earth.=Idrocarburi gassosi formati dai detriti di piante e animali morti da tempo lavorati dal calore e dalla pressione nelle profondità della terra.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Mine Gas=Il mio gas
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Mining out such a deposit seals the crack.=L'estrazione di un tale deposito sigilla la fessura.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Some coal deposits have cracks that seep a steady flow of mine gas.=Alcuni depositi di carbone hanno crepe che filtrano un flusso costante di gas di miniera.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
When exposed to air and an ignition source it can produce a deadly explosion.=Se esposto all'aria e ad una fonte di ignizione può produrre un'esplosione mortale.
|
||||
|
||||
|
||||
### wisp.lua ###
|
||||
|
||||
Gas Wisp=
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Gas Wisps have no known use, and fortunately they are not hostile or very dangerous.=I Gas Wisps non hanno un uso noto e fortunatamente non sono ostili o molto pericolosi.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Mysterious blue flames may occasionally be found flickering on the edges of oil lakes, burning without oxygen and seeming to maintain their size as they drift about through the unbreathable atmosphere.=Occasionalmente si possono trovare misteriose fiamme blu tremolanti sui bordi dei laghi petroliferi, che bruciano senza ossigeno e sembrano mantenere le loro dimensioni mentre vagano nell'atmosfera irrespirabile.
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
# textdomain: mine_gas
|
||||
|
||||
|
||||
### init.lua ###
|
||||
|
||||
Gas Seep=
|
||||
|
||||
Gas is highly hazardous. Heavier than air, it pools in deep caverns and asphyxiates the unwary.=
|
||||
|
||||
Gaseous hydrocarbons formed from the detritus of long dead plants and animals processed by heat and pressure deep within the earth.=
|
||||
|
||||
Mine Gas=
|
||||
Mining out such a deposit seals the crack.=
|
||||
|
||||
Some coal deposits have cracks that seep a steady flow of mine gas.=
|
||||
|
||||
When exposed to air and an ignition source it can produce a deadly explosion.=
|
||||
|
||||
|
||||
### wisp.lua ###
|
||||
|
||||
Gas Wisp=
|
||||
|
||||
Gas Wisps have no known use, and fortunately they are not hostile or very dangerous.=
|
||||
|
||||
Mysterious blue flames may occasionally be found flickering on the edges of oil lakes, burning without oxygen and seeming to maintain their size as they drift about through the unbreathable atmosphere.=
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
name = mine_gas
|
||||
description = An explosive, asphyxiating heavier-than-air gas to add hazards to caves
|
||||
depends = df_dependencies
|
||||
optional_depends = tnt, doc
|
||||
@@ -0,0 +1,2 @@
|
||||
mine_gas_seep_hiss.1 is from https://freesound.org/people/wubitog/sounds/234782/ under the public domain (CC0)
|
||||
mine_gas_seep_hiss.2 is from https://freesound.org/people/kgatto/sounds/240263/ by kgatto under the CC-BY-3.0 license
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1 @@
|
||||
All textures not specifically listed here are created by FaceDeer and released under both the MIT license and under the Creative Commons CC0 license.
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 83 B |
Binary file not shown.
|
After Width: | Height: | Size: 2.2 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 567 B |
@@ -0,0 +1,89 @@
|
||||
local modname = minetest.get_current_modname()
|
||||
local S = minetest.get_translator(modname)
|
||||
|
||||
local wisp_desc
|
||||
local wisp_usage
|
||||
|
||||
if minetest.get_modpath("doc") then
|
||||
wisp_desc = S("Mysterious blue flames may occasionally be found flickering on the edges of oil lakes, burning without oxygen and seeming to maintain their size as they drift about through the unbreathable atmosphere.")
|
||||
wisp_usage = S("Gas Wisps have no known use, and fortunately they are not hostile or very dangerous.")
|
||||
end
|
||||
|
||||
minetest.register_node("mine_gas:gas_wisp", {
|
||||
description = S("Gas Wisp"),
|
||||
_doc_items_longdesc = wisp_desc,
|
||||
_doc_items_usagehelp = wisp_usage,
|
||||
walkable = false,
|
||||
is_ground_content = false,
|
||||
diggable = false,
|
||||
buildable_to = true,
|
||||
drawtype = "plantlike",
|
||||
waving = 1,
|
||||
drowning = 1,
|
||||
damage_per_second = 4,
|
||||
post_effect_color = {a = 20, r = 20, g = 20, b = 250},
|
||||
tiles = {{name = "mine_gas_wisp.png", animation =
|
||||
{
|
||||
type = "vertical_frames",
|
||||
aspect_w = 16,
|
||||
aspect_h = 16,
|
||||
length = 1.5,
|
||||
},
|
||||
}},
|
||||
light_source = 10,
|
||||
use_texture_alpha = "clip",
|
||||
groups = {not_in_creative_inventory=0},
|
||||
paramtype = "light",
|
||||
paramtype2 = "meshoptions",
|
||||
place_param2 = 0,
|
||||
-- * bit 4 (0x10, decimal 16) - Makes the plant mesh 1.4x larger
|
||||
inventory_image = "mine_gas_wisp_inventory.png",
|
||||
drop = {},
|
||||
sunlight_propagates = true,
|
||||
on_blast = function() end, -- unaffected by explosions
|
||||
_mcl_blast_resistance = 3600000,
|
||||
_mcl_hardness = 0,
|
||||
})
|
||||
|
||||
minetest.register_abm({
|
||||
label = "mine_gas:gas wisp movement",
|
||||
nodenames = {"mine_gas:gas_wisp"},
|
||||
neighbors = {"mine_gas:gas"},
|
||||
interval = 1.0,
|
||||
chance = 10,
|
||||
catch_up = true,
|
||||
action = function(pos, node)
|
||||
local next_pos = {x=pos.x+math.random(1,3)-2, y=pos.y+math.random(1,3)-2, z=pos.z+math.random(1,3)-2}
|
||||
local next_node = minetest.get_node(next_pos)
|
||||
if next_node.name == "mine_gas:gas" then
|
||||
minetest.swap_node(next_pos, node)
|
||||
minetest.swap_node(pos, next_node)
|
||||
end
|
||||
pos = next_pos
|
||||
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_abm({
|
||||
label = "mine_gas:gas wisp extinguish",
|
||||
nodenames = {"mine_gas:gas_wisp"},
|
||||
neighbors = {"air"},
|
||||
interval = 10,
|
||||
chance = 1,
|
||||
catch_up = true,
|
||||
action = function(pos, node)
|
||||
for y = -1, 1 do
|
||||
for x = -1, 1 do
|
||||
for z = -1, 1 do
|
||||
local node_name = minetest.get_node({x=pos.x+x, y=pos.y+y, z=pos.z+z}).name
|
||||
if node_name == "mine_gas:gas" or minetest.get_item_group(node_name, "flammable") > 0 then
|
||||
-- there's gas or a flammable adjacent, don't extinguish
|
||||
return
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
-- no gas adjacent, extinguish
|
||||
minetest.set_node(pos, {name="air"})
|
||||
end,
|
||||
})
|
||||
Reference in new issue
Block a user