Compare commits
19 Commits
v2
...
e0656eacae
Author | SHA1 | Date | |
---|---|---|---|
e0656eacae | |||
5a2a6c63f1 | |||
00bb132edb | |||
89db416d09 | |||
c7776cc082 | |||
bfdd8d18b4 | |||
09ca1efd62 | |||
f3c6f2df23 | |||
2fb93b8c74 | |||
60d4f8c7df | |||
1268049706 | |||
c70a669709 | |||
281d6fc07f | |||
97cf3250e4 | |||
c0481ea4ca | |||
3577fd1f5e | |||
9ab325fa8c | |||
9e3d5bf997 | |||
c5ef9136ec |
14
README.md
@ -27,22 +27,26 @@ SOFTWARE.
|
||||
|
||||
### [Public Domain Dedication (CC0 1.0)](https://creativecommons.org/publicdomain/zero/1.0/)
|
||||
|
||||
* `nether_portal_teleport.ogg` is a timing adjusted version of "teleport" by outroelison (https://freesound.org/people/outroelison), used under CC0 1.0
|
||||
* `nether_portal_teleport.ogg` is a timing adjusted version of "teleport" by [outroelison](https://freesound.org/people/outroelison), used under CC0 1.0
|
||||
|
||||
### [Attribution 3.0 Unported (CC BY 3.0)](https://creativecommons.org/licenses/by/3.0/)
|
||||
|
||||
* `nether_portal_ambient.ogg` & `nether_portal_ambient.0.ogg` are extractions from "Deep Cinematic Rumble Stereo" by [Patrick Lieberkind](http://www.lieberkindvisuals.dk), used under CC BY 3.0
|
||||
* `nether_portal_extinguish.ogg` is an extraction from "Tight Laser Weapon Hit Scifi" by damjancd (https://freesound.org/people/damjancd), used under CC BY 3.0
|
||||
* `nether_portal_ignite.ogg` is a derivative of "Flame Ignition" by hykenfreak (https://freesound.org/people/hykenfreak), used under CC BY 3.0. "Nether Portal ignite" is licensed under CC BY 3.0 by Treer.
|
||||
* `nether_portal_extinguish.ogg` is an extraction from "Tight Laser Weapon Hit Scifi" by [damjancd](https://freesound.org/people/damjancd), used under CC BY 3.0
|
||||
* `nether_portal_ignite.ogg` is a derivative of "Flame Ignition" by [hykenfreak](https://freesound.org/people/hykenfreak), used under CC BY 3.0. "Nether Portal ignite" is licensed under CC BY 3.0 by Treer.
|
||||
|
||||
### [Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)](https://creativecommons.org/licenses/by-sa/4.0/)
|
||||
* `nether_book_`* (files starting with "nether_book"): Treer, 2019-2020
|
||||
* `nether_portal_ignition_failure.ogg`: Treer, 2019
|
||||
* `nether_fumarole.ogg`: Treer, 2020
|
||||
* `nether_particle_anim`* (files starting with "nether_particle_anim"): Treer, 2019
|
||||
* `nether_portal_ignition_failure.ogg`: Treer, 2019
|
||||
* `nether_smoke_puff.png`: Treer, 2020
|
||||
|
||||
### [Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)](http://creativecommons.org/licenses/by-sa/3.0/)
|
||||
* `nether_rack.png`: Zeg9
|
||||
* `nether_glowstone.png`: BlockMen
|
||||
* `nether_nether_ingot.png` & `nether_nether_lump.png`: color adjusted versions from "[default](https://github.com/minetest/minetest_game/tree/master/mods/default)" mod, originally by Gambit
|
||||
* `nether_portal.png`: [Extex101](https://github.com/Extex101), 2020
|
||||
* `nether_rack.png`: Zeg9
|
||||
* `nether_tool_`* (files starting with "nether_tool_"): color adjusted versions from "[default](https://github.com/minetest/minetest_game/tree/master/mods/default)" mod, originals by BlockMen
|
||||
|
||||
All other media: Copyright © 2013 PilzAdam, licensed under CC BY-SA 3.0 by PilzAdam.
|
@ -5,3 +5,4 @@ mesecons?
|
||||
loot?
|
||||
dungeon_loot?
|
||||
doc_basics?
|
||||
fire?
|
||||
|
5
init.lua
@ -51,8 +51,8 @@ nether.useBiomes = minetest.get_mapgen_setting("mg_name") ~= "v6" and minet
|
||||
|
||||
|
||||
-- Settings
|
||||
nether.DEPTH_CEILING = -5000 -- The y location of the Nether's celing
|
||||
nether.DEPTH_FLOOR = -11000 -- The y location of the Nether's floor
|
||||
nether.DEPTH_CEILING = -25000 -- The y location of the Nether's celing
|
||||
nether.DEPTH_FLOOR = -31000 -- The y location of the Nether's floor
|
||||
nether.FASTTRAVEL_FACTOR = 8 -- 10 could be better value for Minetest, since there's no sprint, but ex-Minecraft players will be mathing for 8
|
||||
nether.PORTAL_BOOK_LOOT_WEIGHTING = 0.9 -- Likelyhood of finding the Book of Portals (guide) in dungeon chests. Set to 0 to disable.
|
||||
nether.NETHER_REALM_ENABLED = true -- Setting to false disables the Nether and Nether portal
|
||||
@ -115,6 +115,7 @@ end
|
||||
-- Load files
|
||||
dofile(nether.path .. "/portal_api.lua")
|
||||
dofile(nether.path .. "/nodes.lua")
|
||||
dofile(nether.path .. "/tools.lua")
|
||||
if nether.NETHER_REALM_ENABLED then
|
||||
if nether.useBiomes then
|
||||
dofile(nether.path .. "/mapgen.lua")
|
||||
|
62
locale/nether.fr.tr
Normal file
@ -0,0 +1,62 @@
|
||||
# textdomain: nether
|
||||
|
||||
# Translation FR by Louis Royer
|
||||
|
||||
|
||||
### init.lua ###
|
||||
|
||||
Construction requires 14 blocks of obsidian, which we found deep underground where water had solidified molten rock. The finished frame is four blocks wide, five blocks high, and stands vertically, like a doorway.@n@nThis opens to a truly hellish place, though for small mercies the air there is still breathable. There is an intriguing dimensional mismatch happening between this realm and ours, as after opening the second portal into it we observed that 10 strides taken in the Nether appear to be an equivalent of @1 in the natural world.@n@nThe expedition parties have found no diamonds or gold, and after an experienced search party failed to return from the trail of a missing expedition party, I must conclude this is a dangerous place.=Cette construction nécessite 14 blocs d’obsidienne, qui peut être trouvée profondément sous terre, là où l’eau a solidifié de la roche fondue. Une fois terminé, le cadre fait quatre blocs de large, cinq blocs de haut, et se tient verticalement comme une porte.@n@nElle ouvre sur un lieu vraiment infernal, mais on peut s’estimer heureux que l’air y soit quand même respirable. Il y a un décalage dimensionnel intrigant entre ce monde et le nôtre, car après avoir ouvert un deuxième portail, nous avons observé que 10 pas effectués dans le Nether semblent être l’équivalent de @1 dans notre monde.@n@nLes membres de l’expédition n’ontr trouvé ni diamants ni or, et après qu’un groupe de recheche expérimenté n’ait pas réussi à retrouver la piste d’un membre de l’expédition disparu, je n’ai d’autre choix que de conclure que cet endroit est trop dangereux pour nous.
|
||||
|
||||
|
||||
### init.lua ###
|
||||
### nodes.lua ###
|
||||
|
||||
Nether Portal=Portail du Nether
|
||||
|
||||
### nodes.lua ###
|
||||
|
||||
Glowstone=Pierre lumineuse
|
||||
Inner Nether Stair=Escalier intérieur du Nether
|
||||
Nether Brick=Brique du Nether
|
||||
Nether Brick Fence=Barrière en briques du Nether
|
||||
Nether Slab=Dalle du Nether
|
||||
Nether Stair=Escalier du Nether
|
||||
Netherrack=Roche du Nether
|
||||
Nethersand=Sable du Nether
|
||||
Outer Nether Stair=Escalier extérieur du Nether
|
||||
|
||||
### portal_api.lua ###
|
||||
|
||||
@n@nThe key to opening such a doorway is to strike the frame with a @1, at which point the very air inside begins to crackle and glow.=@n@nLa méthode pour ouvrir une telle porte est de frapper son cadre avec un @1, jusqu’à ce que tout l’air à l’intérieur commence à crépiter et briller.
|
||||
|
||||
A definitive guide to Rifts and Portals=Un guide détaillé des failles et des portails
|
||||
|
||||
A guidebook for how to build portals to other realms. It can sometimes be found in dungeon chests, however a copy of this book is not needed as its contents are included in this Encyclopedia.=Un guide sur comment construire des portails vers d’autres mondes. Il peut parfois être trouvé dans des coffres de dongeons, cependant la copie de ce livre n’est pas nécessaire puisque son contenu est inclus dans l’encyclopédie.
|
||||
|
||||
Book of Portals=Livre des portails
|
||||
Building Portals=Construire des portails
|
||||
|
||||
In all my travels, and time spent in the Great Libraries, I have encountered no shortage of legends surrounding preternatural doorways said to open into other worlds, yet only @1 can I confirm as being more than merely stories.=Après tous mes voyages, et le temps passé dans les Grandes Bibliothèques, je ne manque pas de légendes sur les portes surnaturelles qui, dit-on s’ouvrent vers d’autres mondes, mais seul @1 peut confirmer que ce sont plus que de simples histoires.
|
||||
|
||||
In all my travels, and time spent in the Great Libraries, I have encountered no shortage of legends surrounding preternatural doorways said to open into other worlds, yet only one can I confirm as being more than merely a story.=Après tous mes voyages, et le temps passé dans les Grandes Bibliothèques, je ne manque pas de légendes sur les portes surnaturelles qui, dit-on s’ouvrent vers d’autres mondes, mais seul une personne peut confirmer que ce sont plus que de simples histoires.
|
||||
|
||||
Portal wormhole=Vortex du portail
|
||||
|
||||
Portals to other realms can be opened by building a frame in the right shape with the right blocks, then using an item to activate it. A local copy of the guidebook to portals is published below.@n---@n@n=Les portails vers d’autres mondes peuvent être ouvert en construisant un cadre de la bonne forme avec les bons blocs, puis en utilisant un objet pour l’activer. Une copie du guide des portails est ci-dessous.@n---@n@n
|
||||
|
||||
Refer: "Help" > "Basics" > "Building Portals"=Voir : Aide > Bases > Construire des portails
|
||||
Untitled portal=Portail sans nom
|
||||
We know almost nothing about this portal=Nous ne savons presque rien sur les portails
|
||||
|
||||
### portal_examples.lua ###
|
||||
|
||||
Floatlands Portal=Portail du monde flottant
|
||||
|
||||
Requiring 16 blocks of tin and constructed in a circular fashion, a finished frame is seven blocks wide, seven blocks high, and stands vertically like a doorway.@n@nThese travel a distance along the ground, and even when constructed deep underground will link back up to the surface. They appear to favor a strange direction, with the exit portal linking back only for as long as the portal stays open — attempting to reopen a portal from the exit doorway leads to a new destination along this favored direction. It has stymied our ability to study the behavior of these portals because without constructing dual portals and keeping both open it's hard to step through more than one and still be able to return home.@n@nDue to such difficulties, we never learned what determines the direction and distance where the matching twin portal will appear, and I have lost my friend and protégé. In cavalier youth and with little more than a rucksack, Coudreau has decided to follow the chain as far as it goes, and has not been seen since. Coudreau believes it works in epicycles, but I am not convinced. Still, I cling to the hope that one day the portal will open and Coudreau will step out from whichever place leads to this one, perhaps with an epic tale to tell.=Nécessite 16 blocs d’étain placés de manière circulaire, le cadre final fait sept blocs de large, sept blocs de haut, et se tient verticalement comme une porte.@n@nIls permettent de voyager une distance sous le sol et se relieent à la surface même s’ils sont construits profondément sous terre. Ils ont l’air de préférer une direction étrange, avec le portail de sortie ne se reliant au portail d’entrée que tant qu’ils restent tous deux ouverts – tenter de réouvrir le portail de sortie mènera à une nouvelle destination dans cette direction privilégiée.Cela a entravé notre capacité à étudier le comportement de ces portails, car sans la construction de doubles portails et en gardant les deux ouverts, il est difficile d'en traverser plus d'un et de pouvoir rentrer chez soi.@n@nEn raison de ces difficultés, nous n'avons jamais appris ce qui détermine la direction et la distance à laquelle le portail jumeau correspondant apparaîtra, et j’ai perdu mon ami et mon protégé. Dans sa jeunesse cavalière et avec à peine plus qu'un sac à dos, Coudreau a décidé de suivre la chaîne jusqu'au bout, et n'a pas été vu depuis. Coudreau croit qu'elle fonctionne sur les épicycles, mais je n'en suis pas convaincu. Je m'accroche néanmoins à l'espoir qu'un jour le portail s'ouvrira et que Coudreau sortira de l'endroit qui mène à celui-ci, peut-être avec un récit épique à raconter.
|
||||
|
||||
Requiring 21 blocks of ice, and constructed in the shape of a 3 × 3 platform with walls, or like a bowl. A finished platform is 2 blocks high, and 5 blocks wide at the widest in both directions.@n@nThis portal is different to the others, rather than acting akin to a doorway it appears to the eye more like a small pool of water which can be stepped into. Upon setting foot in the portal we found ourselves at a tremendous altitude.@1=Nécessite 21 blocs de glace placés pour former une plateforme de 3 × 3 avec des murs, ou comme un bol. La plateforme finale fait 2 blocs de haut, et 5 blocs de large à sa largeur maximale dans les deux directions.@n@nCe portail est différent des autres, au lieu de ressembler à une porte, il ressemble plus à un petit bassin d’eau dans lequel on peut entrer. En mettant les pieds dans le portail, nous nous sommes retrouvés à une altitude énorme.@1
|
||||
|
||||
Surface Portal=Portail de surface
|
||||
|
||||
There is a floating land of hills and forests up there, over the edges of which is a perilous drop all the way back down to sea level. We have not found how far these pristine lands extend. I have half a mind to retire there one day.=Il y a là un monde flottant remplis de collines et de forêts, sur les bords duquel se trouve une chute périlleuse jusqu'au niveau de la mer. Nous n'avons pas encore trouvé jusqu'où s'étendent ces terres vierges. J'ai à moitié envie de m'y retirer un jour.
|
||||
|
61
locale/template.txt
Normal file
@ -0,0 +1,61 @@
|
||||
# textdomain: nether
|
||||
|
||||
|
||||
|
||||
### init.lua ###
|
||||
|
||||
Construction requires 14 blocks of obsidian, which we found deep underground where water had solidified molten rock. The finished frame is four blocks wide, five blocks high, and stands vertically, like a doorway.@n@nThis opens to a truly hellish place, though for small mercies the air there is still breathable. There is an intriguing dimensional mismatch happening between this realm and ours, as after opening the second portal into it we observed that 10 strides taken in the Nether appear to be an equivalent of @1 in the natural world.@n@nThe expedition parties have found no diamonds or gold, and after an experienced search party failed to return from the trail of a missing expedition party, I must conclude this is a dangerous place.=
|
||||
|
||||
|
||||
### init.lua ###
|
||||
### nodes.lua ###
|
||||
|
||||
Nether Portal=
|
||||
|
||||
### nodes.lua ###
|
||||
|
||||
Glowstone=
|
||||
Inner Nether Stair=
|
||||
Nether Brick=
|
||||
Nether Brick Fence=
|
||||
Nether Slab=
|
||||
Nether Stair=
|
||||
Netherrack=
|
||||
Nethersand=
|
||||
Outer Nether Stair=
|
||||
|
||||
### portal_api.lua ###
|
||||
|
||||
@n@nThe key to opening such a doorway is to strike the frame with a @1, at which point the very air inside begins to crackle and glow.=
|
||||
|
||||
A definitive guide to Rifts and Portals=
|
||||
|
||||
A guidebook for how to build portals to other realms. It can sometimes be found in dungeon chests, however a copy of this book is not needed as its contents are included in this Encyclopedia.=
|
||||
|
||||
Book of Portals=
|
||||
Building Portals=
|
||||
|
||||
In all my travels, and time spent in the Great Libraries, I have encountered no shortage of legends surrounding preternatural doorways said to open into other worlds, yet only @1 can I confirm as being more than merely stories.=
|
||||
|
||||
In all my travels, and time spent in the Great Libraries, I have encountered no shortage of legends surrounding preternatural doorways said to open into other worlds, yet only one can I confirm as being more than merely a story.=
|
||||
|
||||
Portal wormhole=
|
||||
|
||||
Portals to other realms can be opened by building a frame in the right shape with the right blocks, then using an item to activate it. A local copy of the guidebook to portals is published below.@n---@n@n=
|
||||
|
||||
Refer: "Help" > "Basics" > "Building Portals"=
|
||||
Untitled portal=
|
||||
We know almost nothing about this portal=
|
||||
|
||||
### portal_examples.lua ###
|
||||
|
||||
Floatlands Portal=
|
||||
|
||||
Requiring 16 blocks of tin and constructed in a circular fashion, a finished frame is seven blocks wide, seven blocks high, and stands vertically like a doorway.@n@nThese travel a distance along the ground, and even when constructed deep underground will link back up to the surface. They appear to favor a strange direction, with the exit portal linking back only for as long as the portal stays open — attempting to reopen a portal from the exit doorway leads to a new destination along this favored direction. It has stymied our ability to study the behavior of these portals because without constructing dual portals and keeping both open it's hard to step through more than one and still be able to return home.@n@nDue to such difficulties, we never learned what determines the direction and distance where the matching twin portal will appear, and I have lost my friend and protégé. In cavalier youth and with little more than a rucksack, Coudreau has decided to follow the chain as far as it goes, and has not been seen since. Coudreau believes it works in epicycles, but I am not convinced. Still, I cling to the hope that one day the portal will open and Coudreau will step out from whichever place leads to this one, perhaps with an epic tale to tell.=
|
||||
|
||||
Requiring 21 blocks of ice, and constructed in the shape of a 3 × 3 platform with walls, or like a bowl. A finished platform is 2 blocks high, and 5 blocks wide at the widest in both directions.@n@nThis portal is different to the others, rather than acting akin to a doorway it appears to the eye more like a small pool of water which can be stepped into. Upon setting foot in the portal we found ourselves at a tremendous altitude.@1=
|
||||
|
||||
Surface Portal=
|
||||
|
||||
There is a floating land of hills and forests up there, over the edges of which is a perilous drop all the way back down to sea level. We have not found how far these pristine lands extend. I have half a mind to retire there one day.=
|
||||
|
@ -31,6 +31,16 @@ local G = {name = "nether:glowstone", prob = 255, force_place = true}
|
||||
local N = {name = "nether:rack", prob = 255}
|
||||
local S = {name = "nether:sand", prob = 255, force_place = true}
|
||||
local L = {name = "default:lava_source", prob = 255, force_place = true}
|
||||
local F = {name = "nether:fumarole", prob = 255, force_place = true}
|
||||
local FS = {name = "nether:fumarole_slab", prob = 255, force_place = true}
|
||||
local F1 = {name = "nether:fumarole_corner", prob = 255, force_place = true, param2 = 0}
|
||||
local F2 = {name = "nether:fumarole_corner", prob = 255, force_place = true, param2 = 1}
|
||||
local F3 = {name = "nether:fumarole_corner", prob = 255, force_place = true, param2 = 2}
|
||||
local F4 = {name = "nether:fumarole_corner", prob = 255, force_place = true, param2 = 3}
|
||||
local S1 = {name = "stairs:stair_netherrack", prob = 255, force_place = true, param2 = 5}
|
||||
local S2 = {name = "stairs:stair_netherrack", prob = 255, force_place = true, param2 = 7}
|
||||
local S3 = {name = "stairs:stair_netherrack", prob = 255, force_place = true, param2 = 12}
|
||||
local S4 = {name = "stairs:stair_netherrack", prob = 255, force_place = true, param2 = 16}
|
||||
|
||||
|
||||
-- =================
|
||||
@ -39,7 +49,7 @@ local L = {name = "default:lava_source", prob = 255, force_place = true}
|
||||
|
||||
local schematic_GlowstoneStalactite = {
|
||||
size = {x = 5, y = 10, z = 5},
|
||||
data = {
|
||||
data = { -- note that data is upside down
|
||||
_, _, _, _, _,
|
||||
_, _, _, _, _,
|
||||
_, _, _, _, _,
|
||||
@ -136,3 +146,254 @@ minetest.register_decoration({
|
||||
flags = "place_center_x,place_center_z,all_ceilings",
|
||||
place_offset_y=-3
|
||||
})
|
||||
|
||||
|
||||
-- =======================================
|
||||
-- Concealed crevice / Lava sinkhole
|
||||
-- =======================================
|
||||
-- if player places a torch/block on this sand or digs it while standing on it, it sinks into lava
|
||||
|
||||
if allow_lava_decorations then
|
||||
minetest.register_decoration({
|
||||
name = "Weak trap",
|
||||
deco_type = "schematic",
|
||||
place_on = "nether:rack",
|
||||
sidelen = 80,
|
||||
fill_ratio = 0.002,
|
||||
biomes = {"nether_caverns"},
|
||||
y_max = nether.DEPTH, -- keep compatibility with mapgen_nobiomes.lua
|
||||
y_min = nether.DEPTH_FLOOR,
|
||||
schematic = {
|
||||
size = {x = 4, y = 7, z = 4},
|
||||
data = { -- note that data is upside down
|
||||
_, _, _, _,
|
||||
_, _, _, _,
|
||||
_, N, _, _,
|
||||
_, N, N, _,
|
||||
_, N, N, _,
|
||||
_, N, N, _,
|
||||
_, _, _, _,
|
||||
|
||||
_, N, _, _, -- make it look like a stalactite if it protrudes out the bottom of a landform
|
||||
_, N, _, _,
|
||||
N, L, N, _,
|
||||
N, L, L, N,
|
||||
N, L, L, N,
|
||||
N, A, A, N,
|
||||
_, S, S, _,
|
||||
|
||||
_, _, _, _,
|
||||
_, _, _, _,
|
||||
_, N, N, _,
|
||||
N, L, L, N,
|
||||
N, L, L, N,
|
||||
N, A, A, N,
|
||||
_, S, S, _,
|
||||
|
||||
_, _, _, _,
|
||||
_, _, _, _,
|
||||
_, _, _, _,
|
||||
_, N, N, _,
|
||||
_, N, N, _,
|
||||
_, N, N, _,
|
||||
_, _, _, _,
|
||||
}
|
||||
},
|
||||
replacements = {["nether:glowstone"] = "nether:rack"},
|
||||
flags = "place_center_x,place_center_z,force_placement, all_floors",
|
||||
place_offset_y=-6,
|
||||
rotation = "random"
|
||||
})
|
||||
end
|
||||
|
||||
|
||||
-- ==========================
|
||||
-- Fumaroles (Chimneys)
|
||||
-- ==========================
|
||||
|
||||
|
||||
local replacements_slab = {}
|
||||
local replacements_full = {["nether:fumarole_slab"] = "nether:fumarole"}
|
||||
|
||||
if allow_lava_decorations then
|
||||
-- Minetest engine limitations mean any mesh or nodebox node (like nether:fumarole)
|
||||
-- will light up if it has lava below it, so replace the air node over the lava with
|
||||
-- a node that prevents light propagation.
|
||||
-- (Unfortunately this also means if a player digs down to get the lava block it'll
|
||||
-- look like the lighting wasn't set in the block above the lava)
|
||||
replacements_slab["air"] = "nether:airlike_darkness"
|
||||
replacements_full["air"] = "nether:airlike_darkness"
|
||||
else
|
||||
-- Lava is frequently removed by the old mapgen, so put sand at the bottom
|
||||
-- of fumaroles.
|
||||
replacements_slab["default:lava_source"] = "nether:sand"
|
||||
replacements_full["default:lava_source"] = "nether:sand"
|
||||
end
|
||||
|
||||
|
||||
local schematic_fumarole = {
|
||||
size = {x = 3, y = 5, z = 3},
|
||||
data = { -- note that data is upside down
|
||||
_, _, _,
|
||||
_, N, _,
|
||||
_, N, _,
|
||||
_, _, _,
|
||||
_, _, _,
|
||||
|
||||
_, N, _,
|
||||
N, L, N,
|
||||
N, A, N,
|
||||
_, F, _,
|
||||
_,FS, _,
|
||||
|
||||
_, _, _,
|
||||
_, N, _,
|
||||
_, N, _,
|
||||
_, _, _,
|
||||
_, _, _,
|
||||
},
|
||||
}
|
||||
|
||||
-- Common fumarole decoration that's flush with the floor and spawns everywhere
|
||||
|
||||
minetest.register_decoration({
|
||||
name = "Sunken nether fumarole",
|
||||
deco_type = "schematic",
|
||||
place_on = {"nether:rack"},
|
||||
sidelen = 80,
|
||||
fill_ratio = 0.005,
|
||||
biomes = {"nether_caverns"},
|
||||
y_max = nether.DEPTH,
|
||||
y_min = nether.DEPTH_FLOOR,
|
||||
schematic = schematic_fumarole,
|
||||
replacements = replacements_full,
|
||||
flags = "place_center_x,place_center_z,all_floors",
|
||||
place_offset_y=-4
|
||||
})
|
||||
|
||||
|
||||
-- Rarer formations of raised fumaroles in clumps
|
||||
|
||||
local fumarole_clump_noise_offset = -0.58
|
||||
local fumarole_clump_noise = {
|
||||
offset = fumarole_clump_noise_offset,
|
||||
scale = 0.5,
|
||||
spread = {x = 40, y = 40, z = 15},
|
||||
octaves = 4,
|
||||
persist = 0.65,
|
||||
lacunarity = 2.0,
|
||||
}
|
||||
|
||||
fumarole_clump_noise.offset = fumarole_clump_noise_offset - 0.035
|
||||
minetest.register_decoration({
|
||||
name = "Raised Nether fumarole",
|
||||
deco_type = "schematic",
|
||||
place_on = {"nether:rack"},
|
||||
sidelen = 8,
|
||||
noise_params = fumarole_clump_noise,
|
||||
biomes = {"nether_caverns"},
|
||||
y_max = nether.DEPTH,
|
||||
y_min = nether.DEPTH_FLOOR,
|
||||
schematic = schematic_fumarole,
|
||||
replacements = replacements_full,
|
||||
flags = "place_center_x,place_center_z,all_floors",
|
||||
place_offset_y=-3
|
||||
})
|
||||
|
||||
fumarole_clump_noise.offset = fumarole_clump_noise_offset
|
||||
minetest.register_decoration({
|
||||
name = "Half-raised Nether fumarole",
|
||||
deco_type = "schematic",
|
||||
place_on = {"nether:rack"},
|
||||
sidelen = 8,
|
||||
noise_params = fumarole_clump_noise,
|
||||
biomes = {"nether_caverns"},
|
||||
y_max = nether.DEPTH,
|
||||
y_min = nether.DEPTH_FLOOR,
|
||||
schematic = schematic_fumarole,
|
||||
replacements = replacements_slab,
|
||||
flags = "place_center_x,place_center_z,all_floors",
|
||||
place_offset_y=-3
|
||||
})
|
||||
|
||||
fumarole_clump_noise.offset = fumarole_clump_noise_offset - 0.035
|
||||
minetest.register_decoration({
|
||||
name = "Nether fumarole mound",
|
||||
deco_type = "schematic",
|
||||
place_on = {"nether:rack"},
|
||||
sidelen = 8,
|
||||
noise_params = fumarole_clump_noise,
|
||||
biomes = {"nether_caverns"},
|
||||
y_max = nether.DEPTH,
|
||||
y_min = nether.DEPTH_FLOOR,
|
||||
schematic = {
|
||||
size = {x = 4, y = 4, z = 4},
|
||||
data = { -- note that data is upside down
|
||||
_, _, _, _,
|
||||
_, N, N, _,
|
||||
_, _, _, _,
|
||||
_, _, _, _,
|
||||
|
||||
_, S, S, _,
|
||||
N, A, A, N,
|
||||
_, S2, S1, _,
|
||||
_, F2, F1, _,
|
||||
|
||||
_, S, S, _,
|
||||
N, A, A, N,
|
||||
_, S3, S4, _,
|
||||
_, F3, F4, _,
|
||||
|
||||
_, _, _, _,
|
||||
_, N, N, _,
|
||||
_, _, _, _,
|
||||
_, _, _, _
|
||||
},
|
||||
yslice_prob = {{ypos = 3, prob = 192}} -- occasionally leave the fumarole cap off
|
||||
},
|
||||
flags = "place_center_x,place_center_z,all_floors",
|
||||
place_offset_y = -2
|
||||
})
|
||||
|
||||
fumarole_clump_noise.offset = fumarole_clump_noise_offset - 0.01
|
||||
minetest.register_decoration({
|
||||
name = "Double Nether fumarole",
|
||||
deco_type = "schematic",
|
||||
place_on = {"nether:rack"},
|
||||
sidelen = 8,
|
||||
noise_params = fumarole_clump_noise,
|
||||
biomes = {"nether_caverns"},
|
||||
y_max = nether.DEPTH,
|
||||
y_min = nether.DEPTH_FLOOR,
|
||||
schematic = {
|
||||
size = {x = 4, y = 5, z = 4},
|
||||
data = { -- note that data is upside down
|
||||
_, _, _, _,
|
||||
_, N, N, _,
|
||||
_, _, _, _,
|
||||
_, _, _, _,
|
||||
_, _, _, _,
|
||||
|
||||
_, S, S, _,
|
||||
N, A, A, N,
|
||||
_, S2, S1, _,
|
||||
_, F2, F, _,
|
||||
_, _, FS, _,
|
||||
|
||||
_, S, S, _,
|
||||
F, A, A, N, -- the F may add slight variance in landforms where it gets exposed
|
||||
_, S3, S4, _,
|
||||
_, F3, F4, _,
|
||||
_, _, _, _,
|
||||
|
||||
_, _, _, _,
|
||||
_, N, N, _,
|
||||
_, _, _, _,
|
||||
_, _, _, _,
|
||||
_, _, _, _
|
||||
}
|
||||
},
|
||||
flags = "place_center_x,place_center_z,all_floors",
|
||||
place_offset_y = -2,
|
||||
rotation = "random"
|
||||
})
|
3
mod.conf
@ -1 +1,4 @@
|
||||
name = nether
|
||||
description = Adds a deep underground realm with different mapgen that you can reach with obsidian portals.
|
||||
depends = stairs, default
|
||||
optional_depends = moreblocks, mesecons, loot, dungeon_loot, doc_basics, fire
|
||||
|
255
nodes.lua
@ -103,6 +103,14 @@ minetest.register_node("nether:brick", {
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node("nether:brick_compressed", {
|
||||
description = S("Compressed Netherbrick"),
|
||||
tiles = {"nether_brick_compressed.png"},
|
||||
groups = {cracky = 3, level = 2},
|
||||
is_ground_content = false,
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
local fence_texture =
|
||||
"default_fence_overlay.png^nether_brick.png^default_fence_overlay.png^[makealpha:255,126,126"
|
||||
|
||||
@ -133,6 +141,18 @@ stairs.register_stair_and_slab(
|
||||
{"nether_brick.png"},
|
||||
S("Nether Stair"),
|
||||
S("Nether Slab"),
|
||||
default.node_sound_stone_defaults(),
|
||||
nil,
|
||||
S("Inner Nether Stair"),
|
||||
S("Outer Nether Stair")
|
||||
)
|
||||
|
||||
stairs.register_stair(
|
||||
"netherrack",
|
||||
"nether:rack",
|
||||
{cracky = 2, level = 2},
|
||||
{"nether_rack.png"},
|
||||
S("Netherrack stair"),
|
||||
default.node_sound_stone_defaults()
|
||||
)
|
||||
|
||||
@ -149,6 +169,232 @@ if minetest.get_modpath("moreblocks") then
|
||||
end
|
||||
|
||||
|
||||
-- Fumaroles (Chimney's)
|
||||
|
||||
local function fumarole_startTimer(pos, timeout_factor)
|
||||
|
||||
if timeout_factor == nil then timeout_factor = 1 end
|
||||
local next_timeout = (math.random(50, 900) / 10) * timeout_factor
|
||||
|
||||
minetest.get_meta(pos):set_float("expected_timeout", next_timeout)
|
||||
minetest.get_node_timer(pos):start(next_timeout)
|
||||
end
|
||||
|
||||
-- Create an LBM to start fumarole node timers
|
||||
minetest.register_lbm({
|
||||
label = "Start fumarole smoke",
|
||||
name = "nether:start_fumarole",
|
||||
nodenames = {"nether:fumarole"},
|
||||
run_at_every_load = true,
|
||||
action = function(pos, node)
|
||||
local node_above = minetest.get_node({x = pos.x, y = pos.y + 1, z = pos.z})
|
||||
if node_above.name == "air" then --and node.param2 % 4 == 0 then
|
||||
fumarole_startTimer(pos)
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
local function set_fire(pos, extinguish)
|
||||
local posBelow = {x = pos.x, y = pos.y - 1, z = pos.z}
|
||||
|
||||
if extinguish then
|
||||
if minetest.get_node(pos).name == "fire:permanent_flame" then minetest.set_node(pos, {name="air"}) end
|
||||
if minetest.get_node(posBelow).name == "fire:permanent_flame" then minetest.set_node(posBelow, {name="air"}) end
|
||||
|
||||
elseif minetest.get_node(posBelow).name == "air" then
|
||||
minetest.set_node(posBelow, {name="fire:permanent_flame"})
|
||||
elseif minetest.get_node(pos).name == "air" then
|
||||
minetest.set_node(pos, {name="fire:permanent_flame"})
|
||||
end
|
||||
end
|
||||
|
||||
local function fumarole_onTimer(pos, elapsed)
|
||||
|
||||
local expected_timeout = minetest.get_meta(pos):get_float("expected_timeout")
|
||||
if elapsed > expected_timeout + 10 then
|
||||
-- The timer didn't fire when it was supposed to, so the chunk was probably inactive and has
|
||||
-- just been approached again, meaning *every* fumarole's on_timer is about to go off.
|
||||
-- Skip this event and restart the clock for a future random interval.
|
||||
fumarole_startTimer(pos, 1)
|
||||
return false
|
||||
end
|
||||
|
||||
-- Fumaroles in the Nether can catch fire.
|
||||
-- (if taken to the surface and used as cottage chimneys, they don't catch fire)
|
||||
local inNether = pos.y <= nether.DEPTH and pos.y >= nether.DEPTH_FLOOR
|
||||
local canCatchFire = inNether and minetest.registered_nodes["fire:permanent_flame"] ~= nil
|
||||
local smoke_offset = 0
|
||||
local timeout_factor = 1
|
||||
local smoke_time_adj = 1
|
||||
|
||||
local posAbove = {x = pos.x, y = pos.y + 1, z = pos.z}
|
||||
local extinguish = minetest.get_node(posAbove).name ~= "air"
|
||||
|
||||
if extinguish or (canCatchFire and math.floor(elapsed) % 7 == 0) then
|
||||
|
||||
if not extinguish then
|
||||
-- fumarole gasses are igniting
|
||||
smoke_offset = 1
|
||||
timeout_factor = 0.22 -- reduce burning time
|
||||
end
|
||||
|
||||
set_fire(posAbove, extinguish)
|
||||
set_fire({x = pos.x + 1, y = pos.y + 1, z = pos.z}, extinguish)
|
||||
set_fire({x = pos.x - 1, y = pos.y + 1, z = pos.z}, extinguish)
|
||||
set_fire({x = pos.x, y = pos.y + 1, z = pos.z + 1}, extinguish)
|
||||
set_fire({x = pos.x, y = pos.y + 1, z = pos.z - 1}, extinguish)
|
||||
|
||||
elseif inNether then
|
||||
|
||||
if math.floor(elapsed) % 3 == 1 then
|
||||
-- throw up some embers / lava splash
|
||||
local embers_particlespawn_def = {
|
||||
amount = 6,
|
||||
time = 0.1,
|
||||
minpos = {x=pos.x - 0.1, y=pos.y + 0.0, z=pos.z - 0.1},
|
||||
maxpos = {x=pos.x + 0.1, y=pos.y + 0.2, z=pos.z + 0.1},
|
||||
minvel = {x = -.5, y = 4.5, z = -.5},
|
||||
maxvel = {x = .5, y = 7, z = .5},
|
||||
minacc = {x = 0, y = -10, z = 0},
|
||||
maxacc = {x = 0, y = -10, z = 0},
|
||||
minexptime = 1.4,
|
||||
maxexptime = 1.4,
|
||||
minsize = .2,
|
||||
maxsize = .8,
|
||||
texture = "^[colorize:#A00:255",
|
||||
glow = 8
|
||||
}
|
||||
minetest.add_particlespawner(embers_particlespawn_def)
|
||||
embers_particlespawn_def.texture = "^[colorize:#A50:255"
|
||||
embers_particlespawn_def.maxvel.y = 3
|
||||
embers_particlespawn_def.glow = 12
|
||||
minetest.add_particlespawner(embers_particlespawn_def)
|
||||
|
||||
else
|
||||
-- gas noises
|
||||
minetest.sound_play("nether_fumarole", {
|
||||
pos = pos,
|
||||
max_hear_distance = 60,
|
||||
gain = 0.24,
|
||||
pitch = math.random(35, 95) / 100
|
||||
})
|
||||
end
|
||||
|
||||
else
|
||||
-- we're not in the Nether, so can afford to be a bit more smokey
|
||||
timeout_factor = 0.4
|
||||
smoke_time_adj = 1.3
|
||||
end
|
||||
|
||||
-- let out some smoke
|
||||
minetest.add_particlespawner({
|
||||
amount = 12 * smoke_time_adj,
|
||||
time = math.random(40, 60) / 10 * smoke_time_adj,
|
||||
minpos = {x=pos.x - 0.2, y=pos.y + smoke_offset, z=pos.z - 0.2},
|
||||
maxpos = {x=pos.x + 0.2, y=pos.y + smoke_offset, z=pos.z + 0.2},
|
||||
minvel = {x=0, y=0.7, z=-0},
|
||||
maxvel = {x=0, y=0.8, z=-0},
|
||||
minacc = {x=0.0,y=0.0,z=-0},
|
||||
maxacc = {x=0.0,y=0.1,z=-0},
|
||||
minexptime = 5,
|
||||
maxexptime = 5.5,
|
||||
minsize = 1.5,
|
||||
maxsize = 7,
|
||||
texture = "nether_smoke_puff.png",
|
||||
})
|
||||
|
||||
fumarole_startTimer(pos, timeout_factor)
|
||||
return false
|
||||
end
|
||||
|
||||
|
||||
minetest.register_node("nether:fumarole", {
|
||||
description="Fumarolic Chimney",
|
||||
tiles = {"nether_rack.png"},
|
||||
on_timer = fumarole_onTimer,
|
||||
after_place_node = function(pos, placer, itemstack, pointed_thing)
|
||||
fumarole_onTimer(pos, 1)
|
||||
return false
|
||||
end,
|
||||
is_ground_content = true,
|
||||
groups = {cracky = 3, level = 2, fumarole=1},
|
||||
paramtype = "light",
|
||||
drawtype = "nodebox",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.5000, -0.5000, -0.5000, -0.2500, 0.5000, 0.5000},
|
||||
{-0.5000, -0.5000, -0.5000, 0.5000, 0.5000, -0.2500},
|
||||
{-0.5000, -0.5000, 0.2500, 0.5000, 0.5000, 0.5000},
|
||||
{0.2500, -0.5000, -0.5000, 0.5000, 0.5000, 0.5000}
|
||||
}
|
||||
},
|
||||
selection_box = {type = 'fixed', fixed = {-.5, -.5, -.5, .5, .5, .5}}
|
||||
})
|
||||
|
||||
minetest.register_node("nether:fumarole_slab", {
|
||||
description="Fumarolic Chimney Slab",
|
||||
tiles = {"nether_rack.png"},
|
||||
is_ground_content = true,
|
||||
on_timer = fumarole_onTimer,
|
||||
after_place_node = function(pos, placer, itemstack, pointed_thing)
|
||||
fumarole_onTimer(pos, 1)
|
||||
return false
|
||||
end,
|
||||
groups = {cracky = 3, level = 2, fumarole=1},
|
||||
paramtype = "light",
|
||||
drawtype = "nodebox",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.5000, -0.5000, -0.5000, -0.2500, 0.000, 0.5000},
|
||||
{-0.5000, -0.5000, -0.5000, 0.5000, 0.000, -0.2500},
|
||||
{-0.5000, -0.5000, 0.2500, 0.5000, 0.000, 0.5000},
|
||||
{0.2500, -0.5000, -0.5000, 0.5000, 0.000, 0.5000}
|
||||
}
|
||||
},
|
||||
selection_box = {type = 'fixed', fixed = {-.5, -.5, -.5, .5, 0, .5}},
|
||||
collision_box = {type = 'fixed', fixed = {-.5, -.5, -.5, .5, 0, .5}}
|
||||
})
|
||||
|
||||
minetest.register_node("nether:fumarole_corner", {
|
||||
description="Fumarolic Chimney Corner",
|
||||
tiles = {"nether_rack.png"},
|
||||
is_ground_content = true,
|
||||
groups = {cracky = 3, level = 2, fumarole=1},
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
drawtype = "nodebox",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.2500, -0.5000, 0.5000, 0.000, 0.5000, 0.000},
|
||||
{-0.5000, -0.5000, 0.2500, 0.000, 0.5000, 0.000},
|
||||
{-0.5000, -0.5000, 0.2500, 0.000, 0.000, -0.5000},
|
||||
{0.000, -0.5000, -0.5000, 0.5000, 0.000, 0.5000}
|
||||
}
|
||||
},
|
||||
selection_box = {
|
||||
type = 'fixed',
|
||||
fixed = {
|
||||
{-.5, -.5, -.5, .5, 0, .5},
|
||||
{0, 0, .5, -.5, .5, 0},
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
-- nether:airlike_darkness is an air node through which light does not propagate.
|
||||
-- Use of it should be avoided when possible as it has the appearance of a lighting bug.
|
||||
-- Fumarole decorations use it to stop the propagation of light from the lava below,
|
||||
-- since engine limitations mean any mesh or nodebox node will light up if it has lava
|
||||
-- below it.
|
||||
local airlike_darkness = {}
|
||||
for k,v in pairs(minetest.registered_nodes["air"]) do airlike_darkness[k] = v end
|
||||
airlike_darkness.paramtype = "none"
|
||||
minetest.register_node("nether:airlike_darkness", airlike_darkness)
|
||||
|
||||
|
||||
-- Crafting
|
||||
|
||||
minetest.register_craft({
|
||||
@ -167,4 +413,11 @@ minetest.register_craft({
|
||||
},
|
||||
})
|
||||
|
||||
|
||||
minetest.register_craft({
|
||||
output = "nether:brick_compressed",
|
||||
recipe = {
|
||||
{"nether:brick","nether:brick","nether:brick"},
|
||||
{"nether:brick","nether:brick","nether:brick"},
|
||||
{"nether:brick","nether:brick","nether:brick"},
|
||||
}
|
||||
})
|
||||
|
@ -1780,7 +1780,7 @@ local function create_book_of_portals()
|
||||
ignition_item_description = minetest.registered_items[ignition_item_name].description
|
||||
end
|
||||
intro_text = intro_text ..
|
||||
S("\n\nThe key to opening such a doorway is to strike the frame with a @1, at which point the very air inside begins to crackle and glow.", string.lower(ignition_item_description))
|
||||
S("\n\nThe key to opening such a doorway is to strike the frame with a @1, at which point the very air inside begins to crackle and glow.", ignition_item_description)
|
||||
|
||||
chapters[#chapters + 1] = {text = intro_text}
|
||||
|
||||
@ -2169,18 +2169,23 @@ function nether.register_portal_ignition_item(item_name, ignition_failure_sound)
|
||||
|
||||
minetest.override_item(item_name, {
|
||||
on_place = function(stack, placer, pt)
|
||||
local node = minetest.get_node(pt.under)
|
||||
local def = minetest.registered_nodes[node.name]
|
||||
local done = false
|
||||
if pt.under and nether.is_frame_node[minetest.get_node(pt.under).name] then
|
||||
|
||||
if pt.under and nether.is_frame_node[node.name] then
|
||||
done = ignite_portal(pt.under, placer:get_player_name())
|
||||
if done and not minetest.settings:get_bool("creative_mode") then
|
||||
stack:take_item()
|
||||
end
|
||||
elseif def and def.on_rightclick then
|
||||
def.on_rightclick(pt.under, node, placer, stack, pt)
|
||||
end
|
||||
|
||||
if not done and ignition_failure_sound ~= nil then
|
||||
minetest.sound_play(ignition_failure_sound, {pos = pt.under, max_hear_distance = 10})
|
||||
end
|
||||
|
||||
|
||||
return stack
|
||||
end,
|
||||
})
|
||||
|
BIN
sounds/nether_fumarole.ogg
Normal file
BIN
textures/nether_brick_compressed.png
Normal file
After Width: | Height: | Size: 342 B |
BIN
textures/nether_nether_ingot.png
Normal file
After Width: | Height: | Size: 203 B |
BIN
textures/nether_nether_lump.png
Normal file
After Width: | Height: | Size: 164 B |
BIN
textures/nether_smoke_puff.png
Normal file
After Width: | Height: | Size: 243 B |
BIN
textures/nether_tool_netheraxe.png
Normal file
After Width: | Height: | Size: 201 B |
BIN
textures/nether_tool_netherpick.png
Normal file
After Width: | Height: | Size: 223 B |
BIN
textures/nether_tool_nethershovel.png
Normal file
After Width: | Height: | Size: 231 B |
BIN
textures/nether_tool_nethersword.png
Normal file
After Width: | Height: | Size: 181 B |
119
tools.lua
Normal file
@ -0,0 +1,119 @@
|
||||
local S = nether.get_translator
|
||||
|
||||
minetest.register_tool("nether:pick_nether", {
|
||||
description = S("Nether Pickaxe"),
|
||||
inventory_image = "nether_tool_netherpick.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 0.8,
|
||||
max_drop_level=3,
|
||||
groupcaps={
|
||||
cracky = {times={[1]=1.90, [2]=0.9, [3]=0.4}, uses=35, maxlevel=3},
|
||||
},
|
||||
damage_groups = {fleshy=4},
|
||||
},
|
||||
sound = {breaks = "default_tool_breaks"},
|
||||
groups = {pickaxe = 1}
|
||||
})
|
||||
|
||||
minetest.register_tool("nether:shovel_nether", {
|
||||
description = S("Nether Shovel"),
|
||||
inventory_image = "nether_tool_nethershovel.png",
|
||||
wield_image = "nether_tool_nethershovel.png^[transformR90",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.0,
|
||||
max_drop_level=3,
|
||||
groupcaps={
|
||||
crumbly = {times={[1]=1.0, [2]=0.4, [3]=0.25}, uses=35, maxlevel=3},
|
||||
},
|
||||
damage_groups = {fleshy=4},
|
||||
},
|
||||
sound = {breaks = "default_tool_breaks"},
|
||||
groups = {shovel = 1}
|
||||
})
|
||||
|
||||
minetest.register_tool("nether:axe_nether", {
|
||||
description = S("Nether Axe"),
|
||||
inventory_image = "nether_tool_netheraxe.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 0.8,
|
||||
max_drop_level=1,
|
||||
groupcaps={
|
||||
choppy={times={[1]=1.9, [2]=0.7, [3]=0.4}, uses=35, maxlevel=3},
|
||||
},
|
||||
damage_groups = {fleshy=7},
|
||||
},
|
||||
sound = {breaks = "default_tool_breaks"},
|
||||
groups = {axe = 1}
|
||||
})
|
||||
|
||||
minetest.register_tool("nether:sword_nether", {
|
||||
description = S("Nether Sword"),
|
||||
inventory_image = "nether_tool_nethersword.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 0.7,
|
||||
max_drop_level=1,
|
||||
groupcaps={
|
||||
snappy={times={[1]=1.5, [2]=0.6, [3]=0.2}, uses=45, maxlevel=3},
|
||||
},
|
||||
damage_groups = {fleshy=10},
|
||||
},
|
||||
sound = {breaks = "default_tool_breaks"},
|
||||
groups = {sword = 1}
|
||||
})
|
||||
|
||||
minetest.register_craftitem("nether:nether_ingot", {
|
||||
description = S("Nether Ingot"),
|
||||
inventory_image = "nether_nether_ingot.png"
|
||||
})
|
||||
minetest.register_craftitem("nether:nether_lump", {
|
||||
description = S("Nether Lump"),
|
||||
inventory_image = "nether_nether_lump.png",
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "nether:nether_ingot",
|
||||
recipe = "nether:nether_lump",
|
||||
cooktime = 30,
|
||||
})
|
||||
minetest.register_craft({
|
||||
output = "nether:nether_lump",
|
||||
recipe = {
|
||||
{"nether:brick_compressed","nether:brick_compressed","nether:brick_compressed"},
|
||||
{"nether:brick_compressed","nether:brick_compressed","nether:brick_compressed"},
|
||||
{"nether:brick_compressed","nether:brick_compressed","nether:brick_compressed"},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "nether:pick_nether",
|
||||
recipe = {
|
||||
{"nether:nether_ingot","nether:nether_ingot","nether:nether_ingot"},
|
||||
{"", "group:stick", ""},
|
||||
{"", "group:stick", ""}
|
||||
}
|
||||
})
|
||||
minetest.register_craft({
|
||||
output = "nether:shovel_nether",
|
||||
recipe = {
|
||||
{"nether:nether_ingot"},
|
||||
{"group:stick"},
|
||||
{"group:stick"}
|
||||
}
|
||||
})
|
||||
minetest.register_craft({
|
||||
output = "nether:axe_nether",
|
||||
recipe = {
|
||||
{"nether:nether_ingot","nether:nether_ingot"},
|
||||
{"nether:nether_ingot","group:stick"},
|
||||
{"","group:stick"}
|
||||
}
|
||||
})
|
||||
minetest.register_craft({
|
||||
output = "nether:sword_nether",
|
||||
recipe = {
|
||||
{"nether:nether_ingot"},
|
||||
{"nether:nether_ingot"},
|
||||
{"group:stick"}
|
||||
}
|
||||
})
|