Fixes#56, and adds netherbrick rails (for consistency with MTG) if the fences API is found.
Using the MTG fence system adds interop between different fence types, and support for the "Tall fences and walls" option.
I've left the nether's register_craft() call unchanged, it overrides the recipe that default.register_fence() registers, granting 6 fences per crafting instead of MTG's 4.
* Add Netherrack slabs and walls
Also adds deep netherrack stairs, and deep nether brick stairs, slabs, inner stairs and outer stairs.
Adds 9 new nodes in total.
* Treasure: Nether pickaxe takes 10x less wear damage when mining netherrack
cracky-3 mining time of Nether pickaxe reduced from 0.4 to 0.3 to mine netherrack faster.
maxlevel of nether pickaxe dropped from 3 to 2 to increase wear damage with non-netherrack nodes.
* Treasure: Nether staff of light
Adds "Nether staff of Light" and "Nether staff of Eternal Light"
One is limited to 60 uses, and the other has unlimited uses but the glowstone it creates will only last for 40 seconds.
There are no crafting recipes as I hope these to eventually be treasure that can be found in the nether.
See the pull request (#50) for more discussion
* bug fixes
Fixes wrong new_y_min when shift_existing_biomes() shifts a biome below the nether floor,
find_surface_anchorPos() no longer assumes y=0 will be outside the nether.
Nil-reference fixed when a mods tries to register a portal after mods are finished loading, but the portal shape+material was already registered by another mod.
* Make ShiftExistingBiomes available via API
makes the ShiftExistingBiomes function available to other mods via the nether global, since it's not a simple function and biomes would also need to be shifted if another mod wants to add a second nether layer.
* Allow layers to extend the depth of nether effects
Mods can set/lower nether.DEPTH_FLOOR_LAYERS when creating a layer under the nether. This allows multiple layer mods to know where their ceiling should start, and to be included in the effects which only happen in the nether.
* document nether API
More of a tentative interop guide than an API.
Use snake_case for API functions.
Ethereal clears every biome when it starts to get rid of the default mapgen, which breaks the nether and can cause crashes.
Adding Ethereal as an optional dependency ensures the nether is loaded after Ethereal has already cleared the biomes.
* clears netherrack from dungeon stairways
* Adds pillars or mezzanine floors to large rooms
* slightly more careful with window placement
* glowstone sometimes added behind in windows
Add more appropriate/atmosphere distance fog to the nether, via climate_api mod to avoid conflicting with other mods.
Any game or server with climate_api mod installed will be expecting climate_api to take control of sky values.
The error below was reported, so handle the existence of a mod called "bucket" which doesn't have any liquids field:
Runtime error from mod 'nether' in callback on_mods_loaded(): /mods/environment/nether/nodes.lua:378: attempt to index field 'liquids' (a nil value)
stack traceback:
/mods/environment/nether/nodes.lua:378: in function /mods/environment/nether/nodes.lua:373
/minetest/builtin/game/register.lua:429: in function /minetest/builtin/game/register.lua:413
Adds a magma oceans region to the nether outside the existing nether caverns, which can be reached via tunnels.
Other misc changes:
* chatcomment nether_whereami, a debug aid for knowing which perlin-noise region you are in
* Nether ores no longer obtainable on the ceiling
* Move crafts into crafts.lua
* Add steam to lava cooling, and play bubbling lava upon death by lava
* Add cracked netherbrick
a decorative node which can only be obtained from dungeons or structures
I encourage someone to improve or replace the cracked netherbrick texture. For copyright purposes it's currently a derivative work (by me, 2020) from nether_brick.png, which is licensed under CC BY-SA 3.0 by PilzAdam, so it can fall under the "All other media" PilzAdam's credit in readme.md rather than need its own entry.
* textures for new tool items
* axe, shovel, pick, sword based on nether
* run also tools.lua
* Textture for Compressed Netherbrick
* new node "Compressed Netherbrick"
* define how to craft "Compressed Netherbrick"
* change recipe for NetherLump and remove old node
* Delete nether_nether_compressed.png
The round ones look nice and cartoony, but not the right art direction for Minetest Nether.
Making use of the existing default_item_smoke.png is also a close contender for smoke puffs, but it's not translucent and I think the roundness of it reduces how much the puffs form into plumes.
Portals will now fail to ignite instead of defaulting to a fallback depth of (starty - 256) when no unprotected target can be found.
The search depth is also increased from (starty - 256) to (starty - 646)
This is to properly handle large protected areas that are sometimes set up at spawn - see issue #26
* respect protected areas when spawning remote portals
* Use portal_shape to determine area to check for natural/protected
* Log warning on deprecated function call
The biomes-based mapgen was creating the same amount of lava as the original nether mapgen, but it doesn't have the same issue of chunk emerge order sometimes causing lava in the overdraw regions to get removed. This adjustment will hopefully balance that a little.
Also makes glowstone stalactite a bit rarer.
Adjusting lava ore scarcity in the biomes-mapgen doesn't cause forwards or backwards compatibilty issues with existing maps, likewise with schematic rarety like glowstone stalactites, so can afford to fiddle and tune.
Prevents the c++/native mapgen from placing ores or decorations (when useBiomes is true).
The biomes-based implementation is faster, more deterministic, and keeps its dungeons, but requires MT 5.1 features to work.
Also
* Glowstone & Netherrack stalactites
* Include the new decorations in mapgen_nobiomes
* Decorate dungeons - Add windows and glowstone "chandeliers" to some rooms
* Configurable Nether floor and ceiling depths
The second argument of minetest.settings:get_bool is the default value (for when the configuration value is not set). Remove the superfluous `or nether.NETHER_REALM_ENABLED` which rendered the config option useless, because it always forced the variable to true.
(new animation by Extex101)
The original texture is now "nether_portal_alt.png", and used to provide a "nether:portal_alt" node, which is used/demoed by the Surface-portal as the original animation still has a "it's full of stars" charm coming out when used for lighter coloured portals.
Improvements found while using the portals API in another mod (cloudlands):
* remote_portal_checkup() will check the whole portal and frame for mapgen overwrites.
* Allow find_realm_anchorPos() to return nil if no realm location could be found (portal will fail to ignite).
* Allow create_book_of_portals() to be invoked [indirectly] by other mods.
Also lowers nether_book_close.png to be 4bpp
If a portal is being ignited and portal frame near-but-not-at its destination was found that was active and already linked back to the local portal, it would cause the local portal to be extinguished. (Required the remote portal to somehow be in a different state from the portal it was linking to)