From 6bc42eaf895c902aac77bdd83132bbab1ba87d83 Mon Sep 17 00:00:00 2001 From: Juraj Vajda Date: Sun, 14 Mar 2021 14:08:58 -0400 Subject: [PATCH] initial commit --- .gitignore | 1 + LICENSE.txt | 519 ++++++++++ README.md | 35 + game.conf | 3 + game_api.txt | 1084 ++++++++++++++++++++ menu/header.png | Bin 0 -> 1921 bytes menu/icon.png | Bin 0 -> 3008 bytes minetest.conf | 0 minetest.conf.example | 77 ++ schematic_tables.txt | 2228 +++++++++++++++++++++++++++++++++++++++++ screenshot.png | Bin 0 -> 104422 bytes settingtypes.txt | 77 ++ 12 files changed, 4024 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE.txt create mode 100644 README.md create mode 100644 game.conf create mode 100644 game_api.txt create mode 100644 menu/header.png create mode 100644 menu/icon.png create mode 100644 minetest.conf create mode 100644 minetest.conf.example create mode 100644 schematic_tables.txt create mode 100644 screenshot.png create mode 100644 settingtypes.txt diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e43b0f9 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.DS_Store diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..48f0b8d --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,519 @@ +License of media (textures and sounds) +-------------------------------------- +Copyright (C) 2010-2012 celeron55, Perttu Ahola +See README.txt in each mod directory for information about other authors. + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +http://creativecommons.org/licenses/by-sa/3.0/ + +License of menu/header.png +Copyright (C) 2015 paramat CC BY-SA 3.0 + + +License of source code +---------------------- +Copyright (C) 2010-2012 celeron55, Perttu Ahola +See README.txt in each mod directory for information about other authors. + + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/README.md b/README.md new file mode 100644 index 0000000..a88d83c --- /dev/null +++ b/README.md @@ -0,0 +1,35 @@ +# Minetest Game + +The default game bundled in the Minetest engine. + +For further information, check +[this forum topic](https://forum.minetest.net/viewtopic.php?f=15&t=9724). +Also see the [Minetest Wiki](https://wiki.minetest.net/Subgames/Minetest_Game) +for more information. + +## Installation + +- Unzip the archive, rename the folder to minetest_game and +place it in .. minetest/games/ + +- GNU/Linux: If you use a system-wide installation place + it in ~/.minetest/games/. + +The Minetest engine can be found at [GitHub](https://github.com/minetest/minetest). + +For further information or help, see: +https://wiki.minetest.net/Installing_Mods + +## Compatibility + +The Minetest Game GitHub master HEAD is generally compatible with the GitHub +master HEAD of the Minetest engine. +Additionally, when the Minetest engine is tagged to be a certain version (e.g. +0.4.10), Minetest Game is tagged with the version too. + +When stable releases are made, Minetest Game and the Minetest engine is packaged +and made available at [www.minetest.net](https://www.minetest.net/downloads/). + +## Licensing + +See `LICENSE.txt` diff --git a/game.conf b/game.conf new file mode 100644 index 0000000..5a38429 --- /dev/null +++ b/game.conf @@ -0,0 +1,3 @@ +name = Survival X +author = SaKeL +description = A basic exploration, mining, crafting and building sandbox game with no NPCs, monsters or animals. Minetest Game is usually used with mods added and many mods are available for this game. Reliably maintained by Minetest Engine core developers. diff --git a/game_api.txt b/game_api.txt new file mode 100644 index 0000000..bddf7e2 --- /dev/null +++ b/game_api.txt @@ -0,0 +1,1084 @@ +Minetest Game API +================= +GitHub Repo: https://github.com/minetest/minetest_game + + +Introduction +------------ + +The Minetest Game game offers multiple new possibilities in addition to the Minetest engine's built-in API, +allowing you to add new plants to farming mod, buckets for new liquids, new stairs and custom panes. +For information on the Minetest API, visit https://github.com/minetest/minetest/blob/master/doc/lua_api.txt +Please note: + + * [XYZ] refers to a section the Minetest API + * [#ABC] refers to a section in this document + * [pos] refers to a position table `{x = -5, y = 0, z = 200}` + + +Bucket API +---------- + +The bucket API allows registering new types of buckets for non-default liquids. + + bucket.register_liquid( + "default:lava_source", -- name of the source node + "default:lava_flowing", -- name of the flowing node + "bucket:bucket_lava", -- name of the new bucket item (or nil if liquid is not takeable) + "bucket_lava.png", -- texture of the new bucket item (ignored if itemname == nil) + "Lava Bucket", -- text description of the bucket item + {lava_bucket = 1}, -- groups of the bucket item, OPTIONAL + false -- force-renew, OPTIONAL. Force the liquid source to renew if it has + -- a source neighbour, even if defined as 'liquid_renewable = false'. + -- Needed to avoid creating holes in sloping rivers. + ) + +The filled bucket item is returned to the player that uses an empty bucket pointing to the given liquid source. +When punching with an empty bucket pointing to an entity or a non-liquid node, the on_punch of the entity or node will be triggered. + + +Beds API +-------- + + beds.register_bed( + "beds:bed", -- Bed name + def -- See [#Bed definition] + ) + + * `beds.can_dig(bed_pos)` Returns a boolean whether the bed at `bed_pos` may be dug + * `beds.read_spawns() ` Returns a table containing players respawn positions + * `beds.kick_players()` Forces all players to leave bed + * `beds.skip_night()` Sets world time to morning and saves respawn position of all players currently sleeping + +### Bed definition + + { + description = "Simple Bed", + inventory_image = "beds_bed.png", + wield_image = "beds_bed.png", + tiles = { + bottom = {'Tile definition'}, -- the tiles of the bottom part of the bed. + top = {Tile definition} -- the tiles of the bottom part of the bed. + }, + nodebox = { + bottom = 'regular nodebox', -- bottom part of bed (see [Node boxes]) + top = 'regular nodebox', -- top part of bed (see [Node boxes]) + }, + selectionbox = 'regular nodebox', -- for both nodeboxes (see [Node boxes]) + recipe = { -- Craft recipe + {"group:wool", "group:wool", "group:wool"}, + {"group:wood", "group:wood", "group:wood"} + } + } + + +Bones API +--------- + +An ordered list of listnames (default: "main", "craft") of the player inventory, +that will be placed into bones or dropped on player death can be looked up or changed +in `bones.player_inventory_lists`. + +e.g. `table.insert(bones.player_inventory_lists, "backpack")` + + +Creative API +------------ + +Use `creative.register_tab(name, title, items)` to add a tab with filtered items. +For example, + + creative.register_tab("tools", "Tools", minetest.registered_tools) + +is used to show all tools. Name is used in the sfinv page name, title is the +human readable title. + +Creative provides `creative.is_enabled_for(name)`, which is identical in +functionality to the engine's `minetest.creative_is_enabled(name)`. +Its use is deprecated and it should also not be overriden. + +The contents of `creative.formspec_add` is appended to every creative inventory +page. Mods can use it to add additional formspec elements onto the default +creative inventory formspec to be drawn after each update. + +Group overrides can be used for any registered item, node or tool. Use one of +the groups stated below to pick which category it will appear in. + + node = 1 -- Appears in the Nodes category + tool = 1 -- Appears in the Tools category + craftitem = 1 -- Appears in the Items category + + +Chests API +---------- + +The chests API allows the creation of chests, which have their own inventories for holding items. + +`default.chest.get_chest_formspec(pos)` + + * Returns a formspec for a specific chest. + * `pos` Location of the chest node, e.g `{x = 1, y = 1, z = 1}` + +`default.chest.chest_lid_obstructed(pos)` + + * Returns a boolean depending on whether or not a chest has its top obstructed by a solid node. + * `pos` Location of the chest node, e.g `{x = 1, y = 1, z = 1}` + +`default.chest.chest_lid_close(pn)` + + * Closes the chest that a player is currently looking in. + * `pn` The name of the player whose chest is going to be closed + +`default.chest.open_chests` + + * A table indexed by player name to keep track of who opened what chest. + * Key: The name of the player. + * Value: A table containing information about the chest the player is looking at. + e.g `{ pos = {1, 1, 1}, sound = null, swap = "default:chest" }` + +`default.chest.register_chest(name, def)` + + * Registers new chest + * `name` Name for chest e.g. "default:chest" + * `def` See [#Chest Definition] + +### Chest Definition + + description = "Chest", + tiles = { + "default_chest_top.png", + "default_chest_top.png", + "default_chest_side.png", + "default_chest_side.png", + "default_chest_front.png", + "default_chest_inside.png" + }, -- Textures which are applied to the chest model. + sounds = default.node_sound_wood_defaults(), + sound_open = "default_chest_open", + sound_close = "default_chest_close", + groups = {choppy = 2, oddly_breakable_by_hand = 2}, + protected = false, -- If true, only placer can modify chest. + + +Doors API +--------- + +The doors mod allows modders to register custom doors and trapdoors. + +`doors.registered_doors[name] = Door definition` + * Table of registered doors, indexed by door name + +`doors.registered_trapdoors[name] = Trapdoor definition` + * Table of registered trap doors, indexed by trap door name + +`doors.register_door(name, def)` + + * Registers new door + * `name` Name for door + * `def` See [#Door definition] + +`doors.register_trapdoor(name, def)` + + * Registers new trapdoor + * `name` Name for trapdoor + * `def` See [#Trapdoor definition] + +`doors.register_fencegate(name, def)` + + * Registers new fence gate + * `name` Name for fence gate + * `def` See [#Fence gate definition] + +`doors.get(pos)` + + * `pos` A position as a table, e.g `{x = 1, y = 1, z = 1}` + * Returns an ObjectRef to a door, or nil if the position does not contain a door + + ### Methods + + :open(player) -- Open the door object, returns if door was opened + :close(player) -- Close the door object, returns if door was closed + :toggle(player) -- Toggle the door state, returns if state was toggled + :state() -- returns the door state, true = open, false = closed + + the "player" parameter can be omitted in all methods. If passed then + the usual permission checks will be performed to make sure the player + has the permissions needed to open this door. If omitted then no + permission checks are performed. + +`doors.door_toggle(pos, node, clicker)` + + * Toggle door open or shut + * `pos` Position of the door + * `node` Node definition + * `clicker` Player definition for the player that clicked on the door + +### Door definition + + description = "Door description", + inventory_image = "mod_door_inv.png", + groups = {choppy = 2}, + tiles = {"mod_door.png"}, -- UV map. + -- The front and back of the door must be identical in appearence as they swap on + -- open/close. + recipe = craftrecipe, + sounds = default.node_sound_wood_defaults(), -- optional + sound_open = sound play for open door, -- optional + sound_close = sound play for close door, -- optional + protected = false, -- If true, only placer can open the door (locked for others) + on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + -- optional function containing the on_rightclick callback, defaults to a doors.door_toggle-wrapper + +### Trapdoor definition + + description = "Trapdoor description", + inventory_image = "mod_trapdoor_inv.png", + groups = {choppy = 2}, + tile_front = "doors_trapdoor.png", -- the texture for the front and back of the trapdoor + tile_side = "doors_trapdoor_side.png", + -- The texture for the four sides of the trapdoor. + -- The texture should have the trapdoor side drawn twice, in the lowest and highest + -- 1/8ths of the texture, both upright. The area between is not used. + -- The lower 1/8th will be used for the closed trapdoor, the higher 1/8th will be used + -- for the open trapdoor. + sounds = default.node_sound_wood_defaults(), -- optional + sound_open = sound play for open door, -- optional + sound_close = sound play for close door, -- optional + protected = false, -- If true, only placer can open the door (locked for others) + on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + -- function containing the on_rightclick callback + on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + -- function containing the on_rightclick callback + +### Fence gate definition + + description = "Wooden Fence Gate", + texture = "default_wood.png", -- `backface_culling` will automatically be + -- set to `true` if not specified. + material = "default:wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults(), -- optional + on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + -- function containing the on_rightclick callback + + +Dungeon Loot API +---------------- + +The mod that places chests with loot in dungeons provides an API to register additional loot. + +`dungeon_loot.register(def)` + + * Registers one or more loot items + * `def` Can be a single [#Loot definition] or a list of them + +`dungeon_loot.registered_loot` + + * Table of all registered loot, not to be modified manually + +### Loot definition + + name = "item:name", + chance = 0.5, + -- ^ chance value from 0.0 to 1.0 that the item will appear in the chest when chosen + -- Due to an extra step in the selection process, 0.5 does not(!) mean that + -- on average every second chest will have this item + count = {1, 4}, + -- ^ table with minimum and maximum amounts of this item + -- optional, defaults to always single item + y = {-32768, -512}, + -- ^ table with minimum and maximum heights this item can be found at + -- optional, defaults to no height restrictions + types = {"desert"}, + -- ^ table with types of dungeons this item can be found in + -- supported types: "normal" (the cobble/mossycobble one), "sandstone" + -- "desert" and "ice" + -- optional, defaults to no type restrictions + + +Fence API +--------- + +Allows creation of new fences with "fencelike" drawtype. + +`default.register_fence(name, item definition)` + + Registers a new fence. Custom fields texture and material are required, as + are name and description. The rest is optional. You can pass most normal + nodedef fields here except drawtype. The fence group will always be added + for this node. + +### fence definition + + name = "default:fence_wood", + description = "Wooden Fence", + texture = "default_wood.png", + material = "default:wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults(), + + +Walls API +--------- + +The walls API allows easy addition of stone auto-connecting wall nodes. + +walls.register(name, desc, texture, mat, sounds) +^ name = "walls:stone_wall". Node name. +^ desc = "A Stone wall" +^ texture = "default_stone.png" +^ mat = "default:stone". Used to auto-generate crafting recipe. +^ sounds = sounds: see [#Default sounds] + + +Farming API +----------- + +The farming API allows you to easily register plants and hoes. + +`farming.register_hoe(name, hoe definition)` + * Register a new hoe, see [#hoe definition] + +`farming.register_plant(name, Plant definition)` + * Register a new growing plant, see [#Plant definition] + +`farming.registered_plants[name] = definition` + * Table of registered plants, indexed by plant name + +### Hoe Definition + + + { + description = "", -- Description for tooltip + inventory_image = "unknown_item.png", -- Image to be used as wield- and inventory image + max_uses = 30, -- Uses until destroyed + material = "", -- Material for recipes + recipe = { -- Craft recipe, if material isn't used + {"air", "air", "air"}, + {"", "group:stick"}, + {"", "group:stick"}, + } + } + +### Plant definition + + { + description = "", -- Description of seed item + harvest_description = "", -- Description of harvest item + -- (optional, derived automatically if not provided) + inventory_image = "unknown_item.png", -- Image to be used as seed's wield- and inventory image + steps = 8, -- How many steps the plant has to grow, until it can be harvested + -- ^ Always provide a plant texture for each step, format: modname_plantname_i.png (i = stepnumber) + minlight = 13, -- Minimum light to grow + maxlight = default.LIGHT_MAX -- Maximum light to grow + } + + +Fire API +-------- + +Add group flammable when registering a node to make fire seek for it. +Add it to an item to make it burn up when dropped in lava or fire. +New node def property: + +`on_burn(pos)` + + * Called when fire attempts to remove a burning node. + * `pos` Position of the burning node. + + `on_ignite(pos, igniter)` + + * Called when Flint and steel (or a mod defined ignitor) is used on a node. + Defining it may prevent the default action (spawning flames) from triggering. + * `pos` Position of the ignited node. + * `igniter` Player that used the tool, when available. + + +Give Initial Stuff API +---------------------- + +`give_initial_stuff.give(player)` + +^ Give initial stuff to "player" + +`give_initial_stuff.add(stack)` + +^ Add item to the initial stuff +^ Stack can be an ItemStack or a item name eg: "default:dirt 99" +^ Can be called after the game has loaded + +`give_initial_stuff.clear()` + +^ Removes all items from the initial stuff +^ Can be called after the game has loaded + +`give_initial_stuff.get_list()` + +^ returns list of item stacks + +`give_initial_stuff.set_list(list)` + +^ List of initial items with numeric indices. + +`give_initial_stuff.add_from_csv(str)` + +^ str is a comma separated list of initial stuff +^ Adds items to the list of items to be given + + +Player API +---------- + +The player API can register player models and update the player's appearance. + +* `player_api.register_model(name, def)` + * Register a new model to be used by players + * `name`: model filename such as "character.x", "foo.b3d", etc. + * `def`: see [#Model definition] + * Saved to player_api.registered_models + +* `player_api.registered_models[name]` + * Get a model's definition + * `name`: model filename + * See [#Model definition] + +* `player_api.set_model(player, model_name)` + * Change a player's model + * `player`: PlayerRef + * `model_name`: model registered with player_api.register_model() + +* `player_api.set_animation(player, anim_name, speed)` + * Applies an animation to a player + * `player`: PlayerRef + * `anim_name`: name of the animation + * `speed`: frames per second. If nil, the default from the model def is used + +* `player_api.set_textures(player, textures)` + * Sets player textures + * `player`: PlayerRef + * `textures`: array of textures. If nil, the default from the model def is used + +* `player_api.get_animation(player)` + * Returns a table containing fields `model`, `textures` and `animation` + * Any of the fields of the returned table may be nil + * `player`: PlayerRef + +* `player_api.player_attached` + * A table that maps a player name to a boolean + * If the value for a given player is set to true, the default player animations + (walking, digging, ...) will no longer be updated, and knockback from damage is + prevented for that player + * Example of usage: A mod sets a player's value to true when attached to a vehicle + +### Model Definition + + { + animation_speed = 30, -- Default animation speed, in FPS + textures = {"character.png", }, -- Default array of textures + visual_size = {x = 1, y = 1}, -- Used to scale the model + animations = { + -- = {x = , y = }, + foo = {x = 0, y = 19}, + bar = {x = 20, y = 39}, + -- ... + }, + collisionbox = {-0.3, 0.0, -0.3, 0.3, 1.7, 0.3}, -- In nodes from feet position + stepheight = 0.6, -- In nodes + eye_height = 1.47, -- In nodes above feet position + } + + +TNT API +------- + +`tnt.register_tnt(definition)` + +^ Register a new type of tnt. + + * `name` The name of the node. If no prefix is given `tnt` is used. + * `description` A description for your TNT. + * `radius` The radius within which the TNT can destroy nodes. The default is 3. + * `damage_radius` The radius within which the TNT can damage players and mobs. By default it is twice the `radius`. + * `sound` The sound played when explosion occurs. By default it is `tnt_explode`. + * `disable_drops` Disable drops. By default it is set to false. + * `ignore_protection` Don't check `minetest.is_protected` before removing a node. + * `ignore_on_blast` Don't call `on_blast` even if a node has one. + * `tiles` Textures for node + * `side` Side tiles. By default the name of the tnt with a suffix of `_side.png`. + * `top` Top tile. By default the name of the tnt with a suffix of `_top.png`. + * `bottom` Bottom tile. By default the name of the tnt with a suffix of `_bottom.png`. + * `burning` Top tile when lit. By default the name of the tnt with a suffix of `_top_burning_animated.png". + +`tnt.boom(position[, definition])` + +^ Create an explosion. + +* `position` The center of explosion. +* `definition` The TNT definion as passed to `tnt.register` with the following addition: + * `explode_center` false by default which removes TNT node on blast, when true will explode center node. + +`tnt.burn(position, [nodename])` + +^ Ignite node at position, triggering its `on_ignite` callback (see fire mod). +If no such callback exists, fallback to turn tnt group nodes to their +"_burning" variant. + nodename isn't required unless already known. + +To make dropping items from node inventories easier, you can use the +following helper function from 'default': + +default.get_inventory_drops(pos, inventory, drops) + +^ Return drops from node inventory "inventory" in drops. + +* `pos` - the node position +* `inventory` - the name of the inventory (string) +* `drops` - an initialized list + +The function returns no values. The drops are returned in the `drops` +parameter, and drops is not reinitialized so you can call it several +times in a row to add more inventory items to it. + + +`on_blast` callbacks: + +Both nodedefs and entitydefs can provide an `on_blast()` callback + +`nodedef.on_blast(pos, intensity)` +^ Allow drop and node removal overriding +* `pos` - node position +* `intensity` - TNT explosion measure. larger or equal to 1.0 +^ Should return a list of drops (e.g. {"default:stone"}) +^ Should perform node removal itself. If callback exists in the nodedef +^ then the TNT code will not destroy this node. + +`entitydef.on_blast(luaobj, damage)` +^ Allow TNT effects on entities to be overridden +* `luaobj` - LuaEntityRef of the entity +* `damage` - suggested HP damage value +^ Should return a list of (bool do_damage, bool do_knockback, table drops) +* `do_damage` - if true then TNT mod wil damage the entity +* `do_knockback` - if true then TNT mod will knock the entity away +* `drops` - a list of drops, e.g. {"wool:red"} + + +Screwdriver API +--------------- + +The screwdriver API allows you to control a node's behaviour when a screwdriver is used on it. +To use it, add the `on_screwdriver` function to the node definition. + +`on_rotate(pos, node, user, mode, new_param2)` + + * `pos` Position of the node that the screwdriver is being used on + * `node` that node + * `user` The player who used the screwdriver + * `mode` screwdriver.ROTATE_FACE or screwdriver.ROTATE_AXIS + * `new_param2` the new value of param2 that would have been set if on_rotate wasn't there + * return value: false to disallow rotation, nil to keep default behaviour, true to allow + it but to indicate that changed have already been made (so the screwdriver will wear out) + * use `on_rotate = false` to always disallow rotation + * use `on_rotate = screwdriver.rotate_simple` to allow only face rotation + + +Sethome API +----------- + +The sethome API adds three global functions to allow mods to read a players home position, +set a players home position and teleport a player to home position. + +`sethome.get(name)` + + * `name` Player who's home position you wish to get + * return value: false if no player home coords exist, position table if true + +`sethome.set(name, pos)` + + * `name` Player who's home position you wish to set + * `pos` Position table containing coords of home position + * return value: false if unable to set and save new home position, otherwise true + +`sethome.go(name)` + + * `name` Player you wish to teleport to their home position + * return value: false if player cannot be sent home, otherwise true + + +Sfinv API +--------- + +It is recommended that you read this link for a good introduction to the +sfinv API by its author: https://rubenwardy.com/minetest_modding_book/en/chapters/sfinv.html + +### sfinv Methods + +**Pages** + +* sfinv.set_page(player, pagename) - changes the page +* sfinv.get_page(player) - get the current page name. Will never return nil +* sfinv.get_homepage_name(player) - get the page name of the first page to show to a player +* sfinv.register_page(name, def) - register a page, see section below +* sfinv.override_page(name, def) - overrides fields of an page registered with register_page. + * Note: Page must already be defined, (opt)depend on the mod defining it. +* sfinv.set_player_inventory_formspec(player) - (re)builds page formspec + and calls set_inventory_formspec(). +* sfinv.get_formspec(player, context) - builds current page's formspec + +**Contexts** + +* sfinv.get_or_create_context(player) - gets the player's context +* sfinv.set_context(player, context) + +**Theming** + +* sfinv.make_formspec(player, context, content, show_inv, size) - adds a theme to a formspec + * show_inv, defaults to false. Whether to show the player's main inventory + * size, defaults to `size[8,8.6]` if not specified +* sfinv.get_nav_fs(player, context, nav, current_idx) - creates tabheader or "" + +### sfinv Members + +* pages - table of pages[pagename] = def +* pages_unordered - array table of pages in order of addition (used to build navigation tabs). +* contexts - contexts[playername] = player_context +* enabled - set to false to disable. Good for inventory rehaul mods like unified inventory + +### Context + +A table with these keys: + +* page - current page name +* nav - a list of page names +* nav_titles - a list of page titles +* nav_idx - current nav index (in nav and nav_titles) +* any thing you want to store + * sfinv will clear the stored data on log out / log in + +### sfinv.register_page + +sfinv.register_page(name, def) + +def is a table containing: + +* `title` - human readable page name (required) +* `get(self, player, context)` - returns a formspec string. See formspec variables. (required) +* `is_in_nav(self, player, context)` - return true to show in the navigation (the tab header, by default) +* `on_player_receive_fields(self, player, context, fields)` - on formspec submit. +* `on_enter(self, player, context)` - called when the player changes pages, usually using the tabs. +* `on_leave(self, player, context)` - when leaving this page to go to another, called before other's on_enter + +### get formspec + +Use sfinv.make_formspec to apply a layout: + + return sfinv.make_formspec(player, context, [[ + list[current_player;craft;1.75,0.5;3,3;] + list[current_player;craftpreview;5.75,1.5;1,1;] + image[4.75,1.5;1,1;gui_furnace_arrow_bg.png^[transformR270] + listring[current_player;main] + listring[current_player;craft] + image[0,4.25;1,1;gui_hb_bg.png] + image[1,4.25;1,1;gui_hb_bg.png] + image[2,4.25;1,1;gui_hb_bg.png] + image[3,4.25;1,1;gui_hb_bg.png] + image[4,4.25;1,1;gui_hb_bg.png] + image[5,4.25;1,1;gui_hb_bg.png] + image[6,4.25;1,1;gui_hb_bg.png] + image[7,4.25;1,1;gui_hb_bg.png] + ]], true) + +See above (methods section) for more options. + +### Customising themes + +Simply override this function to change the navigation: + + function sfinv.get_nav_fs(player, context, nav, current_idx) + return "navformspec" + end + +And override this function to change the layout: + + function sfinv.make_formspec(player, context, content, show_inv, size) + local tmp = { + size or "size[8,8.6]", + theme_main, + sfinv.get_nav_fs(player, context, context.nav_titles, context.nav_idx), + content + } + if show_inv then + tmp[4] = theme_inv + end + return table.concat(tmp, "") + end + + +Stairs API +---------- + +The stairs API lets you register stairs and slabs and ensures that they are registered the same way as those +delivered with Minetest Game, to keep them compatible with other mods. + +`stairs.register_stair(subname, recipeitem, groups, images, description, sounds, worldaligntex)` + + * Registers a stair + * `subname`: Basically the material name (e.g. cobble) used for the stair name. Nodename pattern: "stairs:stair_subname" + * `recipeitem`: Item used in the craft recipe, e.g. "default:cobble", may be `nil` + * `groups`: See [Known damage and digging time defining groups] + * `images`: See [Tile definition] + * `description`: Used for the description field in the stair's definition + * `sounds`: See [#Default sounds] + * `worldaligntex`: A bool to set all textures world-aligned. Default false. See [Tile definition] + +`stairs.register_slab(subname, recipeitem, groups, images, description, sounds, worldaligntex)` + + * Registers a slab + * `subname`: Basically the material name (e.g. cobble) used for the slab name. Nodename pattern: "stairs:slab_subname" + * `recipeitem`: Item used in the craft recipe, e.g. "default:cobble" + * `groups`: See [Known damage and digging time defining groups] + * `images`: See [Tile definition] + * `description`: Used for the description field in the slab's definition + * `sounds`: See [#Default sounds] + * `worldaligntex`: A bool to set all textures world-aligned. Default false. See [Tile definition] + +`stairs.register_stair_inner(subname, recipeitem, groups, images, description, sounds, worldaligntex, full_description)` + + * Registers an inner corner stair + * `subname`: Basically the material name (e.g. cobble) used for the stair name. Nodename pattern: "stairs:stair_inner_subname" + * `recipeitem`: Item used in the craft recipe, e.g. "default:cobble", may be `nil` + * `groups`: See [Known damage and digging time defining groups] + * `images`: See [Tile definition] + * `description`: Used for the description field in the stair's definition with "Inner" prepended + * `sounds`: See [#Default sounds] + * `worldaligntex`: A bool to set all textures world-aligned. Default false. See [Tile definition] + * `full_description`: Overrides the description, bypassing string concatenation. This is useful for translation. (optional) + +`stairs.register_stair_outer(subname, recipeitem, groups, images, description, sounds, worldaligntex, full_description)` + + * Registers an outer corner stair + * `subname`: Basically the material name (e.g. cobble) used for the stair name. Nodename pattern: "stairs:stair_outer_subname" + * `recipeitem`: Item used in the craft recipe, e.g. "default:cobble", may be `nil` + * `groups`: See [Known damage and digging time defining groups] + * `images`: See [Tile definition] + * `description`: Used for the description field in the stair's definition with "Outer" prepended + * `sounds`: See [#Default sounds] + * `worldaligntex`: A bool to set all textures world-aligned. Default false. See [Tile definition] + * `full_description`: Overrides the description, bypassing string concatenation. This is useful for translation. (optional) + +``` +stairs.register_stair_and_slab(subname, recipeitem, groups, images, desc_stair, desc_slab, + sounds, worldaligntex, desc_stair_inner, desc_stair_outer) +``` + + * A wrapper for stairs.register_stair, stairs.register_slab, stairs.register_stair_inner, stairs.register_stair_outer + * Uses almost the same arguments as stairs.register_stair + * `desc_stair`: Description for stair nodes. For corner stairs 'Inner' or 'Outer' will be prefixed unless + `desc_stair_inner` or `desc_stair_outer` are specified, which are used instead. + * `desc_slab`: Description for slab node + * `desc_stair_inner`: Description for inner stair node + * `desc_stair_outer`: Description for outer stair node + + +Xpanes API +---------- + +Creates panes that automatically connect to each other + +`xpanes.register_pane(subname, def)` + + * `subname`: used for nodename. Result: "xpanes:subname" and "xpanes:subname_{2..15}" + * `def`: See [#Pane definition] + +### Pane definition + + { + textures = { + "texture for front and back", + (unused), + "texture for the 4 edges" + }, -- More tiles aren't supported + groups = {group = rating}, -- Uses the known node groups, see [Known damage and digging time defining groups] + sounds = SoundSpec, -- See [#Default sounds] + recipe = {{"","","","","","","","",""}}, -- Recipe field only + use_texture_alpha = true, -- Optional boolean (default: `false`) for colored glass panes + } + + +Raillike definitions +-------------------- + +The following nodes use the group `connect_to_raillike` and will only connect to +raillike nodes within this group and the same group value. +Use `minetest.raillike_group()` to get the group value. + +| Node type | Raillike group name +|-----------------------|--------------------- +| default:rail | "rail" +| tnt:gunpowder | "gunpowder" +| tnt:gunpowder_burning | "gunpowder" + +Example: +If you want to add a new rail type and want it to connect with default:rail, +add `connect_to_raillike=minetest.raillike_group("rail")` into the `groups` table +of your node. + + +Default sounds +-------------- + +Sounds inside the default table can be used within the sounds field of node definitions. + + * `default.node_sound_defaults()` + * `default.node_sound_stone_defaults()` + * `default.node_sound_dirt_defaults()` + * `default.node_sound_sand_defaults()` + * `default.node_sound_wood_defaults()` + * `default.node_sound_leaves_defaults()` + * `default.node_sound_glass_defaults()` + * `default.node_sound_metal_defaults()` + + +Default constants +----------------- + +`default.LIGHT_MAX` The maximum light level (see [Node definition] light_source) + + +GUI and formspecs +----------------- + +`default.get_hotbar_bg(x, y)` + + * Get the hotbar background as string, containing the formspec elements + * x: Horizontal position in the formspec + * y: Vertical position in the formspec + +`default.gui_bg` + + * Deprecated, remove from mods. + +`default.gui_bg_img` + + * Deprecated, remove from mods. + +`default.gui_slots` + + * Deprecated, remove from mods. + +`default.gui_survival_form` + + * Entire formspec for the survival inventory + +`default.get_furnace_active_formspec(fuel_percent, item_percent)` + + * Get the active furnace formspec using the defined GUI elements + * fuel_percent: Percent of how much the fuel is used + * item_percent: Percent of how much the item is cooked + +`default.get_furnace_inactive_formspec()` + + * Get the inactive furnace formspec using the defined GUI elements + + +Leafdecay +--------- + +To enable leaf decay for leaves when a tree is cut down by a player, +register the tree with the default.register_leafdecay(leafdecaydef) +function. + +If `param2` of any registered node is ~= 0, the node will always be +preserved. Thus, if the player places a node of that kind, you will +want to set `param2 = 1` or so. + +The function `default.after_place_leaves` can be set as +`after_place_node of a node` to set param2 to 1 if the player places +the node (should not be used for nodes that use param2 otherwise +(e.g. facedir)). + +If the node is in the `leafdecay_drop` group then it will always be +dropped as an item. + +`default.register_leafdecay(leafdecaydef)` + +`leafdecaydef` is a table, with following members: + { + trunks = {"default:tree"}, -- nodes considered trunks + leaves = {"default:leaves", "default:apple"}, + -- nodes considered for removal + radius = 3, -- radius to consider for searching + } + +Note: all the listed nodes in `trunks` have their `on_after_destruct` +callback overridden. All the nodes listed in `leaves` have their +`on_timer` callback overridden. + + +Dyes +---- + +Minetest Game dyes are registered with: + + groups = {dye = 1, color_ = 1}, + +To make recipes that will work with dyes from many mods, define them using the +dye group and the color groups. + +Dye color groups: + + * `color_white` + * `color_grey` + * `color_dark_grey` + * `color_black` + * `color_red` + * `color_pink` + * `color_orange` + * `color_brown` + * `color_yellow` + * `color_green` + * `color_dark_green` + * `color_blue` + * `color_cyan` + * `color_violet` + * `color_magenta` + +Example of one shapeless recipe using the dye group and a color group: + + minetest.register_craft({ + type = "shapeless", + output = ":item_yellow", + recipe = {":item_no_color", "group:dye,color_yellow"}, + }) + + +Trees +----- + + * `default.grow_tree(pos, is_apple_tree)` + * Grows a mgv6 tree or apple tree at pos + + * `default.grow_jungle_tree(pos)` + * Grows a mgv6 jungletree at pos + + * `default.grow_pine_tree(pos)` + * Grows a mgv6 pinetree at pos + + * `default.grow_new_apple_tree(pos)` + * Grows a new design apple tree at pos + + * `default.grow_new_jungle_tree(pos)` + * Grows a new design jungle tree at pos + + * `default.grow_new_pine_tree(pos)` + * Grows a new design pine tree at pos + + * `default.grow_new_snowy_pine_tree(pos)` + * Grows a new design snowy pine tree at pos + + * `default.grow_new_acacia_tree(pos)` + * Grows a new design acacia tree at pos + + * `default.grow_new_aspen_tree(pos)` + * Grows a new design aspen tree at pos + + * `default.grow_bush(pos)` + * Grows a bush at pos + + * `default.grow_acacia_bush(pos)` + * Grows an acaia bush at pos + + * `default.grow_pine_bush(pos)` + * Grows a pine bush at pos + + * `default.grow_blueberry_bush(pos)` + * Grows a blueberry bush at pos + + +Carts +----- + + carts.register_rail( + "mycarts:myrail", -- Rail name + nodedef, -- standard nodedef + railparams -- rail parameter struct (optional) + ) + + railparams = { + on_step(obj, dtime), -- Event handler called when + -- cart is on rail + acceleration, -- integer acceleration factor (negative + -- values to brake) + } + + The event handler is called after all default calculations + are made, so the custom on_step handler can override things + like speed, acceleration, player attachment. The handler will + likely be called many times per second, so the function needs + to make sure that the event is handled properly. + + +Key API +------- + +The key API allows mods to add key functionality to nodes that have +ownership or specific permissions. Using the API will make it so +that a node owner can use skeleton keys on their nodes to create keys +for that node in that location, and give that key to other players, +allowing them some sort of access that they otherwise would not have +due to node protection. + +To make your new nodes work with the key API, you need to register +two callback functions in each nodedef: + + +`on_key_use(pos, player)` + * Is called when a player right-clicks (uses) a normal key on your + * node. + * `pos` - position of the node + * `player` - PlayerRef + * return value: none, ignored + +The `on_key_use` callback should validate that the player is wielding +a key item with the right key meta secret. If needed the code should +deny access to the node functionality. + +If formspecs are used, the formspec callbacks should duplicate these +checks in the metadata callback functions. + + +`on_skeleton_key_use(pos, player, newsecret)` + + * Is called when a player right-clicks (uses) a skeleton key on your + * node. + * `pos` - position of the node + * `player` - PlayerRef + * `newsecret` - a secret value(string) + * return values: + * `secret` - `nil` or the secret value that unlocks the door + * `name` - a string description of the node ("a locked chest") + * `owner` - name of the node owner + +The `on_skeleton_key_use` function should validate that the player has +the right permissions to make a new key for the item. The newsecret +value is useful if the node has no secret value. The function should +store this secret value somewhere so that in the future it may compare +key secrets and match them to allow access. If a node already has a +secret value, the function should return that secret value instead +of the newsecret value. The secret value stored for the node should +not be overwritten, as this would invalidate existing keys. + +Aside from the secret value, the function should retun a descriptive +name for the node and the owner name. The return values are all +encoded in the key that will be given to the player in replacement +for the wielded skeleton key. + +if `nil` is returned, it is assumed that the wielder did not have +permissions to create a key for this node, and no key is created. + +`default.register_craft_metadata_copy(ingredient, result)` +---------------------------------------------------------- + +This function registers a shapeless recipe that takes `ingredient` +and `result` as input and outputs `result`. + +The metadata of the input `result` is copied to the output `result`. diff --git a/menu/header.png b/menu/header.png new file mode 100644 index 0000000000000000000000000000000000000000..2ecda837058d5f18fa114a59419d7536fcd15705 GIT binary patch literal 1921 zcmV-{2Y&d8P)e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00!wvL_t(&-tAgTZxdG({>B>o zo=H+@h|@|WD5OOy>K28^u2rR0>ZU4)hgw)rsUQ|C+DHvW5iIxzm1q}8B`Lc~ELxg~ zKpqf+YbC`&kf%jLV#ju9JTtb(Hpz5h&veGVlNo1BOjXVb#`B%?oqNu?_uMm~?%lp6 zP0q|fEs<~-?dLC0>SuRv^-7b|)5`xTn+=hr2oCPsk7B&Ex(WbTibip8f9da)(l1Lk zn}ywO*F1ZT&*R%WwCh|fr1)3czs<}KdTwC>qho)8=Xo#;gN!J`?r`Ap#ZE~k@!;;D zbglar005Urpr*DK01zC1gr=ruBA!bmFflcSrsift{Qxk(7{=(sU|ISBfUT*~IQAN^ z#T$uU{HyI>CGyXVeL5bCAruP1>2g6xCIJ9$rxRQvfy);=r2}nkkd5;^56WgkI1&K> zB)A0h@Uj@`R~NxX^mB=X;^b?5Dc(q4RsSlLe@6Cc0C2io@OnIuBq@J{tgRuLN+B>h zhQR0;yk0K=Ael;O7H{>%3#^CFX0tHTf9XPp)X{l~62)}c`qjtTM)>_-@J8~g`e!x& z%-E;5I2-_=RF7OiKA#UgslTrLMA{WGDbxO}No z($i1E{}~9NX~zzv(`itYev8ZT0*3v5%*@Vep1-$ycZq-fgF|T8USEQ@YQNh2jbyX@ zYu(jiI=}!)}Myu!^UJ$@>9Hg~154QkIHbY9 zQCElIkq4B+ZkLSo3qlH(Y)J*H#f<)k!Jw}GV*IC{e2h~kPe_!_hDmG}NmtgJf) zQQLpEu%Nq0R_wnD{EeiTpL#+ReEhf~{;{kVp-{+Fe9O&0E9*-;olf`~8o=|sQb8=s zDlfg&*r@!Q7X;-Up67wW@lwOGnjVa0S-4#Jnwy(V#dkCFgBC?m zIacJVT3%jOKsK8Vc85dhztqQ%(~+-KF`dTR>Z%4GUykR0v#7rk{PZRtYW&K|3h~|l zI)5V}@snd0kHs+l=+R5{uiAJTg^G|b8I;YYxpfy`JW`^FlqeF%Y-)U5CSg@S0UsD0 zL&NrZWU^T}iau~;3X>-Qh{fZ?pnJVuY~8w*Xum`(+P~A^kIAWNW#>^}%GCJQT`iy} z+q&z!A^t`}icg`Z9`^eYjm6gI_Y&f}nfXCWYimmNWD0!}Q^O*c%_+uNmc`AUUVQZ7 z2VhxN`RE|`oyB;k%cU4Ht6!F4{Um%{T`lh2AE7oH^Gq(MSzMN7;dHvl`C-xi)t|de zaXNeEv^0Ewgt)#|_#5Uw!9O{6UES9yBYq_OSTKk;w{26B&*^kw=gww$+-_6&a`Mk= zeCTX8i<;V6rKbb{e;|PO_v}$VAOCve2EJ?m7PtCtE4xED5j_>u7O=g)C(_`YV{ z4}JcbM9Lql`DZmgw8QBH$8n%23Jk+2z0nU>ex$xUeoPt|x{JBFdCfRePE?28j?mLN z^bZbc@C?IXW;O(WAb?XRPpqq-qA2AOqdDda`bqr4i(!Np!^*`+-W7`F$;5>2#g7*R z1@CKU(A{mV+JD>ESh7CqjY7tcj648oeXa609AldFPmiBo{;W4{HG?;se^%o|J6$eN z6a^ufRK`hSMl2lP*C=)G)adgmw`uiP#A3XfsFD7oM-EH!3DDZoQnvnNDy3Y0NO--A zpS&P4UT?RxYQNh2&3px}w10AZi+gXg`BTaKGvZH+q6mgzz%b0eqa@YELS4a&;V^_` zQgbmO;pM8+`(3TStNS|j?|%QnFdGUv2(ora+bU z&uacuD*w#zr+a#OF;Vz4Q~Ah^6lSPu>Fw*olP43J_ns{-f`peP5{<%)e)%LQSHJun zqImaH<4JO7U;vX-(;B?q#K@}sYV$Xem*Jn){Hav_nc@Er|C%)_5I5-d00000NkvXX Hu0mjfj{w9^ literal 0 HcmV?d00001 diff --git a/menu/icon.png b/menu/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..bf90c8299d517371d9f800a87ed7c9326bf9e10f GIT binary patch literal 3008 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 + +# The radius of a TNT explosion. +#tnt_radius = 3 + +# Enable the stairs mod ABM that replaces the old 'upside down' +# stair and slab nodes in old maps with the new param2 versions. +#enable_stairs_replace_abm = false + +# Whether to allow respawning in beds. +# Default value is true. +#enable_bed_respawn = true + +# Whether players can skip night by sleeping. +# Default value is true. +#enable_bed_night_skip = true + +# If enabled, fences and walls cannot be jumped over. +#enable_fence_tall = false + +# Whether the engine's spawn search, which does not check for a suitable +# starting biome, is used. +# Default value is false. +#engine_spawn = false + +# Whether river water source nodes create flowing sounds. +# Helps rivers create more sound, especially on level sections. +#river_source_sounds = false + +# Enable cloud variation by the 'weather' mod. +# Non-functional in V6 or Singlenode mapgens. +#enable_weather = true diff --git a/schematic_tables.txt b/schematic_tables.txt new file mode 100644 index 0000000..eff2d35 --- /dev/null +++ b/schematic_tables.txt @@ -0,0 +1,2228 @@ +Minetest Game schematic tables +============================== + +This document acts as the official record of all schematic tables used in +Minetest Game, and should be updated by any commit that adds a table type +schematic. + +The following tables are for pasting into mods that contain a function to +convert the Lua tables into .mts files. Such mods often have two functions to +process two formats of the 'data' table: + +The standard table format is described in the 'Schematic specifier' section of +the lua_api.txt file in the Minetest Engine. +The 'data' table appears as a sequence of vertical slices through the structure +the schematic describes. +Each XY-plane slice has the X-rows formatted in order of increasing Y, so the +slices of the structure visually appear upside-down in the table. +In this document this format is used where 'mts_save()' appears. + +The transformed table format was created to be easier to work with. +Each XY-plane slice has the X-rows formatted in order of decreasing Y, so the +slices of the structure visually appear upright in the table. +In this document this format is used where 'mts_save_up()' appears. + + +-- This node will not replace existing world nodes + +local _ = {name = "air", prob = 0} + + +-- Mapgen Apple tree + +local M = {name = "default:leaves", prob = 255} +local N = {name = "default:leaves", prob = 223} +local F = {name = "default:apple", prob = 63} +local Y = {name = "default:tree", prob = 255, force_place = true} +local T = {name = "default:tree", prob = 255} + +mts_save("apple_tree", { + size = {x = 7, y = 8, z = 7}, + data = { + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, N, M, N, _, _, + _, _, _, N, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, M, M, F, M, M, _, + _, N, M, M, M, N, _, + _, _, N, M, N, _, _, + _, _, _, _, _, _, _, + + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + N, M, Y, _, _, M, N, + _, M, M, _, Y, M, _, + _, N, M, M, M, N, _, + _, _, _, N, _, _, _, + + _, _, _, Y, _, _, _, + _, _, _, Y, _, _, _, + _, _, _, Y, _, _, _, + _, _, _, Y, _, _, _, + M, F, _, Y, _, F, M, + N, M, _, _, _, M, N, + _, M, M, M, M, M, _, + _, _, N, M, N, _, _, + + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + N, M, _, _, Y, M, N, + _, M, Y, _, M, M, _, + _, N, M, M, M, N, _, + _, _, _, N, _, _, _, + + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, M, M, F, M, M, _, + _, N, M, M, M, N, _, + _, _, N, M, N, _, _, + _, _, _, _, _, _, _, + + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, N, M, N, _, _, + _, _, _, N, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + }, + yslice_prob = { + {ypos = 2, prob = 127}, + }, +}) + + +-- Apple tree from sapling + +mts_save("apple_tree_from_sapling", { + size = {x = 7, y = 8, z = 7}, + data = { + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, N, M, N, _, _, + _, _, _, N, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, M, M, F, M, M, _, + _, N, M, M, M, N, _, + _, _, N, M, N, _, _, + _, _, _, _, _, _, _, + + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + N, M, T, _, _, M, N, + _, M, M, _, T, M, _, + _, N, M, M, M, N, _, + _, _, _, N, _, _, _, + + _, _, _, T, _, _, _, + _, _, _, Y, _, _, _, + _, _, _, T, _, _, _, + _, _, _, T, _, _, _, + M, F, _, T, _, F, M, + N, M, _, _, _, M, N, + _, M, M, M, M, M, _, + _, _, N, M, N, _, _, + + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + N, M, _, _, T, M, N, + _, M, T, _, M, M, _, + _, N, M, M, M, N, _, + _, _, _, N, _, _, _, + + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, M, M, F, M, M, _, + _, N, M, M, M, N, _, + _, _, N, M, N, _, _, + _, _, _, _, _, _, _, + + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, N, M, N, _, _, + _, _, _, N, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + }, + yslice_prob = { + {ypos = 2, prob = 127}, + }, +}) + + +-- Mapgen Jungle tree + +local L = {name = "default:jungleleaves", prob = 255} +local N = {name = "default:jungleleaves", prob = 223} +local M = {name = "default:jungleleaves", prob = 191} +local B = {name = "default:jungletree", prob = 255, force_place = true} +local Y = {name = "default:jungletree", prob = 191, force_place = true} +local U = {name = "default:jungletree", prob = 127, force_place = true} +local I = {name = "default:jungletree", prob = 255} + +mts_save("jungle_tree", { + size = {x = 5, y = 17, z = 5}, + data = { + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + N, L, N, _, _, + _, _, N, L, N, + _, _, _, _, _, + _, _, _, _, _, + M, N, N, N, M, + M, N, N, N, M, + _, _, _, _, _, + + _, _, B, _, _, + _, _, B, _, _, + _, _, U, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + L, B, L, _, _, + _, _, L, B, L, + _, _, _, _, _, + _, _, _, _, _, + N, B, L, B, N, + N, L, L, L, N, + _, N, N, N, _, + + _, B, B, B, _, + _, B, B, B, _, + _, U, B, U, _, + _, _, B, _, _, + _, _, B, _, _, + _, _, B, _, _, + _, _, B, _, _, + _, _, B, _, _, + _, _, B, L, N, + N, L, B, _, _, + N, L, B, _, _, + _, _, B, L, N, + _, _, B, L, N, + _, _, B, _, _, + N, L, L, L, N, + N, L, L, L, N, + _, N, L, N, _, + + _, _, B, _, _, + _, _, B, _, _, + _, _, U, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, L, B, L, + L, B, L, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, L, B, L, + _, _, _, _, _, + N, B, L, B, N, + N, L, L, L, N, + _, N, N, N, _, + + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, N, L, N, + N, L, N, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, N, L, N, + _, _, _, _, _, + M, N, N, N, M, + M, N, N, N, M, + _, _, _, _, _, + }, + yslice_prob = { + {ypos=6, prob=191}, + {ypos=7, prob=191}, + {ypos=8, prob=191}, + {ypos=9, prob=191}, + {ypos=10, prob=191}, + }, +}) + + +-- Jungle tree from sapling + +local B = {name = "default:jungletree", prob = 255} +local C = {name = "default:jungletree", prob = 255, force_place = true} +local Y = {name = "default:jungletree", prob = 191} +local U = {name = "default:jungletree", prob = 127} + +mts_save("jungle_tree_from_sapling", { + size = {x = 5, y = 17, z = 5}, + data = { + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + N, L, N, _, _, + _, _, N, L, N, + _, _, _, _, _, + _, _, _, _, _, + M, N, N, N, M, + M, N, N, N, M, + _, _, _, _, _, + + _, _, B, _, _, + _, _, B, _, _, + _, _, U, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + L, B, L, _, _, + _, _, L, B, L, + _, _, _, _, _, + _, _, _, _, _, + N, B, L, B, N, + N, L, L, L, N, + _, N, N, N, _, + + _, B, B, B, _, + _, B, C, B, _, + _, U, B, U, _, + _, _, B, _, _, + _, _, B, _, _, + _, _, B, _, _, + _, _, B, _, _, + _, _, B, _, _, + _, _, B, L, N, + N, L, B, _, _, + N, L, B, _, _, + _, _, B, L, N, + _, _, B, L, N, + _, _, B, _, _, + N, L, L, L, N, + N, L, L, L, N, + _, N, L, N, _, + + _, _, B, _, _, + _, _, B, _, _, + _, _, U, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, L, B, L, + L, B, L, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, L, B, L, + _, _, _, _, _, + N, B, L, B, N, + N, L, L, L, N, + _, N, N, N, _, + + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, N, L, N, + N, L, N, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, N, L, N, + _, _, _, _, _, + M, N, N, N, M, + M, N, N, N, M, + _, _, _, _, _, + }, + yslice_prob = { + {ypos=6, prob=191}, + {ypos=7, prob=191}, + {ypos=8, prob=191}, + {ypos=9, prob=191}, + {ypos=10, prob=191}, + }, +}) + + +-- Mapgen Pine tree + +local L = {name = "default:pine_needles", prob = 255} +local M = {name = "default:pine_needles", prob = 223} +local N = {name = "default:pine_needles", prob = 191} +local T = {name = "default:pine_tree", prob = 255, force_place = true} +local B = {name = "default:pine_tree", prob = 255} + +mts_save("pine_tree", { + size = {x = 5, y = 16, z = 5}, + data = { + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + N, M, L, M, N, + _, _, _, _, _, + _, _, _, _, _, + N, M, L, M, N, + _, _, _, _, _, + _, _, _, _, _, + N, M, L, M, N, + _, _, _, _, _, + _, _, _, _, _, + + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + M, L, _, L, M, + _, L, L, L, _, + _, _, _, _, _, + M, L, _, L, M, + _, L, L, L, _, + _, _, _, _, _, + M, L, _, L, M, + _, L, L, L, _, + _, _, _, _, _, + + _, _, T, _, _, + _, _, T, _, _, + _, _, T, _, _, + _, _, T, _, _, + _, _, T, _, _, + _, _, T, _, _, + _, _, T, _, _, + L, _, T, _, L, + _, L, T, L, _, + _, _, T, _, _, + L, _, T, _, L, + _, L, T, L, _, + _, _, T, _, _, + L, _, T, _, L, + _, L, L, L, _, + _, _, L, _, _, + + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + M, L, _, L, M, + _, L, L, L, _, + _, _, _, _, _, + M, L, _, L, M, + _, L, L, L, _, + _, _, _, _, _, + M, L, _, L, M, + _, L, L, L, _, + _, _, _, _, _, + + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + N, M, L, M, N, + _, _, _, _, _, + _, _, _, _, _, + N, M, L, M, N, + _, _, _, _, _, + _, _, _, _, _, + N, M, L, M, N, + _, _, _, _, _, + _, _, _, _, _, + }, + yslice_prob = { + {ypos = 2, prob = 127}, + {ypos = 3, prob = 127}, + {ypos = 4, prob = 127}, + {ypos = 5, prob = 127}, + {ypos = 9, prob = 127}, + {ypos = 12, prob = 127}, + }, +}) + + +-- Pine tree from sapling + +local T = {name = "default:pine_tree", prob = 255} +local U = {name = "default:pine_tree", prob = 255, force_place = true} + +mts_save("pine_tree_from_sapling", { + size = {x = 5, y = 16, z = 5}, + data = { + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + N, M, L, M, N, + _, _, _, _, _, + _, _, _, _, _, + N, M, L, M, N, + _, _, _, _, _, + _, _, _, _, _, + N, M, L, M, N, + _, _, _, _, _, + _, _, _, _, _, + + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + M, L, _, L, M, + _, L, L, L, _, + _, _, _, _, _, + M, L, _, L, M, + _, L, L, L, _, + _, _, _, _, _, + M, L, _, L, M, + _, L, L, L, _, + _, _, _, _, _, + + _, _, T, _, _, + _, _, U, _, _, + _, _, T, _, _, + _, _, T, _, _, + _, _, T, _, _, + _, _, T, _, _, + _, _, T, _, _, + L, _, T, _, L, + _, L, T, L, _, + _, _, T, _, _, + L, _, T, _, L, + _, L, T, L, _, + _, _, T, _, _, + L, _, T, _, L, + _, L, L, L, _, + _, _, L, _, _, + + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + M, L, _, L, M, + _, L, L, L, _, + _, _, _, _, _, + M, L, _, L, M, + _, L, L, L, _, + _, _, _, _, _, + M, L, _, L, M, + _, L, L, L, _, + _, _, _, _, _, + + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + N, M, L, M, N, + _, _, _, _, _, + _, _, _, _, _, + N, M, L, M, N, + _, _, _, _, _, + _, _, _, _, _, + N, M, L, M, N, + _, _, _, _, _, + _, _, _, _, _, + }, + yslice_prob = { + {ypos = 2, prob = 127}, + {ypos = 3, prob = 127}, + {ypos = 4, prob = 127}, + {ypos = 5, prob = 127}, + {ypos = 9, prob = 127}, + {ypos = 12, prob = 127}, + }, +}) + + +-- Snowy pine tree from sapling + +local T = {name = "default:pine_tree", prob = 255} +local U = {name = "default:pine_tree", prob = 255, force_place = true} +local L = {name = "default:pine_needles", prob = 255} +local S = {name = "default:snow", prob = 255} + +mts_save("snowy_pine_tree_from_sapling", { + size = {x = 5, y = 16, z = 5}, + data = { + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + N, M, L, M, N, + _, _, _, _, _, + _, _, _, _, _, + N, M, L, M, N, + _, _, _, _, _, + _, _, _, _, _, + L, L, L, L, L, + S, S, S, S, S, + _, _, _, _, _, + _, _, _, _, _, + + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + M, L, _, L, M, + _, L, L, L, _, + _, _, _, _, _, + L, L, _, L, M, + S, L, L, L, _, + _, _, _, _, _, + _, L, _, L, L, + _, L, L, L, S, + _, S, S, S, _, + _, _, _, _, _, + + _, _, T, _, _, + _, _, U, _, _, + _, _, T, _, _, + _, _, T, _, _, + _, _, T, _, _, + _, _, T, _, _, + L, _, T, _, L, + _, L, T, L, _, + _, _, T, _, _, + L, _, T, _, L, + _, L, T, L, _, + _, _, T, _, _, + L, _, T, _, L, + S, L, L, L, S, + _, S, L, S, _, + _, _, S, _, _, + + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + M, L, _, L, M, + _, L, L, L, _, + _, _, _, _, _, + M, L, _, L, M, + _, L, L, L, _, + _, _, _, _, _, + L, L, _, L, L, + S, L, L, L, S, + _, S, S, S, _, + _, _, _, _, _, + + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + N, M, L, M, N, + _, _, _, _, _, + _, _, _, _, _, + N, M, L, M, L, + _, _, _, _, S, + _, _, _, _, _, + L, L, L, L, _, + S, S, S, S, _, + _, _, _, _, _, + _, _, _, _, _, + }, + yslice_prob = { + {ypos = 2, prob = 127}, + {ypos = 3, prob = 127}, + {ypos = 4, prob = 127}, + {ypos = 8, prob = 127}, + {ypos = 11, prob = 127}, + }, +}) + + +-- Mapgen Acacia tree + +local L = {name = "default:acacia_leaves", prob = 255} +local M = {name = "default:acacia_leaves", prob = 223} +local T = {name = "default:acacia_tree", prob = 255, force_place = true} + +mts_save("acacia_tree", { + size = {x = 9, y = 9, z = 9}, + data = { + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + M, M, M, M, _, _, _, _, _, + _, _, _, _, M, M, M, M, M, + + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + M, L, L, M, _, _, _, _, _, + _, _, _, _, M, L, L, L, M, + + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, T, _, _, _, _, _, _, + M, L, L, M, _, _, T, _, _, + _, _, _, _, M, L, L, L, M, + + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, T, _, _, _, _, _, + _, _, _, _, _, T, _, _, _, + M, M, M, M, _, _, _, _, _, + _, _, _, _, M, L, L, L, M, + + _, _, _, _, T, _, _, _, _, + _, _, _, _, T, _, _, _, _, + _, _, _, _, T, _, _, _, _, + _, _, _, _, T, _, _, _, _, + _, _, _, _, T, _, _, _, _, + _, _, _, _, T, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + M, M, M, M, M, M, M, M, M, + + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, T, _, _, _, + _, _, _, T, _, _, _, _, _, + _, _, _, _, _, M, M, M, M, + M, L, L, L, M, _, _, _, _, + + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, T, _, _, + _, _, T, _, _, M, L, L, M, + M, L, L, L, M, _, _, _, _, + + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, M, L, L, M, + M, L, L, L, M, _, _, _, _, + + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, M, M, M, M, + M, M, M, M, M, _, _, _, _, + }, + yslice_prob = { + {ypos = 2, prob = 127}, + {ypos = 3, prob = 127}, + {ypos = 4, prob = 127}, + }, +}) + + +-- Acacia tree from sapling + +local T = {name = "default:acacia_tree", prob = 255} +local U = {name = "default:acacia_tree", prob = 255, force_place = true} + +mts_save("acacia_tree_from_sapling", { + size = {x = 9, y = 9, z = 9}, + data = { + + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + M, M, M, M, _, _, _, _, _, + _, _, _, _, M, M, M, M, M, + + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + M, L, L, M, _, _, _, _, _, + _, _, _, _, M, L, L, L, M, + + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, T, _, _, _, _, _, _, + M, L, L, M, _, _, T, _, _, + _, _, _, _, M, L, L, L, M, + + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, T, _, _, _, _, _, + _, _, _, _, _, T, _, _, _, + M, M, M, M, _, _, _, _, _, + _, _, _, _, M, L, L, L, M, + + _, _, _, _, T, _, _, _, _, + _, _, _, _, U, _, _, _, _, + _, _, _, _, T, _, _, _, _, + _, _, _, _, T, _, _, _, _, + _, _, _, _, T, _, _, _, _, + _, _, _, _, T, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + M, M, M, M, M, M, M, M, M, + + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, T, _, _, _, + _, _, _, T, _, _, _, _, _, + _, _, _, _, _, M, M, M, M, + M, L, L, L, M, _, _, _, _, + + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, T, _, _, + _, _, T, _, _, M, L, L, M, + M, L, L, L, M, _, _, _, _, + + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, M, L, L, M, + M, L, L, L, M, _, _, _, _, + + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + _, _, _, _, _, M, M, M, M, + M, M, M, M, M, _, _, _, _, + }, + yslice_prob = { + {ypos = 2, prob = 127}, + {ypos = 3, prob = 127}, + {ypos = 4, prob = 127}, + }, +}) + + +-- Mapgen Aspen tree + +local T = {name = "default:aspen_tree", prob = 255, force_place = true} +local B = {name = "default:aspen_tree", prob = 255} +local L = {name = "default:aspen_leaves", prob = 255} +local M = {name = "default:aspen_leaves", prob = 223} +local N = {name = "default:aspen_leaves", prob = 127} + +mts_save("aspen_tree", { + size = {x = 5, y = 14, z = 5}, + data = { + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + N, M, L, M, N, + _, _, _, _, _, + N, M, L, M, N, + _, _, _, _, _, + N, M, L, M, N, + _, _, _, _, _, + _, _, _, _, _, + + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, M, L, M, _, + M, L, L, L, M, + _, M, L, M, _, + M, L, L, L, M, + _, M, L, M, _, + M, L, L, L, M, + _, M, L, M, _, + _, _, _, _, _, + + _, _, T, _, _, + _, _, T, _, _, + _, _, T, _, _, + _, _, T, _, _, + _, _, T, _, _, + _, _, T, _, _, + _, L, T, L, _, + L, L, T, L, L, + _, L, T, L, _, + L, L, T, L, L, + _, L, T, L, _, + L, L, T, L, L, + _, L, L, L, _, + _, _, L, _, _, + + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, M, L, M, _, + M, L, L, L, M, + _, M, L, M, _, + M, L, L, L, M, + _, M, L, M, _, + M, L, L, L, M, + _, M, L, M, _, + _, _, _, _, _, + + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + N, M, L, M, N, + _, _, _, _, _, + N, M, L, M, N, + _, _, _, _, _, + N, M, L, M, N, + _, _, _, _, _, + _, _, _, _, _, + }, + yslice_prob = { + {ypos = 2, prob = 127}, + {ypos = 3, prob = 127}, + {ypos = 4, prob = 127}, + {ypos = 8, prob = 127}, + {ypos = 10, prob = 127}, + }, +}) + + +-- Aspen tree from sapling + +mts_save("aspen_tree_from_sapling", { + size = {x = 5, y = 14, z = 5}, + data = { + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + N, M, L, M, N, + _, _, _, _, _, + N, M, L, M, N, + _, _, _, _, _, + N, M, L, M, N, + _, _, _, _, _, + _, _, _, _, _, + + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, M, L, M, _, + M, L, L, L, M, + _, M, L, M, _, + M, L, L, L, M, + _, M, L, M, _, + M, L, L, L, M, + _, M, L, M, _, + _, _, _, _, _, + + _, _, B, _, _, + _, _, T, _, _, + _, _, B, _, _, + _, _, B, _, _, + _, _, B, _, _, + _, _, B, _, _, + _, L, B, L, _, + L, L, B, L, L, + _, L, B, L, _, + L, L, B, L, L, + _, L, B, L, _, + L, L, B, L, L, + _, L, L, L, _, + _, _, L, _, _, + + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, M, L, M, _, + M, L, L, L, M, + _, M, L, M, _, + M, L, L, L, M, + _, M, L, M, _, + M, L, L, L, M, + _, M, L, M, _, + _, _, _, _, _, + + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + N, M, L, M, N, + _, _, _, _, _, + N, M, L, M, N, + _, _, _, _, _, + N, M, L, M, N, + _, _, _, _, _, + _, _, _, _, _, + }, + yslice_prob = { + {ypos = 2, prob = 127}, + {ypos = 3, prob = 127}, + {ypos = 4, prob = 127}, + {ypos = 8, prob = 127}, + {ypos = 10, prob = 127}, + }, +}) + + +-- Mapgen emergent jungle tree + +local L = {name = "default:jungleleaves", prob = 255} +local N = {name = "default:jungleleaves", prob = 223} +local M = {name = "default:jungleleaves", prob = 127} +local B = {name = "default:jungletree", prob = 255, force_place = true} +local U = {name = "default:jungletree", prob = 127, force_place = true} + +mts_save("emergent_jungle_tree", { + size = {x = 7, y = 37, z = 7}, + data = { + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + B, _, _, _, _, _, B, + B, _, _, _, _, _, B, + B, _, _, _, _, _, B, + U, _, _, _, _, _, U, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + N, N, N, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, N, N, N, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, N, N, N, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + N, N, N, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, N, N, N, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, M, M, M, M, M, _, + _, N, N, N, N, N, _, + _, N, N, N, N, N, _, + _, N, N, N, N, N, _, + _, _, _, _, _, _, _, + + _, _, _, _, _, _, _, + _, _, B, _, B, _, _, + _, B, B, _, B, B, _, + _, B, B, _, B, B, _, + _, B, B, _, B, B, _, + _, B, B, _, B, B, _, + _, B, B, _, B, B, _, + _, U, B, _, B, U, _, + _, _, U, _, U, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + N, B, N, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, N, B, N, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, N, B, N, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + N, B, N, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, N, B, N, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + M, _, _, _, _, _, M, + N, L, _, _, _, L, N, + N, B, L, L, L, B, N, + N, L, L, L, L, L, N, + _, N, N, N, N, N, _, + + _, _, B, _, B, _, _, + _, B, B, _, B, B, _, + _, B, B, _, B, B, _, + _, B, B, _, B, B, _, + _, B, B, B, B, B, _, + _, B, B, B, B, B, _, + _, B, B, B, B, B, _, + _, B, B, B, B, B, _, + _, U, B, B, B, U, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + N, N, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, _, B, B, N, N, + N, N, N, B, _, _, _, + _, _, _, B, _, _, _, + _, _, N, B, N, _, _, + _, _, _, B, _, _, _, + _, _, _, B, N, N, N, + N, N, B, B, _, _, _, + _, _, _, B, _, _, _, + _, _, _, B, B, N, N, + N, N, N, B, _, _, _, + _, _, _, B, _, _, _, + M, _, B, B, B, _, M, + N, _, B, _, B, _, N, + N, L, L, _, L, L, N, + N, L, L, L, L, L, N, + _, N, L, L, L, N, _, + + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + N, B, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, B, N, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + N, B, B, B, B, _, _, + _, _, B, B, B, _, _, + M, _, B, _, B, _, M, + N, _, _, _, _, _, N, + N, L, _, _, _, L, N, + N, L, L, L, L, L, N, + _, N, L, L, L, N, _, + + _, _, B, _, B, _, _, + _, B, B, _, B, B, _, + _, B, B, _, B, B, _, + _, B, B, _, B, B, _, + _, B, B, B, B, B, _, + _, B, B, B, B, B, _, + _, B, B, B, B, B, _, + _, B, B, B, B, B, _, + _, U, B, B, B, U, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, _, B, _, _, _, + N, N, N, B, _, _, _, + _, _, _, B, B, N, N, + _, _, _, B, _, _, _, + N, N, B, B, _, _, _, + _, _, _, B, N, N, N, + _, _, _, B, _, _, _, + _, _, N, B, N, _, _, + _, _, _, B, _, _, _, + N, N, N, B, _, _, _, + _, _, _, B, _, _, _, + M, _, B, B, B, _, M, + N, _, B, _, B, _, N, + N, L, L, _, L, L, N, + N, L, L, L, L, L, N, + _, N, L, L, L, N, _, + + _, _, _, _, _, _, _, + _, _, B, _, B, _, _, + _, B, B, _, B, B, _, + _, B, B, _, B, B, _, + _, B, B, _, B, B, _, + _, B, B, _, B, B, _, + _, B, B, _, B, B, _, + _, U, B, _, B, U, _, + _, _, U, _, U, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, N, B, N, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, N, B, N, + _, _, _, _, _, _, _, + N, B, N, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, N, B, N, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + M, _, _, _, _, _, M, + N, L, _, _, _, L, N, + N, B, L, L, L, B, N, + N, L, L, L, L, L, N, + _, N, N, N, N, N, _, + + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + B, _, _, _, _, _, B, + B, _, _, _, _, _, B, + B, _, _, _, _, _, B, + U, _, _, _, _, _, U, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, N, N, N, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, N, N, N, + _, _, _, _, _, _, _, + N, N, N, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, N, N, N, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, M, M, M, M, M, _, + _, N, N, N, N, N, _, + _, N, N, N, N, N, _, + _, N, N, N, N, N, _, + _, _, _, _, _, _, _, + }, + yslice_prob = { + {ypos = 13, prob = 127}, + {ypos = 14, prob = 127}, + {ypos = 15, prob = 127}, + {ypos = 16, prob = 127}, + {ypos = 17, prob = 127}, + {ypos = 18, prob = 127}, + {ypos = 19, prob = 127}, + {ypos = 20, prob = 127}, + {ypos = 21, prob = 127}, + {ypos = 22, prob = 127}, + {ypos = 23, prob = 127}, + {ypos = 24, prob = 127}, + }, +}) + + +-- Emergent jungle tree from sapling + +local L = {name = "default:jungleleaves", prob = 255} +local N = {name = "default:jungleleaves", prob = 223} +local M = {name = "default:jungleleaves", prob = 127} +local S = {name = "default:jungletree", prob = 255, force_place = true} +local B = {name = "default:jungletree", prob = 255} +local U = {name = "default:jungletree", prob = 127} + +mts_save("emergent_jungle_tree_from_sapling", { + size = {x = 7, y = 37, z = 7}, + data = { + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + B, _, _, _, _, _, B, + B, _, _, _, _, _, B, + B, _, _, _, _, _, B, + U, _, _, _, _, _, U, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + N, N, N, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, N, N, N, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, N, N, N, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + N, N, N, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, N, N, N, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, M, M, M, M, M, _, + _, N, N, N, N, N, _, + _, N, N, N, N, N, _, + _, N, N, N, N, N, _, + _, _, _, _, _, _, _, + + _, _, _, _, _, _, _, + _, _, B, _, B, _, _, + _, B, B, _, B, B, _, + _, B, B, _, B, B, _, + _, B, B, _, B, B, _, + _, B, B, _, B, B, _, + _, B, B, _, B, B, _, + _, U, B, _, B, U, _, + _, _, U, _, U, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + N, B, N, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, N, B, N, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, N, B, N, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + N, B, N, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, N, B, N, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + M, _, _, _, _, _, M, + N, L, _, _, _, L, N, + N, B, L, L, L, B, N, + N, L, L, L, L, L, N, + _, N, N, N, N, N, _, + + _, _, B, _, B, _, _, + _, B, B, _, B, B, _, + _, B, B, _, B, B, _, + _, B, B, _, B, B, _, + _, B, B, B, B, B, _, + _, B, B, B, B, B, _, + _, B, B, B, B, B, _, + _, B, B, B, B, B, _, + _, U, B, B, B, U, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + N, N, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, _, B, B, N, N, + N, N, N, B, _, _, _, + _, _, _, B, _, _, _, + _, _, N, B, N, _, _, + _, _, _, B, _, _, _, + _, _, _, B, N, N, N, + N, N, B, B, _, _, _, + _, _, _, B, _, _, _, + _, _, _, B, B, N, N, + N, N, N, B, _, _, _, + _, _, _, B, _, _, _, + M, _, B, B, B, _, M, + N, _, B, _, B, _, N, + N, L, L, _, L, L, N, + N, L, L, L, L, L, N, + _, N, L, L, L, N, _, + + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, B, B, B, _, _, + _, _, B, S, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + N, B, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, B, N, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + N, B, B, B, B, _, _, + _, _, B, B, B, _, _, + M, _, B, _, B, _, M, + N, _, _, _, _, _, N, + N, L, _, _, _, L, N, + N, L, L, L, L, L, N, + _, N, L, L, L, N, _, + + _, _, B, _, B, _, _, + _, B, B, _, B, B, _, + _, B, B, _, B, B, _, + _, B, B, _, B, B, _, + _, B, B, B, B, B, _, + _, B, B, B, B, B, _, + _, B, B, B, B, B, _, + _, B, B, B, B, B, _, + _, U, B, B, B, U, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, B, B, B, _, _, + _, _, _, B, _, _, _, + N, N, N, B, _, _, _, + _, _, _, B, B, N, N, + _, _, _, B, _, _, _, + N, N, B, B, _, _, _, + _, _, _, B, N, N, N, + _, _, _, B, _, _, _, + _, _, N, B, N, _, _, + _, _, _, B, _, _, _, + N, N, N, B, _, _, _, + _, _, _, B, _, _, _, + M, _, B, B, B, _, M, + N, _, B, _, B, _, N, + N, L, L, _, L, L, N, + N, L, L, L, L, L, N, + _, N, L, L, L, N, _, + + _, _, _, _, _, _, _, + _, _, B, _, B, _, _, + _, B, B, _, B, B, _, + _, B, B, _, B, B, _, + _, B, B, _, B, B, _, + _, B, B, _, B, B, _, + _, B, B, _, B, B, _, + _, U, B, _, B, U, _, + _, _, U, _, U, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, N, B, N, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, N, B, N, + _, _, _, _, _, _, _, + N, B, N, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, N, B, N, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + M, _, _, _, _, _, M, + N, L, _, _, _, L, N, + N, B, L, L, L, B, N, + N, L, L, L, L, L, N, + _, N, N, N, N, N, _, + + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + B, _, _, _, _, _, B, + B, _, _, _, _, _, B, + B, _, _, _, _, _, B, + U, _, _, _, _, _, U, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, N, N, N, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, N, N, N, + _, _, _, _, _, _, _, + N, N, N, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, N, N, N, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, _, _, _, _, _, _, + _, M, M, M, M, M, _, + _, N, N, N, N, N, _, + _, N, N, N, N, N, _, + _, N, N, N, N, N, _, + _, _, _, _, _, _, _, + }, + yslice_prob = { + {ypos = 13, prob = 127}, + {ypos = 14, prob = 127}, + {ypos = 15, prob = 127}, + {ypos = 16, prob = 127}, + {ypos = 17, prob = 127}, + {ypos = 18, prob = 127}, + {ypos = 19, prob = 127}, + {ypos = 20, prob = 127}, + {ypos = 21, prob = 127}, + {ypos = 22, prob = 127}, + {ypos = 23, prob = 127}, + {ypos = 24, prob = 127}, + }, +}) + + +-- Mapgen small pine tree + +local L = {name = "default:pine_needles", prob = 255} +local M = {name = "default:pine_needles", prob = 223} +local N = {name = "default:pine_needles", prob = 191} +local T = {name = "default:pine_tree", prob = 255, force_place = true} +local B = {name = "default:pine_tree", prob = 255} +local S = {name = "default:snow", prob = 255} + +mts_save("small_pine_tree", { + size = {x = 5, y = 12, z = 5}, + data = { + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, L, L, L, _, + _, _, L, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + L, L, _, L, L, + _, L, L, L, _, + _, L, L, L, _, + _, L, L, L, _, + _, _, L, _, _, + _, _, L, _, _, + _, _, _, _, _, + _, _, _, _, _, + + _, _, T, _, _, + _, _, T, _, _, + _, _, T, _, _, + _, _, T, _, _, + L, _, T, _, L, + L, L, T, L, L, + _, L, T, L, _, + _, L, T, L, _, + _, L, T, L, _, + _, L, L, L, _, + _, _, L, _, _, + _, _, L, _, _, + + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + L, L, _, L, L, + _, L, L, L, _, + _, L, L, L, _, + _, L, L, L, _, + _, _, L, _, _, + _, _, L, _, _, + _, _, _, _, _, + _, _, _, _, _, + + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, L, L, L, _, + _, _, L, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + }, + yslice_prob = { + {ypos = 2, prob = 127}, + {ypos = 3, prob = 127}, + {ypos = 4, prob = 127}, + }, +}) + + +-- Small pine tree from sapling + +mts_save("small_pine_tree_from_sapling", { + size = {x = 5, y = 12, z = 5}, + data = { + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, L, L, L, _, + _, _, L, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + L, L, _, L, L, + _, L, L, L, _, + _, L, L, L, _, + _, L, L, L, _, + _, _, L, _, _, + _, _, L, _, _, + _, _, _, _, _, + _, _, _, _, _, + + _, _, B, _, _, + _, _, T, _, _, + _, _, B, _, _, + _, _, B, _, _, + L, _, B, _, L, + L, L, B, L, L, + _, L, B, L, _, + _, L, B, L, _, + _, L, B, L, _, + _, L, L, L, _, + _, _, L, _, _, + _, _, L, _, _, + + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + L, L, _, L, L, + _, L, L, L, _, + _, L, L, L, _, + _, L, L, L, _, + _, _, L, _, _, + _, _, L, _, _, + _, _, _, _, _, + _, _, _, _, _, + + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, L, L, L, _, + _, _, L, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + }, + yslice_prob = { + {ypos = 2, prob = 127}, + {ypos = 3, prob = 127}, + {ypos = 4, prob = 127}, + }, +}) + + +-- Snowy small pine tree from sapling + +mts_save("snowy_small_pine_tree_from_sapling", { + size = {x = 5, y = 13, z = 5}, + data = { + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, L, L, L, _, + _, S, L, S, _, + _, _, S, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + L, L, _, L, L, + S, L, L, L, S, + _, L, L, L, _, + _, L, L, L, _, + _, S, L, S, _, + _, _, L, _, _, + _, _, S, _, _, + _, _, _, _, _, + _, _, _, _, _, + + _, _, B, _, _, + _, _, T, _, _, + _, _, B, _, _, + _, _, B, _, _, + L, _, B, _, L, + L, L, B, L, L, + S, L, B, L, S, + _, L, B, L, _, + _, L, B, L, _, + _, L, L, L, _, + _, S, L, S, _, + _, _, L, _, _, + _, _, S, _, _, + + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + L, L, _, L, L, + S, L, L, L, S, + _, L, L, L, _, + _, L, L, L, _, + _, S, L, S, _, + _, _, L, _, _, + _, _, S, _, _, + _, _, _, _, _, + _, _, _, _, _, + + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, L, L, L, _, + _, S, L, S, _, + _, _, S, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + }, + yslice_prob = { + {ypos = 2, prob = 127}, + {ypos = 3, prob = 127}, + }, +}) + + +-- Apple tree log + +mts_save("apple_log", { + size = {x = 4, y = 2, z = 1}, + data = { + {name = "default:tree", param2 = 12, prob = 127}, + {name = "default:tree", param2 = 12}, + {name = "default:tree", param2 = 12}, + {name = "default:tree", param2 = 12}, + {name = "air", prob = 0}, + {name = "flowers:mushroom_brown", prob = 63}, + {name = "air", prob = 0}, + {name = "air", prob = 0}, + }, +}) + + +-- Jungletree log + +mts_save("jungle_log", { + size = {x = 5, y = 2, z = 1}, + data = { + {name = "default:jungletree", param2 = 12, prob = 127}, + {name = "default:jungletree", param2 = 12}, + {name = "default:jungletree", param2 = 12}, + {name = "default:jungletree", param2 = 12}, + {name = "default:jungletree", param2 = 12, prob = 127}, + {name = "air", prob = 0}, + {name = "air", prob = 0}, + {name = "flowers:mushroom_brown", prob = 127}, + {name = "air", prob = 0}, + {name = "air", prob = 0}, + }, +}) + + +-- Pine tree log + +mts_save("pine_log", { + size = {x = 5, y = 2, z = 1}, + data = { + {name = "default:pine_tree", param2 = 12, prob = 127}, + {name = "default:pine_tree", param2 = 12}, + {name = "default:pine_tree", param2 = 12}, + {name = "default:pine_tree", param2 = 12}, + {name = "default:pine_tree", param2 = 12, prob = 127}, + {name = "air", prob = 0}, + {name = "air", prob = 0}, + {name = "flowers:mushroom_red", prob = 63}, + {name = "air", prob = 0}, + {name = "air", prob = 0}, + }, +}) + + +-- Acacia tree log + +mts_save("acacia_log", { + size = {x = 5, y = 1, z = 1}, + data = { + {name = "default:acacia_tree", param2 = 12, prob = 127}, + {name = "default:acacia_tree", param2 = 12}, + {name = "default:acacia_tree", param2 = 12}, + {name = "default:acacia_tree", param2 = 12}, + {name = "default:acacia_tree", param2 = 12, prob = 127}, + }, +}) + + +-- Aspen tree log + +mts_save("aspen_log", { + size = {x = 5, y = 2, z = 1}, + data = { + {name = "default:aspen_tree", param2 = 12, prob = 127}, + {name = "default:aspen_tree", param2 = 12}, + {name = "default:aspen_tree", param2 = 12}, + {name = "default:aspen_tree", param2 = 12}, + {name = "default:aspen_tree", param2 = 12, prob = 127}, + {name = "air", prob = 0}, + {name = "flowers:mushroom_red", prob = 63}, + {name = "flowers:mushroom_brown", prob = 63}, + {name = "air", prob = 0}, + {name = "air", prob = 0}, + }, +}) + + +-- Large cactus + +local C = {name = "default:cactus", prob = 255, param2 = 20} +local R = {name = "default:cactus", prob = 255, param2 = 20, force_place = true} +local E = {name = "default:cactus", prob = 127, param2 = 20} + +mts_save("large_cactus", { + size = {x = 5, y = 7, z = 5}, + data = { + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + + _, _, C, _, _, + _, _, R, _, _, + _, _, C, _, _, + C, C, C, C, C, + C, _, C, _, C, + E, _, C, _, E, + _, _, C, _, _, + + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + _, _, _, _, _, + }, + yslice_prob = { + {ypos = 2, prob = 127}, + }, +}) + + +-- Papyrus + +mts_save("papyrus_on_dirt", { + size = {x = 1, y = 7, z = 1}, + data = { + {name = "default:dirt", prob = 255, force_place = true}, + {name = "default:dirt", prob = 255, force_place = true}, + {name = "default:papyrus", prob = 255}, + {name = "default:papyrus", prob = 255}, + {name = "default:papyrus", prob = 255}, + {name = "default:papyrus", prob = 255}, + {name = "default:papyrus", prob = 255}, + }, + yslice_prob = { + {ypos = 2, prob = 127}, + {ypos = 3, prob = 127}, + }, +}) + +mts_save("papyrus_on_dry_dirt", { + size = {x = 1, y = 7, z = 1}, + data = { + {name = "default:dry_dirt", prob = 255, force_place = true}, + {name = "default:dry_dirt", prob = 255, force_place = true}, + {name = "default:papyrus", prob = 255}, + {name = "default:papyrus", prob = 255}, + {name = "default:papyrus", prob = 255}, + {name = "default:papyrus", prob = 255}, + {name = "default:papyrus", prob = 255}, + }, + yslice_prob = { + {ypos = 2, prob = 127}, + {ypos = 3, prob = 127}, + }, +}) + + +-- Bush + +local L = {name = "default:bush_leaves", prob = 255} +local M = {name = "default:bush_leaves", prob = 191} +local N = {name = "default:bush_leaves", prob = 127} +local S = {name = "default:bush_stem", prob = 255, force_place = true} + +mts_save("bush", { + size = {x = 3, y = 3, z = 3}, + data = { + _, _, _, + M, L, M, + N, M, N, + + _, _, _, + L, S, L, + M, L, M, + + _, _, _, + M, L, M, + N, M, N, + }, +}) + + +-- Blueberry bush + +local L = {name = "default:blueberry_bush_leaves_with_berries", prob = 255, force_place = true} +local M = {name = "default:blueberry_bush_leaves_with_berries", prob = 223} +local N = {name = "default:blueberry_bush_leaves_with_berries", prob = 95} + +mts_save("blueberry_bush", { + size = {x = 3, y = 1, z = 3}, + data = { + N, M, N, + + M, L, M, + + N, M, N, + }, +}) + + +-- Acacia bush + +local L = {name = "default:acacia_bush_leaves", prob = 255} +local M = {name = "default:acacia_bush_leaves", prob = 191} +local N = {name = "default:acacia_bush_leaves", prob = 127} +local S = {name = "default:acacia_bush_stem", prob = 255, force_place = true} + +mts_save("acacia_bush", { + size = {x = 3, y = 3, z = 3}, + data = { + _, _, _, + N, M, N, + M, L, M, + + _, _, _, + M, S, M, + L, L, L, + + _, _, _, + N, M, N, + M, L, M, + }, +}) + + +-- Pine bush + +local L = {name = "default:pine_bush_needles", prob = 255} +local M = {name = "default:pine_bush_needles", prob = 191} +local N = {name = "default:pine_bush_needles", prob = 127} +local S = {name = "default:pine_bush_stem", prob = 255, force_place = true} + +mts_save("pine_bush", { + size = {x = 3, y = 3, z = 3}, + data = { + _, _, _, + M, L, M, + N, M, N, + + _, _, _, + L, S, L, + M, L, M, + + _, _, _, + M, L, M, + N, M, N, + }, +}) diff --git a/screenshot.png b/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..5498b60144b7732fa279c9e7c467751cb0a8dfdf GIT binary patch literal 104422 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 z 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�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

Lf#}ql-#o?^ys|T+8cr)8Curl(Yr|2TY^mN zebq28`sL-19#|zWCes^@I{@d_h(CUIb=8%_(wl)PvU4RfQ`X1`3f5%^0w$(pIOHsc zH7!J#B_;7@vE$fl7~>8Duh9^IWJ~4*h)Ye6X(j+dMab55^Pr4rvr1hLVX+9!kvqK^ zBctP{A31Dx^%AiJUR)c;6LC*Z~s|GCJGgW{5z50GK2Js2LVg z3PsrFou$MJ1!6HXH9#%h@1;Q=q-s$Bs8Z>&emV(dF`V_LZu7-?BeG zJpSbIr+@IT|J66X_QBhCev<^i$P|s8DLBzrUh7ueci^KLsFh^x7Q8_-Pei6@0HTsI zsELsx*3Jhs5+j4Qw7U*-2&y@wP#PBuKT_@{?5kvhwb%ay?IgeKcMOhhIiB0@7mRUXb5@EX20+d^Pn-VAc|glCCQ--L+%FDo za`@xb%O9R!_wmYCSF`z1PY2hVjwKU@5|X3BHi1%Tcbx%dCCMadH>I0|oH7cqApk3i z5*VvuhQ7q9Wp^?%DIn06uLXbz0e8TpH_S;4xmW>3GbOVOfb4i@yHP9;W_@S56>tkW z41=dtRV}LyI1w0d)>zJ2L?ea*CnLh@dUdooa*a#aLWMWqJ_=Ll=^}ag;_T%Y5A^Qh z4iaM3KfU<;^QS+#(sim=C+|;ezWnU+N4OME)5UZqO-R^Qt}@dNUO}$b>(!&PkDpzv z@BH%HvBAq6ZF*20SLvlLH|DA8JALo%uN~ibcQI=K)6wyKet3Z7luZP5J4lW3KmBL# zOKB!WWA;Q~hN{`QQ2bxjY_@fx0JL(xL{k8OqdGm4tx+f|RlIIfEsaD z@@6JU0Ic#HoZoCV&N)O@1B8lPW#B|4ZaOA&0nnS~Hm8=$^g1y>r^MT+T(bisMB*R{ zCaPc~gC!w^F2zy^=fd^@HD`wfpLYOGfs5~n1R}`?EKD;ZCQ;3h6&-Mnf@q=k-aED2 z=RRwiPNzBNoXT|x5y488W-2_pLYj4Ja~(3H1KEzuGAt8#3WFx(tR{*~o*fWM$}#uM z9??cszqT{PP!7gd)x9IJ9@mwOQ_Dk9Y#GNmG{_9E;cW1}8g(zfax^@Z20YU&W+gN2 zkfF_F09G?JXJ(#52%&0%b1wC9eYv_mzuv5RH99=Had2{6 z)jq{dYFn1%$ye@ReVr%G!Oa`@V${z+dvJZVnoOp@_A9?OspfS(1#__%F>t6t24ISS zWQvM~|2FsCUTrU;A=0>>Z~Su`V2?pd00TfSf9!rT8KDu9cOJ~l96K-oLx)V{V%KjY zH$rrQFiqil@KVCLq>xv+SPR+SIUie=$I@dh*Ux*1H^4x#L!+@DxI8jg&<%{3BSV^ z$^({Rena!+u$Uo)GDT`zkh)EhZ~HZ>sxDLHOtrx6lA%`t41f+0OQ8}%M2H5-uvG*D z&*lI zsj_oasEp8n3=xoljf=vYiO6f=9y7R6aJP#U^cSX$29RiPE6b?3aV6^rX3AqkY0#HE z3_&REWvGIJhMoaH6tpimsWU6(vYcKknZ**}b8FZoCSgSM;Gl;2ooa4%>XM^Q<;D6M zG^=JwK)vX)JG)-BdiC`2`4?^5zj%7y_j%UL7AMtWc65Anb3R|VCOBlbmv7(G`8V4E z2O0f^HucTdUVgs(y|fq=TU#`07-^ky-ZmGYF%vU^mUnDtchx|_NL3A`eE;4SmXmp0 zdi<*8sq~I#WoFNTh{PReOZtFst@j}j0KZw|@VvIt{(_;TG>e2BXiGTI)_rdwj8G9#}v;+Vot6t{}^ zsvBkeJ>%T)p4^UKWj)7QIu_Txp0{zm$xy?-w_k5I#g>O1Zfx(rhA8qE>eo1s99xZ{ zaDJTp9tOaUwY3a}U~)O<7<&-p)mEJCP=+`efT#G2>8`bkJ0<0-s4oi z?HE2))kIQC1Z)OirPWEnk{OE%`|WCuZS%M{VQ)Ltq>O$nUtZi@GfOFoh~wa#E8|@e zwNx=0<{=YV6l@Twab07%bYV%X>$=Qt*-i=?okF91#Zpo|%o-i)Aal;s>2$0HgPYp- z{m_>+C_EzO{7RSik@wJrgHYVN1Yh!$Nta~_)0fthV-AeA+i{aV#I$Vdn8#buy@=(}5 zE?^xj&YsMduwrav2eUZ5zh@eTvv5!Ke&Ja=SaaTbeM1qQmZOEJgjZ^2ec$%bgO~~s zapkK?-7tF*0ZmWOzu?N4y(vOPp+ZDb?VYC%y0|`nxn?3qg&lZ&f8(2b^VI$S@hXMD zZ)$1L-eI41@C<_K?(E&|MHz@v+({z@LMT-wrP~%5cq~|BTefG0N{2ZSad2jqRZMcJ z@!E8)sMK{`Rle1JpdQK6WsODd2hm5wrfCo{=Un&*hTTdjg%HY97eDh&|EPR(xv{2c zVvOaCDy%_8_?F9Mk%QrstLvJX*PGQatr&sEY0jaWbG*)7*8yk=ZH9hu?|lhp#x&67 zpXCFCPca%-&JG zcbb-O&N-))Lz-#qAs%=}p4{{xQ0n_BwjNnXSe5mif7*|sl6L;!4S!^oASQXv%H zHF&_-B^e3s1*T!ojE!$}aKit;yAp#U4NG7CSqg{uqN%=53a^6pVj9>v=PHvezG+Z; zqDjrvG{$I{UvD&^U%0-zK}nR=0CM@fbFMh9RptA>&ziGl12GUqWgzEV)-*nr%OiAM zw?*l9dRyKvZp&Ec?V-?V64OA*_`9S8N-H-(+$JMjs1(U z42+G`@YI7~?0K(yKE>FsjT6|zuM|NlV%1wN001BWNkl;GemSqs*)tDstI5j zyjC(eKxDw|oO9r6L?mQMUP~Jo1O#y4m>8LhJTo&Os)1^Dd#B&2yuWSGY*IGiwV25h?s zT#Dyhh2p?N&bi*fekmnYDcYr_LU!Ebt193&|0&i-GgHg9ZTJE% zpmn(!U;qNeQdpv9NLfMNKyI;ccp+kmA~6+>hHWv%_Ss9G zxoy|Ja#d9g+B>XO2^k9RP*qjm_p8;a2w5=-B^n&oVSH-s68P58ic~`Fx&IUvzu8rDC~;`zaVik=GEykT)G{ z)`0dG5ib`l`&dMO08q+SmVb^7o{LH+*oLej6hs@wL6b)3} zhJMbu&1Pe^1u}}oET0@YLC3ONSmB2}WjV=<#VMjW=vz5shv;eKuxwB45-1G^!|uE- z>7=YCSqwx)1Q|qNH~+aP1{OdX5v7miJBytfZeWND#z5nnS+n8udnF0uWZ@V;+8g0L zghhi$#~AmZhj9{gKm-PxHHNOox7T&uo{=hBHh4YddG}iE#^>&E1P)DLJMbP6bvm6A z5hImaB$aXxK6irVR8>Jtv=n+OnB^>J3}z8b&?r@%TL1owRC(&IMxwqO2mO$izh3 z6(Jx(wjn_aMI6T{@$f|D!S_lM2K5_{haG2U$AI6UQ7NV2w#(9OHk*PQhKz{dkayoe zsJQhDKx-FJO%-#Y=&>!PlcVkkT8n8=H&)ScZnjvp!Qz$*KQk-0KDLo%_4~db=NgJ8 z?+sSoEBF~asPQmG9ii_3A((Ub03{Omg}IX9SQr=lh{0ISiavYq*URfcvK_sO?T6Bx zJ$G(g^f5g6@GJvfFo@>hoDaC;821`tlLA8wCwYnC%deD>SWU`>Qc9-d9Nue>ywgc_ z&ZQ(d=dSCDT_~W#pt@sVufUTSmb6Zi?J^%kzVElSmF_}!pQNWC84Hj@*y*4b!UPs(s zbot6T9hEkeQ+@2r4rX-EkJuGf`@KSpHxq?}2JJ=t1HOldu=VI+d;6vYj0VmD5>S~U zz~&Im$dF({Wx9aacJ_=LLyyDHaq-{ylq>G#9=2DOtoWP-yeu{UTQwV%){M>PID7p1 z(l}LA<-sm`;xZr{5s8aY!0pVQZB?$lS@B+u@d2zZ_n9OsV0pFyJz|7XEp28_3DJ~* zkhIj-zaEtq>vt69dK=QEks98O-H)Z2vfd7{ql9cD$KoFQ@w0T^a)l zdqP!AUR~FF>rh_h_!*<%L-pEtdB>T)!RVC5DI(Ff?Vy0=+s5O6_7DnH_3jlsT&CcF zDZqA$A8hA=10j`8Jjqc(%Q!M%D3hDC%;*3B+|KDYGdIrPj-|gq=mW%9qUaKs?b(YV z)-CbpAU9)xZCr>l$lM!8ij4}2UyC6}4y_^XS|iL9Y^bVzGmPIW5y?3lSXI|R1S7|! z>|a$?stTgx@Neu(4~f`aRbL*kl{f1?$LWTFrK+60LteAk&7t#ZTpL<)(Zw9>C0u6n z>8s76{hHq~urg?A@ji-&T-=kQRAaRt?qRdpjJ>}%5xXIv*wd(?^m~i~z9|5G9|tFH z>s;(?N@4EX3i%s-t78={h3X}?9kgZ0yzEWc8y~iBRx}S8fpJOun{~>224(CHkITjf z;Pdb5zTGR79>+cdxG*?nd-YCl){+fg$;e$OjpT!1*w)CFOCTl9Xj^k!*eb1zc_RkU z|Cg^fS(YSOuEcaObN3kT&CIHL6W##t-14MY!n& zg+d4^4+Oz(u<+3WXlVK^G8ZM8SvMnmFjG@Kdd^X|BLV&@!QeC|lb;bSv|T*^VpV7A0ki<~8LsMyAlDSRhGEV>5k zy7u0qsP?~i&|$0Q@ZLxYtidr+|GEINJVVLVTvo*7Qz2@Hd&KNvB1@)KJs_!Gw@-b0|VYwDOjW;eT{eO=geeRCCAE2&6X(RF4a#6hB7t$d&-! z0>90qx>5(Xh5*sggHWV_jBBgdJw_qm>Ji@R`4Tg?;=u|M&@;y zk&B3EkmLbGRZM#CCVfX%iBmUHIRB%c_ObJ0i+YXVYjm0>M`5nlYlZ-W3Q0u6FxM^-FxUnfrYzFjslGnNgjGW4zx z6dx*%+y4iXE&k}C zB&)pc(}q%(5vPT(gxoQC+iuG<(0WT9lVp?2H>bil<2_);i15z+UBVEkmP4P_{$qQlpMsz89H)NvTbaj490*2m096?p(;qymUO!^{x6 zm?0o@sY4kGmjZ}tW}+!|>LOixSLtX*gq0YHz(Bf4m)`or@#O4Je*%$s&-3h=VD!{I zzJ%zg?R6=Cv#!wkv+CUrh8<@WG;pLr1Z)z5|-E_ zK@|xtf8+>$CI$V(zfM(a9T1%vd{fmKm_hF%T}-WT8S5~ViU!)X4%G)M0V*LB#=<_Y z5fFh9(1bwIth{A_^gSsy>)GdSR6L-Udt_AF)lciu^_aLOKUFKETvqp%hE-=u$xTLhQ}=HT96Kh@!@o4 z=Br-2T2O%ERRxL5vw#TX5fNTrUwz%==4j5$W0Cn=j23ScYuN)P0!JL+Zf_I%KfgR8 zdVGBJv&FZHFQaIhdXzsL4zcs|tIW}VlXc&se*j&l)2UEpu81h)OHkJJWgJH$z=ELS zc18dSSbNtdP1T6J>v@-HiI|r^?%(6t%H{bbmPhVqdF{EjHS0=!*D>?)c#N~xAN%om z^xfsH7Vjku!w@ieK3zi-ltF~7OnEE5h*<30s(?`rheNd0{1&2g^%oi-LWHMCigWf9 zB&gl!!@#Wr3h|eFxm<#PA8e!O8|LEL@4_1bZ(7T@b9!S5y2+^lIO7Lki-3R#<^Nyc zwPQEL#YH;ge-n!`=&PBSu=9Gz#38>!58@Vd^+vIrPbH7-0H1~dUTMYgs|lP=N(on48sZ+#tS?7$a+-%hNI=n;fs zDk6xV?U~#jy}-zo@_2$>_cvn@{(PdX5CTyDiiqO@J_QC8cjUQ-N0#gL>KzUL8DGa< zzwAW55&O>P2N6*Q43Hjk-vIa^uQzxI7Qm@9=uP?nsJnrLSqxBl`H}4hHC+DRAc}~Q_v!+N>)qhBB8U4oMoQpaU4BJg?7_7{LaNB`m*_n z?W(7@!r^sYGf_XY^dhUz8Gd*`1&hofhL@KY-#q?N{s|%LjNeCv8U6M^3ZsI1>!uN^ zc9HJ(FrGIJ!ywX}%c#9=Ne2>fEn}IOZfC>xT8Ci>o=aY=B61vu-Ek6$Lo{xD+XMvT zAt2Q5&LWQ>5|1vLFFO~eIHh;IfbVpFiH+dz*R!6e5j^0=WxtgUWvIeqy4NxhxuWZ| zqv6Dh2)#*G-1XjLz2)&G`1!om9m(MBG!v(~ z92+b%Msi>0ZB&cU5Ct3AdB|#OsU# zYNz4JrDk>_@smHC;C3rMQ$idE^%~f}!jnv2nytB1%$U8RLZU)s<5+K8gGeM95ij$r zuW|G(XG&0*nW?aM*@3aUhaVy0vdoCYj3TnGEm&K02d5Y^Pn6kJs%GK=}Pd;Pz*}QxZk~|CXTb zS!z!A-WD}cK!t`PQybn|1bxPLNQHd%s&E8kmAW*WRTWlNsm= zS6QSoyUQk;x+%7grj&Kwk^I(mU6#cw;ax{I%8C$xML#0{eQwrzt-D)onM1vc#o@vf zsbl1p!Lalbz@wETzWyt-;{1HOX(-eeaVaH)H&N91+6oJqU5$FZUTdwxFfp^pz4{oZ zYK8zn=$gf?NV%>{;enX}toIhn#u3@xH_uxybAn(MM zjp1P!Jgn~+#1R@idwSdLj?;CAvPFk361`~U#4(=Dnsx%^thLW&OYqir=V<&UejpQ( zvsqR)u=e%2BMt2o&zZWqv+#>2k);#&tl@2AHm5f`CZF%*fJwvYII6GQ{0}ZyMiz2+ z`mN@|;b3xJK^dqL6;>ca04ASvWk{-k1|R?+0A;8njihQIN(LYTyd1{K?^ex3dNcKQ zE`mii7=bM7l%wj7+9xWv=r->tu>p5^XxK&T5C!=^&p9gI^yXWGX4*!!FUu0o+1GuR z<;E$Rjg_)*LT;qhTK&Fq86TB==n?PU4Ydf^bzO*vumBOTiO9TmX7Ty0R4SF?wERH| z5fB;@Kp|BnFq1wE6RN3oRZ)c|s;v{z@i_Sd+0lNo8a*1@L9u&lAr%ilEL$@jXlJ)m zJ~uktRk#^4%>3)jzlYu+DhTwb>4*@>XudST^Nk->=g-dKd00iB~mY`3?@IoU!Y zS5@C>V-ra{B6`MmlQ_C<_Z$DL-F%d+{}YkN$H%B|qkDfi9Gp@T@K|^jIR=qKL+qKz zl>B^K*L9UeyD{@nr#cPn-D%M#-6H`RYy(I|LCh4s{rK_x@a}Lt8%~oJtge zML$tJH4RCHpZ|X3ipcBhYt&y6qhrsNVZ~xP$PcAc!EGbx+4kBbIPDIY< zb8Za=!^#_EnL8NiMsyQ`gc^sz&ZE?yZJ>$yM0E3e&zLgS6R*twCi*EsEzeuj<8tU< zG7=x(xFeN1?46JL=tsOgck=}HjNb*=5!h#Z+UFe{+xb)Gx*z||zx}yCI|p)N^?O|O zqRx}6)9G|No%~_>v6dAnSyhr*Xs(>wjau2&ff?zj)37mTN=2@SEL}x=t#!R#F0apH zspr$7uWMVDaU7S{A3uCGH+{M+t=l+`r)j#reDjkZd}-~vwo8+>19mDM8Gx!;F$`qO zcXd#1{W>)1mYlv&IggFB@n+Er`@S^Ry zW4mS+b|e=&7nft%U4(aDMwER%-9mppoiDUB*gl7o?oj$^&QM^FIR6h2`!=RM?Unl6`%KNJrN z{zN{0{Fuoz@pfIQxpUX`N8o}#e*yVD<(mACM4&x?`W-M8o(6-0!mRW0|FNSCo!2Bw572^HeB>4 z;)z2*+@9WhpFBX>K!DbDb(qHwkTA1|{&PMp{n4d`M%zM2xPt{M8{kl8`-Hn`*4svJIr^v( z$zlaWNfv3jBk=jG*uDj{i~}*(IuRC7>$0E;Tl>NL>3d(C29%d?fA{j+7hB=y-#`7? zAOCz2`(OU@7u^nzKloXzRaL+WPEBbS%(n zxQ(XqxLqLf7LAb{aa zQO|iw;KV^#%J@je?EMG{P$MA2oq2zJ(aX!rPT3r=IIVePr?XJkWUFX}GWsy30%HTkQ z|0Z1CJo~7%2ESv+1oaT(2t}+*&sO|%B7TL-V9q~xT(W!%-t{bH$Vgb|ufqE?(#zX@ zQCqr*j^!|pg|SS-VXCMdw99f`R29(a-qSQqV2*ebAR-h(c1zf0xolb~GqpRR%a^`e z_2>4X`-9{n*`GsBc0%&+R^2)K@bk>AA3*DoNpQ1`?SM~L^MKF4c+FeQ*lo3NUXyo8 zh=G}H-Mh=>5^$OmOZ@3)9mq~k9t7T4vbl{H3(=KGVNw*QtHW%WXSRij#f(g`TL%)T z1|!>%&KUepTVF1(f9xOCqF(96YAf6ul)LtzYi~^{=@5UfB%~coqovE z`*mHvdN@^V1WWH7jVhO6I*!Ak&)2uk|3Od*{b;<=7(5s6Bl>W1qfYq~^U5M;v%cY@ z&9iy%-`nx~;pZ@Y6|Nhh8%7JLAj~^ak zeic>iBCR(uC`7`lAYzd6#yri*muA3|(=>T16z|NR(m0MzE{F+t@xQz%%L<=h^6p11 z-?$aw+In-ohfJi;BI_6<{GI*t9ZG*V9EM>S2D)5kQ`{|)zzBB+M}+wF?I*@E){%hQ z+GSN~+RccZ6gBvC9{|;cb8m)Cz!Ogz$8i|DN3dx+n5mf4>nAH6%SqGK)qtvywA~ zNN$5D9!Gs3VL2(vdez|M=d8?6U=Ip@(#A2B9dh%3Ng03;kPV6tMsKfOx7OtH z`c&{U&RL}EdA)iY$raPNn;ok#{0lus1F-+Fz0^^zy-e0O%{1oZ98HxI{$Qc1gL(@NDC*R>Opj{)Jr#G6lB zHx<>cV5Y4}@474tF(TT#_a`DG0wjOhKtw<|3}e3)aiL5LtRch#aqDZz3?#NM-8zhzzn0F-y{K6o40X=kxqe5v_63zy+x z7_vQPekBphcXJRAu2BHv001BWNkl|^!cwTXyj}>45SOHczAE9);F6)=j|MV-EPpALz>lY{&15jcrL#f5x2c==_ z{WMHm?~1noZ~Rd5m3KHC!nWAa77v$sxP$L8?`vlB_#pEv%W}C~+!o!7mvjdL1Bs!+n$$+$mMeBUEe)^S!-3b=jW%_*NdtW@i3IudW(Y_(tB5tCfd=R1#P{qrNTIl zKK=rj3aKFiwVR_kgKBFs&#Re)NPjDW2wX(>{PHwS(>QG1qG%8#tu$|I8O#S>`3?-x zq`%w#{`ddwzxvmI zxcuo?uYdHo`~a2*8|uRF+~9Kaf_i~+JskR1dZoYpo2TFX=JN2qFa5>JNqC}h#1Wa- zqKy}$j*BdcpUJ45C>_Q@*=ygI)J`QCZ~Cp&GSA)Gof3}V1`#+MZo&-4V~0P(Qp)Lc zIv$VyU_0)Jv=-(_sox}>-9R%bMN9y=ob3vcswxIdA?pQb18f{oKC0X zI37x205XM2Rl5vz>|F@Ba(#Wdf}*MEDuw7YP6M;H23-)ew^e%sk%BaEsZ`Jil~hq0 zYA3Wo8qF7JR|G9>Ub_ewfiWW^vO6Kq%UWxx(^zWZ!e!)A3o`a~1@PzDeah*U?;4r` z5f8&e#Hxl!wfcVU8Q6YnGn?0*C$pJV71>I>qx*o#TM+TdBe^1WGPvtXeIm)_atUR3 z{Cs#uL=*^bzDx_s)6e`E^FZUL#WwL2F&ZeLSMa6f?mX`=~+ML%Ppg`|$n?UyIl4HNZuulm(B-&t5-KW2(X~U4MOj z-Hk%>tmb?=k3$8MqH-GTCqEc|^wSU1&tB=9*R!nf^|QRlyjn+)0%-7#;Pv&1&%gQc zIQ(~iF@8J^zbnW8{U7K5`7eK?h1=mY)}n}|3oDt5n2=(gt>odrkK8W}n#z2@vLGQ%zSrqs!Qz|H2P$_o;UFTR{m_|gfMWQHvPXsCx$1`!zs zcNWvu=5=jm<`Rj|MD%JZjj>QIREvrNVyy)STCOu840RZWN}wjRuCpq15k>W*n*afr z0L@@1ld7UnpRMV-t}6hQGAmt=$MN`3#$g}^RnN0ZyS^;Tvh-%AJkZ1w6-1)|ZhX{A zV)f8=$-04&F(^)r_5oqu^PSCN1J z+H|B!AHcXH_5KO58Jno`ecB~t32Bz-1xlA4w0HExAUNb4_3mVsc#wfe=Yn?US(@`k zN6upsM4oY$na&Ybg5wk>owsa-3$vLZ+BjBbY_0X)%!C<RXI~*=pgyd6Sp{(-> zPJi$){O}B|une^kuEqjI5s<9hdU&~uo~2*$i1YB64D&=HnybM8ha!F00m!+{mRr98 z-|hw|KRi6-8Z~-yc^bl7hlqSim>D9Nwi~|SEG5TTY+c*dH82%XGu`Y3D;rv~-n4a8 z0$Z)MRmS7Nx^LFX47UH zge)P+4d85CEFzoH@NM_r#i#Rp@uU8DJR*V9@_X-cD>QPO-5*nH&3`70$vl^HK+aQ) zX__7$9>#HWLhG(3G*#%GfGa-~noOQefQumj7T^j)sSS_Xrlo^5Kvtkusu6oSNy#gt6dwS@SzYA%hly;MZ1E))~B$x zEaOQdKaIt*ic@Q76N@_Pw!6T-3^gMXw z(QvP?um1PpMj2VjZq{sQLw3$={&nx)zYhQ*<7F{l0AMg6>ZZvaf99fzbxbr%n8RH)Lt&${CNecO?QO>wWdVE0siq7>E!H`>-Fojf%;sN-1R; zrg5A*^mSc_G7iH4TvZhu`dWp_CxMXLmI4S87$O%0@(*micVYk|1^e*f1F<@1(%j;VHi|5?f*EAc)KZeW10I5!7&*SgjBB|k4NUoGwRpZSAW9i^V#_VF^MBj ztj?Hm;0W2uH6ujxJV)}MIZn^d&tYX4iF&w2WfaNZPVjxQsk+Dan0T6PK^?gZu3hY) zXzOIGD))MKwM@>2vg=ylBk`|F)WBw&U;Rx1R=i<$xm*Cv-_zl6sAbsc;r*9eyadMX z@5YUQgEH)o$qiS%_S@5bQHE;E%W76u#rXxEUi;h#1OPz3+W(0t0r~qQ3y+hFFkf|tJ((=?iD9ns{S0DYFleq76C(dkC zFMA{D$PPL?i!=Ys*Vosqt%@l8`ugexLgdt0Y82QwN{m@_}2`>;8w0-9-S9o95UXdh=zZ* zKg#xp@wR-W#^&4z5hRPXxp%>bZlnTNJv3yt0S?WIH2}sJrrDq=fC_-LVHl*qO0X(G zKT3HV-+kHZuS5$N*MaMiXb`ijG-+JbC8XQTUWsc4KDkIWolhM9KLgU3K5xY6S2%jL`c)mt3#o+^180t z?fQIWD8-7XsK_FVE&@QLU;@4M)`Sde9a(E7o7;lbeQZco*S>i@wYDlUZUKnS=hNXh zB9SW{hp~pB(0rs|p?RKrUo%{l6_&wCjdVTsZ5(}w`0?XMe{qMy;qmcNRbO9UFPDoS zPMHoAf1G3h_e+)1b4?NqeGD=D#cM9 zEi=!%KYjYN^P%5awnQ=>3Yy*2WnY=@e~}03`9Js2^V#&nFaNU=Ilrnz-+o<}Aem0n zcs`#!nOT-Kw>`pMIq;ZFy~tMF!9tJ1%=^8r0pDErD_rD-YHe%PZa@9$kDovN<{y9g zw?F%X#}CuEyv#4(f(neIHieFGd`|$l={qmo_{_VFP9={mN zBx*v^v@Po@(w*$oWuDu0ZOb?f@86%_fAM&FI1XbSr+PRadKb~#97;0Lej|GMP$D!1 z1T0*b7z|3S<2X&z!3QpEo`76bdu!{uE+U->naNDob$P2Maw>9NDTs&e0q9v7EG=^bM}#=wr_#VGtPwlou)R(#Mx&&e(mb_jNIj6XkjPg zXkf^(;+DPP80JQ`){^sNccjns^*~L+?ccfIZ^fj+ao8Db<+Cy8z3!qDNZa;e2IXm3 zngJ`<^3Ch|@poT;9O0k;WcmKT_-Z`K`G=QDg-^BA1`1$+S2!X7f#~u7{HOVE{*PZ= z&p$0cnqFX-NmuTKQd-5OmiesGA5VwjaL6=mKPz5dUfgmjd{(k*J2>;ZlR49$vVzV3 zo5j%{EIb74*o`|o?;VXlY_f8?7_{7QABx$TSvy#3742DT7+%#uql`|Tf97dARh|yR zX&R=!ikU5!Cap2Ta-FZwFQ7KovGM?Bs8$A6SbOjDvWRh=>fwAi(cyGH){$yuBoJwa ziVTSM`0l(ew=9e{=}IZ3wFMCwDUXd()k;H5`pfG++zLGP@cU}59S(=!?}w3Rcqm4$ z8gPIY0%3v>y?oy%PTujKbh)=L*L*zWQF?jJ_SW#{f%+TK zs%QJ4_{m^HWmBNsVzr7Zb^)1O@Y~zvX?WrG)W7%CzdCWDQWX(V!!_JG>; zrTqy;!ufWjO=iO9E@lAc8F_kodJ4=rKet^cG7g_CIu0Ns(41gf+}qU6fDkJwZ+T5` zB3*I1NhgTF#9$je18XsJCcXrhZy2R3A&3Wq~| zeD^RN$8oG;t;@QubMM{A1f*MU>s{WnX(D{gM5$)r7mfy|s-j|s-GNMxWe^Eec#yap zNEM04VXV`5i0zl7t&^a#HEFc2b3zyYHtdeGH*Dxxd}BM98Z7mUG3AtGH^bI1-bLti zAH2F{+#Y~Dip7_D4x5vj>`#+N8ND6L9Q1-bo;FW8@C(RNw2f!sQTBH9X&Po<0|s-I z=C;%nb}o{^GtEYc5u7sB%y&+>A^8tPmjwW{n=hN8aw$kOPVc^Ao}ShZfB)_H<>B2A zzkHm&{QmXj>x<3>2{`B-Z)5YKJmfZ~eMH6Hq-5 zOS^ETaje5I)S--rp^h{RWGJd#wIdo;@+qrc)WmIWMjpM3$Ys5|Q5OmX0YR;4_b&Y~ z+z~!UCAQW_$)LB5b?gwy|yL6=>da(S5jGP2X> z&565*t}J$PghF4m@fh>^%T@BZCC{^`%) zzxl8KN7%6UK=CP~u(5n0^e9gn4CBN*Qv!=JKgZh>| zX7ZrAz|WmPotAZ3UX8z(w@2;;i7~`NX zFEfxz@6%L2ygT!>odl}gtgQ`<+AtIV<$(vTL}cL8!^9BH5D64TO#qb$O5vr8h-eo? zgmM$GG9j|9YwOF6mb%$eZkmEZs@j`xBthiEbj&_0u~niUpE-gt`8tSaF^=S$Z@$S4 zwD^s$EAU_d7Jgwc?9C^k>0b^gwY6`r$&644Py z-vfDFhUq{yR*Q`{;G{xLgrv9mMVpoBbZPvbesvuT{{9pE)vvDK+VB6bzy90*`>&t7 zjLavcb;Rhf+X|UOJmlNn?wM>G9q;H?crdDU48~_R z1>4PN_giD;S!N`J0Y@$(V$fC+2CB#LIF6^|!}0y}>C*jp1EQ?Q^ z9fpF4sE`h7pNqbq>E!>{Lw{!Id7zIs73NW%*g6|EH-^IqC-V!k_x#S^^-c@=eBf&s z*kvc%h-F@w#F-jh)tJzoNsYUim%G+xD5hdDcznz=d*eF)?(hCCu+`)7`0(&hJ}2kg zPpx%LLpbQ(28$*~9>n6{O(c7nZk5NPgy-@OYq;loP|-%cJW-JY)2f|_l#fcob#1@= z=9&KHcc*`P`sFX5FE8iQ;a|3Pc%Fa#yMNHbNeGs8!M+}_<3K~H3)*6)$PH~$zAW^j zq^N^ug*iv?rI0!`8ZRbrK3@vnr}U9LyTN4fuQJbM=Tnpkzrk|L+}P;*L`2A)xv&)p z4pkV*gyTkxISEcG0KHZ9-$*r{aEi~Q?AGV`N(DkH2041$i5E#f)=n1YjVme5N8hygw7&+ymFvdml?3$5EQP9N67%ODP4}8Tv#t z)CqyRtZ|%NudS3)s-N>*DzNTov* zpKV%pRJ7m=WU_pOp)9q|>3s-uBhm188pZEhN2wi_k%8v`Qyc=%2KHHO_Qe-pMBB^z zviwJX@nxcjgalKZa(_#l?kvf};h15zxNUdH-MNzab9c*zEaBLVRPhw!dc9sR^TXlc z>FFc0AmZBly2`vZD)r(0gQDO#T-N%{r&7irbN%_Rzg|B4;Kz#^)j_e=@~%z~^Qv5E zmCL$b*Cry`dt2AnxqV#MzAm`Vy>~U!-gR9UGbBO)T9$cTyGS=fGeu;gjUp1(rqQ6z z1I~BNTAvd~gv_-RCMrbe1Ln+7q>GrU01zS!!$gG9??eJ3U zL*5(sg2x3j+GQ@u6vzP3Ow3$EVQMxW2d?b%J5*a&Av9t-Kb!y&nJ)9SwV4W+?KcMOWJrPeOuHs~b-ns0kQoAue@jYd2G$JwnJL&D2B$5KI-&kdR9uMnEvM z-kYHj`xrg+ynu*Ayd?BnV}FAHsNxHFd&2&fdvB`1Otp^8gvcVjHCdK9%iA+YJ`0PZ z$+w~DeVwnHzeY?g_b|P#YirWGwARoC-DJk(m4EAuw6 zFLd0|q{tZ7E?dtXia2r{%ZMY&GkV9)ciy>qcFt#d(0}u9|Jh9#r(RIph=9o}u`S`K zHH`<4UYEm11qq$F;g=@Jy%Nn@MzR+$&gk)+cVq#XXaIuH;!E^=f*2&r+ zZM6PiT7k8WI!tRB1fYv60>Qd=AodBm(v?ulAf?dq+RacEM4JCs#8mtH_g^3yBCB@) z`)%~DZ4+g(v4i1ogHM!uMa`(a`|^a83{iI2y# z>*6k#%eu5Y{%@QHrlPiG;E#`w8&h7^<+5DYD~Kx44axJ(jN2eJKTi6_A9vO1tzfnc zm-+^b8MF5(zKn%yDP>(9XaGcGuI}RFcPi3|$}kiFTG!bOotGDKK`+ySEs|Amo|G|j zmuBXle`B?%Qvo;a0{}&^xPex{ToDa`;;NRV`Fa3QUoFEh)ym6q-SH+ok%?&rPNVRA zHjwP>J?F2?VgBsu>f3o)YFdmLFI3k&L1 zAe@m}N5+*GWu~Bi=Cr}M=mHFg%s@a~(6}HoG+9;E8d^tplqFni#8d@oeMOu~@u{?~o*0;MU45ZT9xGsGPR+{N@Ef(} zm>dKw*%`&09&CM8RW&ius)cwPe5* z(wg2quX#V&b*QmReTf?Zs+mc)LI_0dv;5iE)LY|&kMfO`hKK;Jp{hGK_fqJ_ZtY>g z=t0f1hOpk*g5%(QWn}iKQ4rBP{)k>On`-M#!Km=y+>Q8x+bM#9RwSys&GWo0Hci7$ z6Y0NRUS8rb2!GJb;t!KM|A+235hje$>N*^!?8^}Iio$p;n)D?n!?oU!Ec zOuPN`=~M7YJfMUJk+;@8yv2N;%wx~Pb)$zISgSh-dUKwT0Z5DyjTnfmud{d-A%<3n zs8C@VmZeb#Y>J?Y(x8cS_0SM<*Vfd!nYV4KZ^ck6dEy;DYdLV5={(QAqcUWW8LwF< ztExnwz0s`3-OXQ0mN4u)<=)}~p2p)ij>9miDuS1I(>PWlT9#|JrSf|W)1i>}Wyb35 z?;-G@Ww}Np#*@zsN_jgVn=g9bJ9Hl&2s~0`ASwQ@Z>>1o!Z=UU=FBxtcz@(dzSi2c zWr1w$?Z6B2sDx}O7#fF&Q@eybzQT+GXoxra@bKV-7az~Pfz!>|is~OhcNW9w z%*?=4Kvk#1fM`VE2#e>Ts+%C4h#aA6ZKDp9LO}>fFOD)k6~_4)df36<@dkH&+{h-f zQhTS`+}g3uZoFX!_ha0%iHPg|jOKZ6t;fW!T@yaDdIEjPM%n@MW}mhA8#7b8C5nb- zsEVr2tL@SjGlLFf71L2;W~yk0rmCoF;Kv`=YU&&W0aQXjVvq5qY!sJRZN9Z~Tj3T6 zU|Fta;#B#VUfX*Q=i(5+`903_nw{)(vm+O@@tb*`nNhWyG8KRE)hRdL67606jPj^b z3iZyJUF#7oMzdr<#Q7A7QM0kFHq~5U5PWyj$)<@}yAg{lrp50d_fQ0eWA$#Tu!rEa z_vqB*zF=r@VvwBE=fh|>OXDN8_8=0RF%h|3=G|o4ph9No{)Uv>>2#=da){1rCc{zWOSB#^cOb7uRAdQMvcsZzT)>xGclF0E@KN7g{wB(a3CUb5Ai}MzlrS0nJt)|of?JZvMh_I24<$93SCL0i8j>++7Yop$trX(s%0pZOHr&S zAZmhY1VlH=2BL8xW-b+(`FdG>Ljf3~IsM-Ghaw7~9^>7#RF#70>R0O&*HDzkF%|F3 zGZixdz=*P$zW@Lr07*naRLyPO4AI}Q7q_u+?@h_wY)d~(T5BS!s)B9yXY0B?KW}uM zkO2G6jG^y=5Z^W`N0mVYc}!F0qu!gKb#$2{A!quwh`Kv#Z_?W}mfAQ>tu^WDxn3=V zfGSqF4)s1eLquvB2)Sr~>)Pl=tFPB6R6Tk5;@yWl&0#0f$-s7mcvWS_TMg2ja+z#w zAa(xLm4U96@T>KF=i|qZJ72Hp3IPDK001E)V4i~KuQ-qkE~wgxz=h|x9@b|}U__+N z%)*Vom#okaO1s}z^t|KRavMI|&t?0y+_gPFoHExYOuAz>XXJ6kxBV^Tw0Qa-K70uD zbzU~M|1b>EAI|bP_f`z$WfbIoSHZ;0qJzuj639xVqn^>385kn6;oVNt6XpViVL%9Z2um+BR3Ju!jK1by?Qo2J0>~AU7ie^P16f zV}AnEG(|yi1ETKTb?K6UK>vphg9XYJsAn|Q@{;hk8QdN(E#vuQmUoPG$lUpW({_y8 zVAh7_GIHz~2BWIAj**c?$20@CJ64VlXL5aKw6PKK+i$;(9#HsG*IKXhahQkVp08!!3gp+2i=m?_iSN3RkAGOADFrbj(P<^I~#NPLfVxBFx|I z%)&t+w_Qc#b-iTSU)(~j*gXr4FqeHRW1?Ru9kbst08r(evqa7nr=REE_v^XY3um8; z?5yV@AjQ_6^YGvTgq9(5&zoiDFc-W z(YmZ6TjNbcteZB&ZlDDW2}f^wA{As-U^GU+k=-1j3`3dfP%5ges=6$5m~e+~FXS;h z)??1-f?t&VxiSadL!mE`hyvjbk`;0p8r%)G-8gDMxzTewDmjR{86)(cbYLg`)&CkyW>v3PV@!aJ18@n;KqM32pv{{_?{{8!i zbQz|7eR<{2?L6b?+nu`kyFx1!O++U|XX>s0_jsI~7aUCa$a?b3sF+R|+J|hDkv)O( z;Rm3iJzNX&{eH&uiP{x?^2(nz`zqP#tfWvTzvoII1Ua(~Us1jQA z@F2{puPuv{E%%lo?I-7zs{CjW9BEF^P z`Ep~1+^1=XY(`*N0~1D!yQu*owT^xGc>vu`m~~yEFI`GOG;bC=+rqV4h&l|TC-do8 z7DVzR&gq!`?lOtfZ^6C4Z<_8qV(&50^ZfJq$jmP0S=$nRcCEKzm^@Gh)!palc$7fI zWogUu>2BKx0I-!6r3?VDt{niMpI-r9&*$^$bgFf{Ua#|fL8Uy4JlkY@x$6PzdcFGh zI{cOcLDY9a@%Hr=S=ca?T3JMTUwdBxpcED%GjX@Od0y9bGdlnF+i!h?c@Hk@@gon4 zQ^Yr8R->d>EH|KM1JgF3z1&mmOs~3JF22jc@zIg2r%%rrOv&GsX`SIr6VD;PuZ)uH z*i8)gAy<~WZ2z#Y9ViPw171x0ADwU&A(EPeX)X=jz;tI!LLaOQ~&A}7pI zL_`}o?6kM?-Zo_NoKW!4*Fcgtcd zd%#4_<)wi$k)n8s?~T*InfutM7KtGWjvOz#esltjpExQLlwOrCPW2{wl0?AkeCPf zEHus)W*D3ik&largd(;yADj`_|*{Fie+azEPe( zGo%PbX|`QbRaD6Bo_F)0B31L+ zHER3q`gFrihdL6KuGHEhnvA{G7)u=n;?ab=4`EWZ*1=ZAxxpgZ#DvN?j>9+{nAxPY zwzR&nGZF6EDi0i?lZhvuM`p*e%MPNx6&-tzeAu0#8y z&Keqq0nvF`_W{!pL-UxAY;{?XccuX`5j$T=gkWb4MwafIBs+j-Q>LsgiC7c<9r;z> zzP*T;M}%8L7jJG(hdb?}azwo-3bOxF#KACAiSYXJ^5UITj}FdO^wKgzkFg9~=9hZj zo7(E*$B+5sj?*`et{B+s&*952zw|H>qwz}iIQP)t*Xr7V;5FWre0AK(vA2Hd`5ZyS z<9+0QyIb0*7dJ6!9*+^q!rr@TcV2^mnDug#>k(5em3e530VoogNo$MBVzdZ#z?-nz zh`BPesJgPy->>^t#Y5c0)Jr-)3AvCclH$7bOxlU2-P<7Iw|_WJ8|fI-xe;!JQ|f(w zPjGdZd74Hiad_4s-E6y4P!&}bg&P|}3^Wq~qZ$f0AhcECi8u_!75MIG5b-7CkE%+y zE`}*A%j$C+eB{ig#Bbe)J|}NWEoG>6Y^^aDMD{1_nlwaKU7dIup7)-$@xY!{>>4^z zduGTD0LU==Sw)1++45&2q@}sINwhnvRfj^1v4#N+37Cl(xsY_t)mij?c9gbTVpx}@ zNjFbUZwZA&5iQ!)MAX6cc8diVQOFE^q&UDGaAmH{PA>w7Jp2HU1IZ~#Su`1e(oODj zcH>VY#?a*v82O211*)q4{`bF+Ud-lK?7{MO4;lwx$g9lEeLg+#}R+?KtIQ_t*#1g z98eOUUmPM113)ay%FKW?)Vr&)SMM=!EOM*p0k_s_J%qwHOWjoO+zL zOb_)2o);`3w~yQRzX_ew>pvd=;+(dgY|e22)02p9l0;d~Iery6CSYny>`ljjAg)L+fza`94Pt7{xKPlhlXnPePC#9=pD zV?!wWXXL8P&CWY2`|4-g{7ip{#5G_QABKK=999N5swNN28Rhbl+?P0@a6w`=A|VDa z!!6C;3jWpstPZGR2KP=+FfZPc$)bznSxo+!NRsm@7g$}k@!gHj-sR-EhQGljaZJH5 zQ~-5v##$@0A)d5K0K5W000SamWMU)*(=H0;BGlI8wqi`g{0ad;q^sU$y$}rD=W)AuRuFL**oP$d zby?do)`Gx9m9Vg}8G!+S_1=-87!eVcVjyCos^fS>sAkwZi9zo!g_i1+8)Rm3881@- zv~_7+T5lrSeNa0gQ{kNpC?W$$Ol=O8^fXPU(`lNfdAXXIwBFj5m{4Ux-bRDa-DfGg z{fMZDifWfG-4C}409<@Qd-q6Gb-pgahH$2try;&2@;K7lGz1-n$v?!*M4D4z(nznYEFXHuz}iJA0{nNRIa#@_pldaL+f{SQA3lM+On zrmd|20Ct0`G7TGz5D^W1`)ut2pyfIv69J29Ut3o}Lu4GraqB(;^rj+WAnr2c-10h< zQV4OY-$Xa4zj}c!+Iu%u24)%vD%((SA{&=kFW1$~jD)!1*k}+Q1jx*6ZXKbZvUHOT zxfMj?TCiX#gDd&X+)~9Zm)U>s>UuNjU3*`TOY{^F%>`-zK!663 zNQ0UAAQr`~b%(SaS<`sD<)xO{;>Y887)q|~H`eLWqC4O_@NhV|5-G-oWkDWMag&(d z*Lj}Rzx&% zjuj|yp_@gDn%S~k4J3E|oxZ)czAT%*(~(Zk1#)*L;fv%WXTmfjXxf3uxDE6sy*0Va zGm;@Nl7SHb(B@!#_w`qS=5R~zm8UMM(t)rL1DT0-m9Y*$Mu>(AYE8O!5rtBZwT{D3 zZdHSbHZwV$4!9+qUTAOi#WbD$9_M*(>wPZCvP32lLvc;Duj}k*Mx>}a&Pd2oHvZ8R zgZ6IYQO&WQ;j`sxR-y!QtB;7RNbdZtW|;dQ)(kuv7 zs&4a+%mon@++i8a)HXyEf`z840HO+|u$OXXT?Bgfk#IF?!d)jN+T)QmgckNz4!Fh% zN+B-f=(1})RXadQYTuH{2scs|4Z~0>7h#bm;(8$}m1?bp2UT;lRa9=pju)p8wXP3L zBq9W6G&NNN6B7^<-S|RS0DYO=Fd$-N8UUlb@G>|oRr7?n8#Io=2+AVBsyy2$&K~$0-&m!+|jOmj{h8o!+r;c{r;~bJ0$NchusC_#Xl0r1}TL?G1}ph z%_>|nzx*z016ACe0ON84BmiboMnej-FfhT0b5%7Hb5nIO69ps$KwS9n(rc=4<5DO% zKL94ut3q!s5%%MT#xWAV$F${Pv z09)`=@|Q@b3)V1`cqVCtm-tTf-n*zVYT)BI@@SZg)6L8fUJL@0wQd#m1j)5~?VFzx zV*FkR;C)^M187?Y`}sZ}1eS~8~6oxGHm5JTKyQ4_RQ5Qqs09f9I* zbo1-kiHKSD;UyJ(fB&)gU{7$$bid~_v{b(4M_#_hF}*BFhV-m~O_HMV^dEVXq@wgt3N05Rn11}vz7MO@gFF%S-NlrM zt}7CpgqhFV!5l}-74vPg2q+H+aOu6rBF}jW5tzANBTj)BvPR!AhBEj2{XM)b0RVgt zK&Q<~rMz^au7$XimvMQVq9Ou1fxVaTOcBU)*p?)vESPhaoC>ZGS?8~i%F&%)@XCfj zr!j&&oHd0GRaHjbjJ)B+zrdE*exAcIfr<|wKjg)rB{x%d6E#F+;qW<$i-%s4ni?X~ ztmk(M$?gsNEpNGZM)ZA2WSD3o`a6XG_TzoPP;paL9XSPW?f5FZu##hfxIV#5->OcIZ({eji{KAsw=viV=-h$B7o`1<%ZdPtVI^#h_d0d7&GtCA*muFQiGS*01~3(8ZC=RctC=GXXEXaLSkU4s5#FwuG19> zFRK20_HZR6!iAxv+}plZ6EC@5T)E5~959hJkPDnJ`!$I6jR={-K2zgy`o~l}S;k&;2_AOvW)FFH+h*)E~M*yHMrl@9t z95Zt%wGkmxw8KkPk(R%@O%TJ+wk8{DR--;={2{8`G!c*!v``BFx5U=1t-heOjIMG&+xdj+Ss zNRW&OkO_eaI6~6qXF&Md?>`I;oE+2?04?AoL^Ky0W-g{+E(i<&4D@(Be*JocSui4= z$6IL063+SRzW?Ib`A&K-l?b_%QV;;be)#!()^dB%I<{*ek+YpD#>@!36ZrRZ%zXr# z$IT)F`_6sXZrvJ3LyX^;*=@p9*KJ*2`E96P|z-CdPq;Y_=dakDzzkAC-`z*8={CNV$2qxY=&_p zGY9|y=v5cRRr$(OqG-LwuDA%9`s+CG*DaBGghb)+t?LyEVwliQWV>)HrI<@}^;=gA zra%CoX2I1{OC>^~g2-sYjhIZy#?WiPTl+y&3Rb2A3St?+wrUM>brCfccVz+uZ>=~v zBFCOG!)Q`OyY?YsIj4wjwu`$#4CKs!h`@QFKH~0b6wW45MlNmwn3+uwn5GG;6Bb4+ zDd4TO>T0!i%wpf+`=m3I)OH=m&b>{)lO1tLGD283)LM_Du6nfwu9WDV8^3OTBNbj(xVwVpVTxOrUA)u4HSjfeMP_zT zv$7hBaEn9=0xLQa5TgdRV*x9Ih`9^1GY9#?vqN7>B3dpdx{;--K)N%BM%*uvy$H#581#=!+N}W3c4<$_OzuL`Fk5Vs<50GZFNvh^26$dO$&7 zR*!{f?rvgZsE*+vOh5%5j|bKC*a;wA(kw`1EQU;pcVupe8S#J_Jy1#+qpKryZOv!?;(@6}p4Z%3?|VY1V8W6Ad3 zgHaO2%XyT|btb;Dlv4U78=F2FNkR(Z@W@{mk=)fCM7nBBZ6u`%W|JNG{{Ftl0tO{- zj~bq;8Q}9g0ly?WAfdbS(r%cUg5}ki!_k!nFwgX>KeC=LrM|ov$1_6%0SbV)!Ll!p z0pw6|W+yUYVD^$IBU0i8iPyvgJzqpB5_VsrRJ(q=TFk7AY>mRzd;k0dBKqTx-$Tb7 zb%L4kfB#>40(IMp3leU=daJtU)R+|)O7L`5vh-HUDG(M9S0(Z8qvVb z%@JyC;LXhq2CRN*H9mu-nD7jby~=mUE-F(rP`J zi#v=V?$Fxt{{9;PmQtAuB1O3n<)KZIJDum*T15=7ZG@NK$H(XM`E-wyD5Qv7hfT%WEwPpo$JP3-1I6SG6I6kwQZZ2=TD=ZH1hv(6G%g%{$QYdnmVG~$Qfdhc+32z{Fa!%tJzw4cw220Zgh)#eCh)m1`$WA3%%89hcJRd-6 zJtBG}ti%zmltyHY8v-Su5TAe1$g(jG?Y4;s%_X&<+4Xqu_xo|wb~~9tRfk+61^~zX zw&%_4w$4$tEg@_~r;c(KUxqikJZujx-m{F-+p_l#I2}i7<&Te#>$;v#F*Bw}?u!KH zDuSvU{qyEEguA9|4X5qbuPc?;VQ>2{9PoI*aYdlJYydt-uw`r;06;W=aHb~&CJsKO zt;tjnLkYlcw>Oav5Xo^QBA=hn-i4@~$89&N44am8B#bK|7$pt{Uqii;b~$9c_?J45 ziK};76+zl_M+dqnye;Tt%f0^DT8q&Y5!G7UU50LngcQ@-)ri6K`3!xanT7r$1r&RA zpN0uJc}YRg!g~7d8&Kfi>;lT$5-NE5JhL=SLbcg2q8iinA08p288R#ikQrNja3 zVGS^gta-Hpf{iCy1(Ny0)zXRv91#$lk${*BJ6BRy08j~$V4+G(pf(7L#^A&q0g%uQ z5!f`?M^OXs%N;g^^=0~AkY2W3_{E`g@%fn7LL|Ri?6S&SZ8ZhH7S7 z>!eNqT7~IM>j1}b*h&Qlf4QwhO|&q-^nGS=2vBK?!Q=j6j-PI3Fw`kPwX9W`PR7c&m-z^cAplDi-#&(obslKlg< zUE|`iRyfPm!;vXBWc)gE4I%)h<0x^xFr&L)PuX=oiI4{pu~VMYJ`}-{9GRiySv@9> zwZ7FpMe^JmkwsXFjxkJq6Nz}p$%!$xx_c<@nn=lk*&K+Fw^l`Ab!1-*0&>4?U^5gh z0L6>%#Dr{T0DwrD(H+#q%xU_jxET;dyXF8G$x;E4#DH(f!+77@JAAu)+s~&8hRorT z@v3kQvf7$*hG8@Jv=k9x!i8BFVp+~z92^Q&t&KB9`C;jf>(A%2loC){%mvmJVv9X! zwN`&o?`gYNXw#m_#wYsXA(mc>yLtScB=XniUwZ~(eonL8p|{}pmTy@=FRduQmQ)-| zkH_Ql^YggfbF{NZ!cNy9&?Wh#*ebVn1gflJIS@j`$v`Ixu3I8-M{6=nLAP=!WIQ!O zt&jnu)pZBAQjLs^+)-4!`qaUY5qKoL8iJvs5hBl(1%PHQGAr$`=6~ou+g%YE&x?pk zX}f*!x<)3(Q)?KjGZDc&o_B2@m>CdU*JTK1v#oV!RUQ4>8CE+;mX?!SeF1XWHwkkN zGV)eT`_@I~;Q)*K)m6vy`FuRu@4x@P#T>qPyIjgv>13K#WN=X25Z5)-22!cZRdpQ+ zoEtCt`5dsl%=-#|i|1Wn>e%(8h!CNeb9w;i1}f$Rrqk(LL{wf62Z0PNf!J)*aJhV%2w9Y>2eY-r#yMCn2@$e-^r{CE5Q5xwpxsdqyij7_;3IA z@0r$R<_KJNB~1K!StO^YT{5&|bR3YuaU9I&(h=h0@j&u9EiRPtq3Ai`G1K_YL_`j8 z=|WcHaaNwkz2j7#Wd?8Z6cHWJHQeOg5b!*2s3d^ubJ|4!h(*)HZ*@q5W`JC2PqI({ z-}5}b`8CA0a_%+FURy5gcb(v>acK)h{+ZOoJ>4*QWDqB0UOV zA_~#ox=w6!Ny<1s?zE<{RombfnWa< zuveHbywWtB06>SPAVvBd&4_9}T51t9mgYqv!Ing|pjVvrJdaz#pYefrp30^t?n#-S&s`QqZk1oSjQ2wl(q|dg|Z|0 z^DcE9i}|_}^Mdf6hl{es?X6}=0AQ-Gp0^ZERj9)>jD0?z*YyzbKY#uFtk>t~Gss2E z^*pH*3IBnZQ!r!rk0YYPQG|Cto5ftf&GYtE(T_3A)uGUKVK8%T$!4_IGz21(okBx2 zZrXc)KKdBr?|=V$YwdP>OId138P6-EkTIwr;YxsrB6eMakXz&5e}7+I9dSC2z!#3= zn5@K=r#knZ=(-sK%MBr0;ev7f#wLR00ekglDdlz?rPkDF0NC@{%|v19xS}6J#9!AZ zD5&<~msm#*cnBE?(E%0QVb0P3z6Mj1nNBjopuP{oj|1aR|5JtA}l> zjN-|ZQflM$!ViCn=@-<)g;B@wR&EAvW~MLGA!4kK4gr5=8U?-R5@OjQ$Hj;^FBN9i z6OO|-cZR&BH)VvAt2(%$krNSDs#xNSqFN5yD*!S8C_qd09u2v9sCf-Sz84LmyCMc- zz3f!02h_w)XBQGTrodlyq+cCpT(oz0%3z zcDwD`oYh=F5W@?%`~40;&*u~2Gcc(LyZ-afKWDl0-~Q+C5rAB4{qf_s-~agA`}_Sk zS}7c2r|08R@xsT^-fBGw-E>IrBHeT#D1xDTWd?IsS1}zS`9)WBr`|{JBSa=@z<}9KDxXTLBPz%kZ12>jIN@n$XHvgtr8Kq zt4UBDOCd%Kx>YR=00;>I2%!*{LN#noOqqxfr1!`5=>2jBM<}&AqnV0zBsdx);`Mx( z`RD@y&*KF2A(x@Fvpzq&=#;WYE9tI7g_ui=8DW$g6MU{*7?}tO5nN4W^lS7BA!dDO z>iv@bP#uAqQT&C?!N6p{g|O{B&->fiT49dqk1K!~ikb{jK{wQ4*JD&_gmlz1g5jOO z$pGQ``6)wX=oq@iseV(FolH~8BKKczCU?HLL>lWo)kL( z12h0(hIZ6TMAU|ehQy$hDE#6NQ4LZ-2N#uVbh$3+;s)S=4(Pzdg&6^+%P0bv$>=4k z)~ws3`hGsUyQ>5iMW)bwj3Gll5uF%oje*mYnmZ^0BeGjWxmt)!AJ1QiejLaBcGMcC zW*!n0mFW~E;?L)!cLOjeN(KrFXvBa-ZWt7_a6|fvxASp7RaLYHWQ2~4;O@6b9KlLN z9<(_HH&ioXL<~VE5`ryL#VI!`RJ@oOQ9-6_3^YJcKsyQ{p+5W7FQ!RrS5>Zbzu&QH zt;Ma#fZbBr7ithZj@2A70GNV-o9UGMy^KaZ3Vt^dv3`kaq%&(f*gb*0NyJ8kPj~eOwLE+osB}R=Ff_m^8yY#I10Z0qR?H0z1p!n#fekb3 zedvfmAePdy3i$Z==)IQ}X%~f30;Mw(upUXY2REYWd0*Q!)Z-G*fdDOLB{8(#bu@^0 zp2rJa!rbHh`1pl*g&r?h9+B1j{{9|yWya){93pNBtDaYwgs<5RUk1hZTR z2=6j88(oQsvI=fr$6pTkrkq zK@G4q1I42q?v79aKsOUkQDKN^Y?^@&bNEC#fiFmggusZ{eV`+g9Y=jTP9l2hMKpTv zL4_J!xVGEvpbG9TtZrY9hE-CVnad0#U?MVg^??Q=G9;!XvRN474zTSgLogjT5H9eD zoFdO|d@5NL9Kg&MaRFlO#3Y)g%LZ0$YLhxMGS$K@93~JsS91K; z@9+1>5nmfd6Q5h}Be_Ek5UC`XmQ{#IIJsO&KwkKBE2SWCtrgH}twB(0g%MG@>XB)}iKrHfd4YpaCJkIRS7&I$A@9qtS8HTWtV@Hv-`Q`+t5imFW>$*$v#W_aWjD zx0{Gp{2(Gy9U{S6qnE94&g@J>n6Okd!5n2GAuMJV>@K zLxs5wF(nfbLYM|43u9lRDMO{WTX<55UgV{i%j~N5G)e^^*Rib*f3-M)-LhcMD9h?E&8c#nw6q98cX|nAx4QVdE%O*7qz! zUfB(qh7>MunFX?j_F;YX(j6{#y{pRTa$P|jw)1udIYL!s!~`MomuZVdEw91Sn4U|4 zj1o~H1b}gkjdYa8=Kui6;0Oi|?&12z%yBBg#xE$PwzKicRJ@ju%}MXWbrwP3=#FCu zKA!C$>~LL|JB6cGFoHtY6eo`vrtT}J#iC!L5EG!9h_uHii7cjC3eUqcoFKMoh3bn= zrmA6k2kwZ$sL{ymKtNcd#OS>j^+2%zQ6Z$P|5MTf05WvXeZ(ci`PW1V^Dp6Xsv5xs z;m#Ci;p83EGNUFIP|eK8aeJ9uxHHop=$5NLTqO! ztt9eX7nLIcB2W;i2~~YNdNeEj*c0w;H>clW%j^eJTC!+PkXAPzfBj@w7ucJD&M8N{=7Qv5ynP()cDr$z&bCpZWw3g@y|^3h z?{A_#eLnI?j)P_$uAnb|t8Wu>H?zKreCC(I6iZYV6C@>?1F%RdO?zVS44$Y*yWQ>w zRC5wU8)NiekI&BsDKnk5Ruys^?$~?(>o3RRW?IUzq#48oQ<)bfQVwNagp2%Qp26zT z8uTuR7|bcrXk6Jnl;qQN7<`N| z;v~(GrQ}5Inc92$#u!&AElD4$If*6Pu2K?@#T z`{Vl85psOztX6VR8tXQz_o$L$0qhfmO*fTl4om`m{F+CLqe=k`Am%K!lxCpGINRfV zzXfxqT@#ow<4T{xY|VcB__2zJOT>=jD9h}8xKz3t}30g=Ws(b-1b$7Iy+PU_xdhPE*+k_>2Xl0H&bo%7WIAq01O5W}-G!MTZ%2 zt#=g#0H$g_9-kK`i9Oh7==kd^41PC>C&0V&{q>_HHaf?=N5i7CR(s6uj zt@MkQgFGAW^ruz>bG)wZ{xQZljvA)VjSHG9*thi1r1b0wx+#Sc(Piegdey18_n2my znX9>@BZ>(5RHOu1&H=#5UHjwdu0*7*`Dy3vILdKr^#5!r${{icF{_x&U_e45bV4vI zN98uvR?l%=(qmh;cAz^bfiBZG0CPKAi?osXD#I3KRldO}#~6`L_Rw-!LrZyEWOMHF zHnVBy&`JToWfkGUD0PGL?Oc}n8pfP6y=whzU9QTw=Zi!-SS_toUN1ndYlguC03oYn zcpU5mKE!}Mdc+6iVEH_c;JSVbK~6&Wi<${Lr7!v&OYYZHu)8J{7bjEbtj2INi=&}1 zP(ddrq&PS!--w5mGpdD7$;ME3EDg`Ii42t)es!K;2ndCcV!JZ4n~4rIto0rvp5S^o z5Mqs(nNkZ`T^1=A5RW@x;jKk9kCY6YL|R2N>oIOm()zc2k!3?_Gt!26Su@Az6b#&_ z%whVBm>DyP2pDpu)`*DIO;tc5oD%abk7X6VSpjNTRQ2AiK<24VVSA}W^mzQ*Qj%Ua zRtt4TGu*h39A1^bJ|3T+pZELa?jh}~rS9I@JC!4=$RyEZFyek~PKTReNtZ4ZI#+aY zciEU^S%ES$#3u|&Li^Q1HJ^l$#Qaj4vH#E<_TBIIQVD^B9GQ8J>BuxY^m%IAaWr=i z|9({u6gekW!P+2ngXtDuzPMxUE{ETvCud^_vXgGJb^7@Dh{8H>E;Hl*@xT95+CtMIc;IJW~ye0|cZPb2~V|m`u%RJ;JEK0ibXpqU$+&?}ck{?9bbI`*Ct5 z41L+8i8&&gSkSOU)YWULZvOH43!B##DKXwkQMLXUrqC~CZiQ=jF}%Iq{`SXjZ*Ok^ zD58ilWb*So-+#N8lJi9dz@XDdfE_~Gw>ToqB49SOsX&{wmRP%qDji3?-Of^2b*wq{ zO9{T#IC(d+uY&N5Ta8RSfuI$o zk5e2yn>xT>`MTt#a;c1j=3s6ZvRGySXCfw)(I20mB7>N@aAKB8?Ag=k7eaBYPc`j` z!tx{VGWXfB6BU545nhvJ!l*33!+Qb4_KS%TfQgujoA;}aE^11JMZy+zZhoTBVxOB; z%yc0L>!%RWm%_){jhydL*W_n=`VjM#*(>}&B zu=dufsyrUgwU@&gpNTm3^XJq_QZVHj5w9%_i1_~j72&&^5+dEd00000NkvXX Hu0mjfVUfT5 literal 0 HcmV?d00001 diff --git a/settingtypes.txt b/settingtypes.txt new file mode 100644 index 0000000..eff1e90 --- /dev/null +++ b/settingtypes.txt @@ -0,0 +1,77 @@ +# This file contains settings of minetest_game that can be changed in +# minetest.conf + +# In creative mode players are able to dig all kind of blocks nearly +# instantly, and have access to unlimited resources. +# Some of the functionality is only available if this setting is present +# at startup. +creative_mode (Creative mode) bool false + +# Flammable nodes will be ignited by nearby igniters. Spreading fire may +# cause severe destruction. +# Spreading fire nodes will disappear when fire is disabled, but +# 'permanent_flame' nodes are unaffected. +enable_fire (Fire) bool true + +# Enable flame sound. +flame_sound (Flame sound) bool true + +# Enable lavacooling. +enable_lavacooling (Lavacooling) bool true + +# If enabled, steel tools, torches and cobblestone will be given to new +# players. +give_initial_stuff (Give initial items) bool false + +# If enabled, players respawn at the bed they last lay on instead of normal +# spawn. +# This setting is only read at startup. +enable_bed_respawn (Respawn at bed) bool true + +# If enabled, the night can be skipped if more than half of the players are +# in beds. +enable_bed_night_skip (Skip night when sleeping) bool true + +# If enabled, fences and walls cannot be jumped over. +enable_fence_tall (Tall fences and walls) bool false + +# When TNT explodes, it destroys nearby nodes and damages nearby players. +# This setting is disabled by default on servers. +enable_tnt (TNT) bool true + +# The radius in which nodes will be destroyed by a TNT explosion. +tnt_radius (TNT radius) int 3 0 + +# Sets the behaviour of the inventory items when a player dies. +# bones: Store items in a bone node but drop items if inside protected area. +# drop: Drop items on the ground. +# keep: Player keeps items. +bones_mode (Bones mode) enum bones bones,drop,keep + +# The time in seconds after which the bones of a dead player can be looted +# by everyone. +# Setting this to 0 will disable sharing of bones completely. +share_bones_time (Bones share time) int 1200 0 + +# How much earlier the bones of a dead player can be looted by +# everyone if the player dies in a protected area they don't own. +# 0 to disable. By default it is "share_bones_time" divide by four. +share_bones_time_early (Earlier bones share time) int 300 0 + +# Inform player of condition and location of new bones. +bones_position_message (Inform player about bones) bool false + +# Replaces old stairs with new ones. Only required for older worlds. +enable_stairs_replace_abm (Replace old stairs) bool false + +# If enabled, use the engine's spawn search which does not check for a +# suitable starting biome. +engine_spawn (Use engine spawn search) bool false + +# Whether river water source nodes create flowing sounds. +# Helps rivers create more sound, especially on level sections. +river_source_sounds (River source node sounds) bool false + +# Enable cloud variation by the 'weather' mod. +# Non-functional in V6 or Singlenode mapgens. +enable_weather (Enable weather) bool true