[Mod] World borders - Edge barriers and bedrock [borders]

Post Reply
User avatar
argyle
Member
Posts: 21
Joined: Fri Sep 26, 2014 02:45
GitHub: argyle77
IRC: argyle77
Location: NY, USA
Contact:

[Mod] World borders - Edge barriers and bedrock [borders]

by argyle » Post

This mod adds a type of bedrock (called mantlestone) as well as barrier fences to five of the six outer extents of the world. The readme is reprinted below:

World Borders [0.3] - Minetest Mod

Tested on minetest versions 0.4.17.1 and 5.0.0-dev, using minetest_game. If you are unfamiliar with minetest, get started at https://www.minetest.net/

Legends of the Edges

It is said that if you dig deep enough into the crust of the earth, you'll eventually find a stone so hard that it is unbreakable by conventional means. It is also said that if, somehow, you managed to get through this layer, you may be lucky enough to gaze upon the impenetrable mantle itself.

I think its just a rumor, but I have seen the edge of the world.

At the edge of the world stands a barrier who's extent, from the depths of the earth and beyond the clouds above, belies reason; its origin a mystery. Such a feat of engineering could not have been the result of any technology known to the world. While it is a sight to behold, don't plan on continuing your journey beyond it. No one has yet managed to breach its unconventional substance, at least not for any really meaningful distance.

Description

The World Borders mod adds two major things to minetest.

The first you may have seen before in such mods as [bedrock] and [bedrock2]. I've combined some ideas / code from these two and added some user settings. This part of the mod adds "deepstone", which is an extremely hard rock that replaces stone near the bottom of the world. Deepstone is, by default, unbreakable except perhaps by advanced tools, tnt, or mining lasers (see [technic]). Underneath this, you'll find mantlestone, an unbreakable layer of stone that represents the lower border of the world. Mantlestone resembles the bedrock you may be familiar with.

The second thing you'll find is out near the world edges (where mapgen ends - currently 31km from the center). This is a gigantic barrier structure extending into the sky as well as the ground that will prevent further movement beyond its confines.

Download / Usage

Download the zipped mod here:

https://github.com/argyle77/borders/archive/master.zip.

Unzip this file into your mods directory. For earlier versions of minetest, you may need to rename the unzipped directory to "borders".

Alternately, you can clone the repository into your mods directory using git with a command like:

`git clone --depth 1 https://github.com/argyle77/borders.git`

Browse the source code at https://github.com/argyle77/borders.

Don't forget to enable the mod for your world!

This mod is best used in new worlds, or worlds who's borders haven't been reached yet. World Borders mod is in alpha and has not yet been extensively tested, especially for its interactions with other mods, so use caution. It may be best to give it a try on a test world first. Please report any difficulties, bugs, or suggestions you may have.

I would not generally recommend using this mod in conjunction with [bedrock] or [bedrock2] because it is meant to provide / replace the functionality of these mods. However, if you do use them together, you can disable the mantlestone and deepstone portions of this mod in the settings. I have not yet personally tested the interactions between these mods.

For further help installing minetest mods, see: https://dev.minetest.net/Installing_Mods

Required Dependencies

[default] - The default mod from minetest_game (https://github.com/minetest/minetest_game) - Some nodes from [default] are referenced, and some of the barrier textures are provided by it.

Optional Dependencies

[doc] - In-game help mod (viewtopic.php?t=15912)

[mesecons_mvps] - From the Mesecons mod (http://mesecons.net/) - Prevents pistons from affecting barrier blocks.

[intllib] - Internationalization library mod (viewtopic.php?id=4929) - For future translations.

[caverealms] - Underground Realms mod (viewtopic.php?f=9&t=9522) - Provides minimal interoperation by causing caverealms to load first.

[magma_conduits] - Magma conduits and volcanoes mod (viewtopic.php?t=20188&p=338973) - Provides minimal interoperation by causing magma_conduits to load first.

If you have a mod that seems to interfere with the borders provided by this mod, especially mods containing mapgen elements, you may find that adding that mod to the dependency lists of this mod may resolve (or ameliorate) your issue. I'd be interested in hearing about any problems you may find.

Settings

There are many variables that can be set with regards to these borders. The setbacks from the bottom and edges of the worlds are adjustable, the thickness of the mantle and the deepstone, the hardness of the deepstone, and several parameters that affect how the mantlestone is generated. Mantlestone and world-edge barriers can be independently enabled / disabled. The world-edge barrier texture can be selected. See Settings -> All / Advanced Settings -> Mods -> borders for more in-depth descriptions of these. Alternatively, see settingtypes.txt.

Credits

This mod, especially the mantlestone bits, owes a great deal to those who created the original works on which it was based. LICENSE.md is probably the definitive resource for these credits, but briefly:

Thank you to celeron55 (Perttu Ahola), kwolekr (Ryan Kwolek), paramat, Wuzzy, Calinou (Hugo Locurcio), jn (Jonathan Neuschäfer), VanessaE (Vanessa Dannenberg), and help on IRC from rubenwardy, GreenDimond, sofar, and Emerald2.

Note

This is a work in progress. Suggestions, bug reports, and complaints are always welcome (vitriol will be ignored). Thank you.

Screenshots
Mantlestone in a cave (minetest 5.0+)
Mantlestone in a cave (minetest 5.0+)
mantle_stone_a.png (169.58 KiB) Viewed 2642 times
Alternative mantlestone (like bedrock)
Alternative mantlestone (like bedrock)
bedrockb.jpg (98.04 KiB) Viewed 2642 times
World edge barrier
World edge barrier
world_edge.jpg (109.1 KiB) Viewed 2642 times
Last edited by argyle on Wed Feb 27, 2019 18:31, edited 4 times in total.

User avatar
argyle
Member
Posts: 21
Joined: Fri Sep 26, 2014 02:45
GitHub: argyle77
IRC: argyle77
Location: NY, USA
Contact:

Re: [Mod] World borders - Edge barriers and bedrock [borders

by argyle » Post

Bugfix - Removed barriers from creative inventory. Added mantlestone to creative inventory.

User avatar
texmex
Member
Posts: 1753
Joined: Mon Jul 11, 2016 21:08
GitHub: tacotexmex
In-game: tacotexmex

Re: [Mod] World borders - Edge barriers and bedrock [borders

by texmex » Post

This seems great! I’d make the barrier less industrial-looking but everyone have different taste.

Interesting to put this semi-indestructible deepstone before the real stopper because a gradual approach feels more immersive.

User avatar
argyle
Member
Posts: 21
Joined: Fri Sep 26, 2014 02:45
GitHub: argyle77
IRC: argyle77
Location: NY, USA
Contact:

Re: [Mod] World borders - Edge barriers and bedrock [borders

by argyle » Post

The textures were pretty much the hardest part for me. The barrier ended up looking like a fence because I wanted it to be animated, but minetest doesn't sync animations across mapblocks (except sort-of with a client-side setting). The fence frames cover up the seams in the animation. I'd have preferred something a little less industrial as well, so that it could be interpreted both as fitting in a fantasy realm as well as a sci-fi realm.

User avatar
texmex
Member
Posts: 1753
Joined: Mon Jul 11, 2016 21:08
GitHub: tacotexmex
In-game: tacotexmex

Re: [Mod] World borders - Edge barriers and bedrock [borders

by texmex » Post

I see. How about editing the animated water texture into something lighter and force-fieldy?

User avatar
argyle
Member
Posts: 21
Joined: Fri Sep 26, 2014 02:45
GitHub: argyle77
IRC: argyle77
Location: NY, USA
Contact:

Re: [Mod] World borders - Edge barriers and bedrock [borders

by argyle » Post

Updated. There is a choice of 4 textures for the world edge barriers in the settings now. Also, added a dependency on caverealms to patch some holes in the world bottom.

User avatar
Napiophelios
Member
Posts: 1035
Joined: Mon Jul 07, 2014 01:14
GitHub: Napiophelios
IRC: Nappi
In-game: Nappi

Re: [Mod] World borders - Edge barriers and bedrock [borders

by Napiophelios » Post

What!? No Ice barrier texture for the Flat Earthers out here?

User avatar
texmex
Member
Posts: 1753
Joined: Mon Jul 11, 2016 21:08
GitHub: tacotexmex
In-game: tacotexmex

Re: [Mod] World borders - Edge barriers and bedrock [borders

by texmex » Post

Ah! Barrier1, very forcefieldy! :)

User avatar
argyle
Member
Posts: 21
Joined: Fri Sep 26, 2014 02:45
GitHub: argyle77
IRC: argyle77
Location: NY, USA
Contact:

Re: [Mod] World borders - Edge barriers and bedrock [borders

by argyle » Post

Update to v0.3. Added an ice-like barrier for the Flat Earther, updated license and readme.

User avatar
Lone_Wolf
Member
Posts: 2576
Joined: Sun Apr 09, 2017 05:50
GitHub: LoneWolfHT
IRC: LandarVargan
In-game: LandarVargan

Re: [Mod] World borders - Edge barriers and bedrock [borders

by Lone_Wolf » Post

Nice mod. +1
My ContentDB -|- Working on CaptureTheFlag -|- Minetest Forums Dark Theme!! (You need it)

kestral
Member
Posts: 95
Joined: Mon Mar 27, 2017 21:56
GitHub: kestral246

Re: [Mod] World borders - Edge barriers and bedrock [borders

by kestral » Post

I decided to check out this mod with my tunnelmaker mod, but since I only check for is_protected, I found it could dig through deepstone and mantlestone with ease.

For Minetest 5.0 what is the recommended (and hopefully short) list of checks to make sure a normal player can't dig through what they shouldn't be able to?

User avatar
Lone_Wolf
Member
Posts: 2576
Joined: Sun Apr 09, 2017 05:50
GitHub: LoneWolfHT
IRC: LandarVargan
In-game: LandarVargan

Re: [Mod] World borders - Edge barriers and bedrock [borders

by Lone_Wolf » Post

kestral wrote:I decided to check out this mod with my tunnelmaker mod, but since I only check for is_protected, I found it could dig through deepstone and mantlestone with ease.

For Minetest 5.0 what is the recommended (and hopefully short) list of checks to make sure a normal player can't dig through what they shouldn't be able to?
Hard to get them all. `unbreakable = 1` means you can't break the node.
You could always check his node groups (Lines 209+) https://github.com/argyle77/borders/blo ... t.lua#L209
My ContentDB -|- Working on CaptureTheFlag -|- Minetest Forums Dark Theme!! (You need it)

User avatar
argyle
Member
Posts: 21
Joined: Fri Sep 26, 2014 02:45
GitHub: argyle77
IRC: argyle77
Location: NY, USA
Contact:

Re: [Mod] World borders - Edge barriers and bedrock [borders

by argyle » Post

Cool mod kestral! I got the unbreakable stuff from an earlier bedrock mod, but its also on the dev wiki: https://dev.minetest.net/Mod_interopera ... ible_nodes. I'll have a look at your code when I get a chance and see if I can come up with any suggestions.

User avatar
argyle
Member
Posts: 21
Joined: Fri Sep 26, 2014 02:45
GitHub: argyle77
IRC: argyle77
Location: NY, USA
Contact:

Re: [Mod] World borders - Edge barriers and bedrock [borders

by argyle » Post

Cool mod kestral! I got the unbreakable stuff from an earlier bedrock mod, but its also on the dev wiki: https://dev.minetest.net/Mod_interopera ... ible_nodes. I'll have a look at your code when I get a chance and see if I can come up with any suggestions. Oh, and I think you definitely should be able to smash through the deepstone.

User avatar
argyle
Member
Posts: 21
Joined: Fri Sep 26, 2014 02:45
GitHub: argyle77
IRC: argyle77
Location: NY, USA
Contact:

Re: [Mod] World borders - Edge barriers and bedrock [borders

by argyle » Post

Ooo, actually, I see that I left out the on_destruct part. Putting it into the mantlestone node definition partially solves the issue, but the tunnel tool can still replace mantlestone nodes with stone / cobble. I'll make the update and push it out as soon as I can.

I don't think checking diggable is the answer, because it looks like a lot of liquids use that flag, and you still want to be able to remove those.

There seems to be some disagreement in the forums (viewtopic.php?f=5&t=22075#p344378, viewtopic.php?f=5&t=22075#p344398) about the unbreakable group being necessary, but it looks to me like a somewhat reasonable answer. There is some precedent for its use in such mods as map_tools (which defines a bunch of unbreakable nodes), mobs_redo, and the doc mod, which recognizes it for documentation purposes.

Looking through a lot of mods, I see that the can_dig function is used on things like chests and furnaces to make sure you can't destroy them if they aren't empty. This seems like it might be the most universal answer to me thus far. The tunnel digger can (currently) replace a full chest that's embedded in the floor. Checking can_dig before doing a set_node might prevent this.

kestral
Member
Posts: 95
Joined: Mon Mar 27, 2017 21:56
GitHub: kestral246

Re: [Mod] World borders - Edge barriers and bedrock [borders

by kestral » Post

Argyle,
The version of tunnelmaker I'm working on is the beta branch, where I changed to using minetest.set_node(), so I'll have to do all the checks myself. The current master will be moving to legacy as soon as Minetest 5.0 is released.

Thanks for the links. For my first pass, I'll put in checks for unbreakable.

User avatar
argyle
Member
Posts: 21
Joined: Fri Sep 26, 2014 02:45
GitHub: argyle77
IRC: argyle77
Location: NY, USA
Contact:

Re: [Mod] World borders - Edge barriers and bedrock [borders

by argyle » Post

No problem. I pushed an update with the on_destruct stuff.

kestral
Member
Posts: 95
Joined: Mon Mar 27, 2017 21:56
GitHub: kestral246

Re: [Mod] World borders - Edge barriers and bedrock [borders

by kestral » Post

Argyle,
Minetest complains about your settingtypes.txt file. Looks like you're missing a '#' on one line.

ERROR[Main]: Invalid line in .minetest/mods/borders/settingtypes.txt "it is recommended that this be enabled as it will patch holes caused by, for instance, caverealms."

Also, thanks for your help with my mod. I updated the beta so it no longer digs through either mantlestone or non-empty chests.

User avatar
argyle
Member
Posts: 21
Joined: Fri Sep 26, 2014 02:45
GitHub: argyle77
IRC: argyle77
Location: NY, USA
Contact:

Re: [Mod] World borders - Edge barriers and bedrock [borders

by argyle » Post

Thanks for the catch Kestral! I pushed the fix. New version 0.3.2.

I did some testing with tunnelmaker beta. Confirmed, mantlestone is now impenetrable, but I also found that the tool is now capable of digging through the world barrier fences underground. It seems the master branch must handle digging differently than the beta because underground barriers were respected there. On my end, I don't actually place underground barriers during mapgen, but rather I used register_on_dignode, which makes the replacement as soon as the node is dug. I'm not sure specifically what changed in tunnelmaker to cause this because the beta changes are so extensive and I haven't had time to dig through it all yet (pun unintended). I'll probably get a chance to have a closer look tomorrow.

User avatar
argyle
Member
Posts: 21
Joined: Fri Sep 26, 2014 02:45
GitHub: argyle77
IRC: argyle77
Location: NY, USA
Contact:

Re: [Mod] World borders - Edge barriers and bedrock [borders

by argyle » Post

I'm looking into the protection api to see if it is a viable candidate for preventing this type of breach.

kestral
Member
Posts: 95
Joined: Mon Mar 27, 2017 21:56
GitHub: kestral246

Re: [Mod] World borders - Edge barriers and bedrock [borders

by kestral » Post

Argyle,

I just pushed an update to tunnelmaker where I added support for on_dignodes callbacks. It seems to work with your barriers now—it can still dig the nodes, but the barrier now pops up in their place.

Note that I also changed the controls with this release, so check out the README.md before you start.

User avatar
argyle
Member
Posts: 21
Joined: Fri Sep 26, 2014 02:45
GitHub: argyle77
IRC: argyle77
Location: NY, USA
Contact:

Re: [Mod] World borders - Edge barriers and bedrock [borders

by argyle » Post

Okay cool Kestral, thanks! I'll give it a try. Digging through the protection API stuff (and even the on_dignodes stuff) has made me realize there are some more complicating issues in the engine that make protected blocks occasionally slightly less than impenetrable. I've actually managed to walk through them in certain circumstances. I'm looking into the reasons behind this in the engine code right now.

User avatar
argyle
Member
Posts: 21
Joined: Fri Sep 26, 2014 02:45
GitHub: argyle77
IRC: argyle77
Location: NY, USA
Contact:

Re: [Mod] World borders - Edge barriers and bedrock [borders

by argyle » Post

Preparing for a new release. Pushed a beta to the master branch of the github repo (https://github.com/argyle77/borders.git). Since it is nigh impossible to actually totally prevent a breach of the barrier walls, I've added a couple of features to work within this limitation. If a player breaches the wall, they have (by default) about 5 seconds outside of it before everything fades to purple and they are transported back inside. In addition, there is now an "outside_barrier" privilege that disables the fade-to-purple and teleport. Fixes include: Burned trees no longer leave holes in the barrier. Dynamite now reveals barrier walls if the underground nodes covering them are blown up.

User avatar
srutzky
New member
Posts: 6
Joined: Tue Oct 06, 2020 03:13
GitHub: srutzky
Contact:

Re: [Mod] World borders - Edge barriers and bedrock [borders]

by srutzky » Post

Hello. I just posted a PR to fix a minor bug when mapgen_limit and/or chunksize and/or water_level are overriden in the per-world map_meta.txt file:

https://github.com/argyle77/borders/pull/1

Also, would it be possible to push / package the changes so that they are available via ContentDB? I installed "Borders" from ContentDB a while ago (appears to be version 0.3) and hadn't realized that there were updates that I needed to grab directly from GitHub.

Thanks, Solomon..
⦓ (blog) Sql Quantum Leap   ⟐   (info sites) Collations  •  Module Signing  •  SQLCLR ⦔

Post Reply

Who is online

Users browsing this forum: Ahrefs [Bot] and 28 guests